X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fseq.lisp;h=ec14addcb5c658e0d7f0771e509738d9a1891d93;hb=2d4a0df3457bcd50916b33d374da592d8776db0a;hp=43bccfdfe12497a3bf8ff2155ed2b328dff4d611;hpb=b711554e4ce0dce883ba9e09a445c969aec0d305;p=sbcl.git diff --git a/src/code/seq.lisp b/src/code/seq.lisp index 43bccfd..ec14add 100644 --- a/src/code/seq.lisp +++ b/src/code/seq.lisp @@ -203,8 +203,6 @@ ;; This seems silly, is there something better? '(integer 0 (0)))))) -(declaim (ftype (function (sequence index index) nil) - signal-bounding-indices-bad-error)) (defun signal-bounding-indices-bad-error (sequence start end) (let ((length (length sequence))) (error 'bounding-indices-bad-error @@ -287,8 +285,9 @@ ;; (OR STRING BIT-VECTOR)] (progn (aver (= (length (array-type-dimensions type)) 1)) - (let ((etype (type-specifier - (array-type-specialized-element-type type))) + (let* ((etype (type-specifier + (array-type-specialized-element-type type))) + (etype (if (eq etype '*) t etype)) (type-length (car (array-type-dimensions type)))) (unless (or (eq type-length '*) (= type-length length)) @@ -581,7 +580,7 @@ (sb!xc:defmacro list-reverse-macro (sequence) `(do ((new-list ())) - ((atom ,sequence) new-list) + ((endp ,sequence) new-list) (push (pop ,sequence) new-list))) ) ; EVAL-WHEN @@ -617,7 +616,7 @@ (aref ,sequence right-index))))) (sb!xc:defmacro list-nreverse-macro (list) - `(do ((1st (cdr ,list) (if (atom 1st) 1st (cdr 1st))) + `(do ((1st (cdr ,list) (if (endp 1st) 1st (cdr 1st))) (2nd ,list 1st) (3rd '() 2nd)) ((atom 2nd) 3rd)