X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fsetf.impure.lisp;h=a7d29a069b7bf65bc35819d5cd2ced8d17c59ecd;hb=b5dc433da5b8bd3b36db88f7ec35cdb03cb64384;hp=77c4ac5257dc196701430ab85acad6c7a1d61e9c;hpb=ba176faab453c2b5d4d9a6667a84680c8783c957;p=sbcl.git diff --git a/tests/setf.impure.lisp b/tests/setf.impure.lisp index 77c4ac5..a7d29a0 100644 --- a/tests/setf.impure.lisp +++ b/tests/setf.impure.lisp @@ -23,5 +23,21 @@ ;;; environment object. (assert (multiple-value-list (get-setf-expansion '(foo)))) +;;; Regression test for SHIFTF of values. +(let ((x (list 1)) + (y (list 2))) + (shiftf (values (car x) (car y)) (values (car y) (car x))) + (assert (equal (list x y) '((2) (1))))) + +;;; 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))))) + (assert (equal list '(1 2))) + (assert (eql a 1)) + (assert (eql c 2)) + (assert (null b)) + (assert (null d)))) + ;;; success -(quit :unix-status 104) \ No newline at end of file +(quit :unix-status 104)