diff --git a/ansi-tests/get.lsp b/ansi-tests/get.lsp index 30a101e0b8a265cdaf6c5f0f676c9b77836ddbe8..77aff2cd37a2ab9b9d21273011c58ca0e52c1b87 100644 --- a/ansi-tests/get.lsp +++ b/ansi-tests/get.lsp @@ -46,6 +46,50 @@ evaluated)) 1 t) +;;; Order of evaluation + +(deftest get.order.1 + (let (a b (i 0) (sym (gensym))) + (setf (get sym :foo) t) + (values + (get (progn (setf a (incf i)) sym) + (progn (setf b (incf i)) :foo)) + a b i)) + t 1 2 2) + +(deftest get.order.2 + (let (a b (i 0) (sym (gensym))) + (values + (setf (get (progn (setf a (incf i)) sym) + (progn (setf b (incf i)) :foo)) + t) + a b i + (get sym :foo) + )) + t 1 2 2 t) + +(deftest get.order.3 + (let (a b c (i 0) (sym (gensym))) + (setf (get sym :foo) t) + (values + (get (progn (setf a (incf i)) sym) + (progn (setf b (incf i)) :foo) + (progn (setf c (incf i)) nil)) + a b c i)) + t 1 2 3 3) + +(deftest get.order.4 + (let (a b c (i 0) (sym (gensym))) + (values + (setf (get (progn (setf a (incf i)) sym) + (progn (setf b (incf i)) :foo) + (progn (setf c (incf i)) nil)) + t) + a b c i + (get sym :foo) + )) + t 1 2 3 3 t) + ;;; Error tests (deftest get.error.1