From eaf81bd22d56879aa1feff5535d60db81acbd15f Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Tue, 12 May 2009 09:11:39 +0000 Subject: [PATCH] 1.0.28.41: make MAKE-ARRAY transforms co-operate with FILL better When the transform for FILL fires, and the type of initial-element has not yet been propagated, so VECTOR-FILL* fires instead of a more specific transform (which currently exist only for SIMPLE-BASE-STRINGs and SIMPLE-BIT-VECTORs.) Annotate the type with THE and the SAETP-SPECIFIER so the most specific transform can fire. Reported by Stas Boukarev. --- src/compiler/array-tran.lisp | 2 +- version.lisp-expr | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp index 1aeb26e..899b43e 100644 --- a/src/compiler/array-tran.lisp +++ b/src/compiler/array-tran.lisp @@ -297,7 +297,7 @@ `(let ((array ,creation-form)) (multiple-value-bind (vector) (%data-vector-and-index array 0) - (fill vector initial-element)) + (fill vector (the ,(sb!vm:saetp-specifier saetp) initial-element))) array))))) ;;; The integer type restriction on the length ensures that it will be diff --git a/version.lisp-expr b/version.lisp-expr index 2f60e45..0eec54d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.28.40" +"1.0.28.41" -- 1.7.10.4