X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Feval.impure.lisp;h=3f7aa8854ec5e04c97a9169ce6bcba5388e9ebe8;hb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;hp=f7803ffa521ee1a1ebcd2bd6574e5990be255c4b;hpb=e049902f5e7c30501d2dbb7a41d058a0c717fc1f;p=sbcl.git diff --git a/tests/eval.impure.lisp b/tests/eval.impure.lisp index f7803ff..3f7aa88 100644 --- a/tests/eval.impure.lisp +++ b/tests/eval.impure.lisp @@ -18,6 +18,9 @@ (cl:in-package :cl-user) +(load "assertoid.lisp") +(use-package "ASSERTOID") + ;;; Until sbcl-0.7.9.x, EVAL was not correctly treating LOCALLY, ;;; MACROLET and SYMBOL-MACROLET, which should preserve top-levelness ;;; of their body forms: @@ -94,9 +97,24 @@ ;;; Bug reported by Paul Dietz: CONSTANTP on a self-evaluating object ;;; must return T - (assert (constantp (find-class 'symbol))) (assert (constantp #p"")) - + +;;; DEFPARAMETER must assign a dynamic variable +(let ((var (gensym))) + (assert (equal (eval `(list (let ((,var 1)) + (defparameter ,var 2) + ,var) + ,var)) + '(1 2)))) + +;;; Bug 264: SYMBOL-MACROLET did not check for a bound SPECIAL +;;; declaration +(assert (raises-error? (progv '(foo) '(1) + (eval '(symbol-macrolet ((foo 3)) + (declare (special foo)) + foo))) + error)) + ;;; success (sb-ext:quit :unix-status 104)