X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Floop.pure.lisp;h=44853c9d818ffe0cbe3dce931e793bed10a04755;hb=fd79e33e6b6dacdc52cf6668a5bb7adf75aad6c1;hp=917731a9a7cc11886440b930ea983d22032b6929;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/tests/loop.pure.lisp b/tests/loop.pure.lisp index 917731a..44853c9 100644 --- a/tests/loop.pure.lisp +++ b/tests/loop.pure.lisp @@ -33,7 +33,8 @@ ;;; a bug reported and fixed by Alexey Dejneka sbcl-devel 2001-10-05: ;;; The type declarations should apply, hence under Python's ;;; declarations-are-assertions rule, the code should signal a type -;;; error. +;;; error. (Except when running interpreted code) +#+#.(cl:if (cl:eq sb-ext:*evaluator-mode* :compile) '(and) '(or)) (assert (typep (nth-value 1 (ignore-errors (funcall (lambda () @@ -177,6 +178,7 @@ (setf (gethash 7 ht) 15) (assert (= (loop for v fixnum being each hash-key in ht sum v) 8)) (assert (= (loop for v fixnum being each hash-value in ht sum v) 18)) + #+#.(cl:if (cl:eq sb-ext:*evaluator-mode* :compile) '(and) '(or)) (assert (raises-error? (loop for v float being each hash-value in ht sum v) type-error))) @@ -236,3 +238,12 @@ (macroexpand '(LOOP WITH A = 0 FOR A DOWNFROM 10 TO 0 DO (PRINT A)))) (declare (ignore _)) (assert (typep condition 'program-error))) + +;;; Loop variable with a range excluding 0, reported by Andras Simon. +;;; (Used to signal an error during macroexpansion.) +(assert (not (loop with foo of-type (single-float 1.0 2.0) = 1.5 do (return)))) + +;;; 1.0.26.12 used to signal a bogus type error for this. +(loop with x of-type (simple-vector 1) = (make-array '(1)) + repeat 1 + return x)