From: Alexey D. <ade...@us...> - 2003-06-11 05:54:03
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1:/tmp/cvs-serv4527/tests Modified Files: compiler.pure.lisp Log Message: 0.8.0.61: * bug fix: in macro-like defining macros/special operators the implicit block does not enclose lambda list. Index: compiler.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/compiler.pure.lisp,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- compiler.pure.lisp 5 Jun 2003 06:24:27 -0000 1.40 +++ compiler.pure.lisp 11 Jun 2003 05:53:59 -0000 1.41 @@ -409,3 +409,13 @@ (list (the fixnum (the (real 0) (eval v)))))))) (assert (raises-error? (funcall f 0.1) type-error)) (assert (raises-error? (funcall f -1) type-error))) + +;;; the implicit block does not enclose lambda list +(let ((forms '((defmacro #1=#:foo (&optional (x (return-from #1#)))) + #+nil(macrolet ((#2=#:foo (&optional (x (return-from #2#)))))) + (define-compiler-macro #3=#:foo (&optional (x (return-from #3#)))) + (deftype #4=#:foo (&optional (x (return-from #4#)))) + (define-setf-expander #5=#:foo (&optional (x (return-from #5#)))) + (defsetf #6=#:foo (&optional (x (return-from #6#))) ())))) + (dolist (form forms) + (assert (nth-value 2 (compile nil `(lambda () ,form)))))) |