X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fclos.impure.lisp;h=4994d557a718fbece2bcca49da80510eec4f6af8;hb=90c2b0563695904419451b6172efcf9c7008ad8b;hp=36d1ee056e9baf086be0aedcb9c3ea4f178e3616;hpb=4ecf492736b3584058c36a0830f43c201be27e12;p=sbcl.git diff --git a/tests/clos.impure.lisp b/tests/clos.impure.lisp index 36d1ee0..4994d55 100644 --- a/tests/clos.impure.lisp +++ b/tests/clos.impure.lisp @@ -1527,5 +1527,25 @@ (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