From: Nikodemus S. <de...@us...> - 2010-10-19 13:54:17
|
Update of /cvsroot/sbcl/sbcl/tests In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv7970/tests Modified Files: compiler.pure.lisp Log Message: 1.0.43.73: oops, let's not derive &REST as list quite so hard... Use PROPAGATE-FROM-SETS so assignments to the variable are taken into account too. Index: compiler.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/compiler.pure.lisp,v retrieving revision 1.240 retrieving revision 1.241 diff -u -d -r1.240 -r1.241 --- compiler.pure.lisp 19 Oct 2010 10:22:41 -0000 1.240 +++ compiler.pure.lisp 19 Oct 2010 13:54:08 -0000 1.241 @@ -2694,6 +2694,17 @@ (assert (eq 'list type)) (assert derivedp))) +(with-test (:name :rest-list-type-derivation4) + (multiple-value-bind (type derivedp) + (funcall (funcall (compile nil `(lambda () + (lambda (&optional x &rest args) + (declare (type (or null integer) x)) + (when x (setf args x)) + (ctu:compiler-derived-type args))))) + 42) + (assert (equal '(or cons null integer) type)) + (assert derivedp))) + (with-test (:name :base-char-typep-elimination) (assert (eq (funcall (lambda (ch) (declare (type base-char ch) (optimize (speed 3) (safety 0))) |