X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fwalk.impure.lisp;h=b874f103b503573a5cc19ea4fd5d46818204479b;hb=3c65762b927af861c9c8bc416e4cbac9a14ec0c3;hp=aaa714bb01ce6f0422ab6c5c25505ebd044d74fc;hpb=7c07a6f965c51828d8f452b47e0620d8e6cf2959;p=sbcl.git diff --git a/tests/walk.impure.lisp b/tests/walk.impure.lisp index aaa714b..b874f10 100644 --- a/tests/walk.impure.lisp +++ b/tests/walk.impure.lisp @@ -153,12 +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. - -#+nil ; FIXME: broken under 0.pre7.15 +;;; 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