X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fwalk.impure.lisp;h=8642df777c0076f45f43f9aeb5400d33a88002ad;hb=89eb73c035f05ae53b1148ef8a83e1d4030b2dd8;hp=6ce7968e2bc6a2f20210b7a4fa0d0a78ac7369c6;hpb=853b48ca4085b8ad9831edb9b06935a0977c0800;p=sbcl.git diff --git a/tests/walk.impure.lisp b/tests/walk.impure.lisp index 6ce7968..8642df7 100644 --- a/tests/walk.impure.lisp +++ b/tests/walk.impure.lisp @@ -37,8 +37,8 @@ #'(lambda (x y env) (format t "~&Form: ~S ~3T Context: ~A" x y) (when (symbolp x) - (let ((lexical (variable-lexical-p x env)) - (special (variable-special-p x env))) + (let ((lexical (var-lexical-p x env)) + (special (var-special-p x env))) (when lexical (format t ";~3T") (format t "lexically bound")) @@ -153,11 +153,24 @@ Form: 'INNER Context: EVAL (FOO 1))")) -;;; A slightly more complex MACROLET case. In the body of the macro X -;;; should not be lexically bound. In the body of the macrolet form itself -;;; X should be bound. Note that THIS CASE WILL CAUSE AN ERROR when it -;;; tries to macroexpand the call to FOO. - +;;; The original PCL documentation for this test said +;;; A slightly more complex MACROLET case. In the body of the macro +;;; X should not be lexically bound. In the body of the macrolet +;;; form itself X should be bound. Note that THIS CASE WILL CAUSE AN +;;; ERROR when it tries to macroexpand the call to FOO. +;;; +;;; This test is commented out in SBCL because ANSI says, in the +;;; definition of the special operator MACROLET, +;;; The macro-expansion functions defined by MACROLET are defined +;;; in the lexical environment in which the MACROLET form appears. +;;; Declarations and MACROLET and SYMBOL-MACROLET definitions affect +;;; the local macro definitions in a MACROLET, but the consequences +;;; are undefined if the local macro definitions reference any +;;; local variable or function bindings that are visible in that +;;; lexical environment. +;;; Since the behavior is undefined, anything we do conforms.:-| +;;; This is of course less than ideal; see bug 124. +#+nil (multiple-value-bind (res cond) (ignore-errors (take-it-out-for-a-test-walk @@ -927,7 +940,7 @@ Form: NIL Context: EVAL; bound: NIL #'(lambda (form context env) (declare (ignore context)) (when (and (symbolp form) - (variable-lexical-p form env)) + (var-lexical-p form env)) (push form the-lexical-variables)) form)) (or (and (= (length the-lexical-variables) 3)