X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-cltl2%2Ftests.lisp;h=c862c0df548c48de32fc25f9d26bb8e5985c5f71;hb=1656e5415acddf6655569b8332e138c36640c08a;hp=e32a20a846f812b75d026c023afdb612d1846999;hpb=5f466d0621f0cb549b80d48abfa7af8d7dc01a34;p=sbcl.git diff --git a/contrib/sb-cltl2/tests.lisp b/contrib/sb-cltl2/tests.lisp index e32a20a..c862c0d 100644 --- a/contrib/sb-cltl2/tests.lisp +++ b/contrib/sb-cltl2/tests.lisp @@ -694,3 +694,25 @@ 'robot lexenv)))))))) (emotional-state . happy)) + +(deftest macroexpand-all.special-binding + (let ((form '(macrolet ((v (x &environment env) + (sb-cltl2:variable-information x env))) + (let* ((x :foo) + (y (v x))) + (declare (special x)) + (list y (v x)))))) + (list (eval form) + (eval (sb-cltl2:macroexpand-all form)))) + ((:special :special) (:special :special))) + +(deftest macroexpand-all.symbol-macro-shadowed + (let ((form '(macrolet ((v (x &environment env) + (macroexpand x env))) + (symbol-macrolet ((x :bad)) + (let* ((x :good) + (y (v x))) + y))))) + (list (eval form) + (eval (sb-cltl2:macroexpand-all form)))) + (:good :good))