X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Fcompiler.pure.lisp;h=60e30b66038e3e317b0eb2530ac08a324be234e2;hb=b956ed4f9cef685d1b49be28dcd2aec1e082d994;hp=19ddd19228aa5e8e77fa023cf222064ecd99e120;hpb=47da3aec921176b189868519273b5bddb8bcc737;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 19ddd19..60e30b6 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -419,3 +419,29 @@ (defsetf #6=#:foo (&optional (x (return-from #6#))) ())))) (dolist (form forms) (assert (nth-value 2 (compile nil `(lambda () ,form)))))) + +(assert (nth-value 2 (compile nil + '(lambda () + (svref (make-array '(8 9) :adjustable t) 1))))) + +;;; CHAR= did not check types of its arguments (reported by Adam Warner) +(raises-error? (funcall (compile nil '(lambda (x y z) (char= x y z))) + #\a #\b nil) + type-error) +(raises-error? (funcall (compile nil + '(lambda (x y z) + (declare (optimize (speed 3) (safety 3))) + (char/= x y z))) + nil #\a #\a) + type-error) + +;;; Compiler lost return type of MAPCAR and friends +(dolist (fun '(mapcar mapc maplist mapl)) + (assert (nth-value 2 (compile nil + `(lambda (x) + (1+ (,fun #'print x))))))) + +(assert (nth-value 2 (compile nil + '(lambda () + (declare (notinline mapcar)) + (1+ (mapcar #'print '(1 2 3)))))))