X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fsetf.impure.lisp;h=b34349a2ae2d31eb0b5ed10089260bc43396cc1a;hb=9f1903c072936fb15f03f93182c57beb4621b39d;hp=0b8a86723d77ae0cbb02aec4431288907e59672a;hpb=cd08dc8fd4d4b77fdbe87addb06e97cde247bbf9;p=sbcl.git diff --git a/tests/setf.impure.lisp b/tests/setf.impure.lisp index 0b8a867..b34349a 100644 --- a/tests/setf.impure.lisp +++ b/tests/setf.impure.lisp @@ -90,4 +90,21 @@ (declare (ignore env)) `(set-foo ,foo ,new))))) +;;; Not required by the spec, but allowes compiler-macros for SETF-functiosn +;;; to see their constant argument forms. +(with-test (:name constantp-aware-get-setf-expansion) + (multiple-value-bind (temps values stores set get) + (get-setf-expansion '(foo 1 2 3)) + (assert (not temps)) + (assert (not values)) + (assert (equal `(funcall #'(setf foo) ,@stores 1 2 3) set)) + (assert (equal '(foo 1 2 3) get)))) + +(with-test (:name :update-fn-should-be-a-symbol-in-defsetf) + (assert (eq :error + (handler-case + (eval '(defsetf access-fn 5)) + (error () + :error))))) + ;;; success