X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fclos.impure.lisp;h=4994d557a718fbece2bcca49da80510eec4f6af8;hb=d8659f1e656234e8f0f47d5295b503dd6cff4aba;hp=68874857d6117c90281217ebe01ad8d40a822ae1;hpb=7474a620a5538091b9c1cba877156f5645d78aa6;p=sbcl.git diff --git a/tests/clos.impure.lisp b/tests/clos.impure.lisp index 6887485..4994d55 100644 --- a/tests/clos.impure.lisp +++ b/tests/clos.impure.lisp @@ -1521,5 +1521,31 @@ (clim-style-lambda-list-test 1 2) +(setf *count* 0) + +(test (&aux (a (incf *count*)) (b (incf *count*))) + (a b *count* (setf *count* 0)) + ()) + +;;;; long-form method combination with &rest in :arguments +;;;; (this had a bug what with fixed in 1.0.4.something) +(define-method-combination long-form-with-&rest () + ((methods *)) + (:arguments x &rest others) + `(progn + ,@(mapcar (lambda (method) + `(call-method ,method)) + methods) + (list ,x (length ,others)))) + +(defgeneric test-long-form-with-&rest (x &rest others) + (:method-combination long-form-with-&rest)) + +(defmethod test-long-form-with-&rest (x &rest others) + nil) + +(assert (equal '(:foo 13) + (apply #'test-long-form-with-&rest :foo (make-list 13)))) + ;;;; success