X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fsetf.impure.lisp;h=cd78733a09e231e10957ef7538d58a3dbc79d938;hb=40e3ba03d0e1b824e4d1ae75d74246b975b70964;hp=a7d29a069b7bf65bc35819d5cd2ced8d17c59ecd;hpb=c0c27f1e2fbe3e2ce9cbcf46a216f9bde6c90292;p=sbcl.git diff --git a/tests/setf.impure.lisp b/tests/setf.impure.lisp index a7d29a0..cd78733 100644 --- a/tests/setf.impure.lisp +++ b/tests/setf.impure.lisp @@ -32,12 +32,24 @@ ;;; SETF of values with multiple-value place forms (let ((a t) (b t) (c t) (d t)) (let ((list (multiple-value-list - (setf (values (values a b) (values c d)) (values 1 2 3 4))))) + (setf (values (values a b) (values c d)) (values 1 2 3 4))))) (assert (equal list '(1 2))) (assert (eql a 1)) (assert (eql c 2)) (assert (null b)) (assert (null d)))) +;;; SETF of THE with VALUES. +(let (x y) + (setf (the (values fixnum fixnum) (values x y)) + (values 1 2)) + (assert (= x 1)) + (assert (= y 2))) + +;;; SETF of MACRO-FUNCTION must accept a NIL environment +(let ((fun (constantly 'ok))) + (setf (macro-function 'nothing-at-all nil) fun) + (assert (eq fun (macro-function 'nothing-at-all nil)))) + ;;; success (quit :unix-status 104)