From: Christophe R. <cr...@us...> - 2003-05-28 11:51:17
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1:/tmp/cvs-serv505/tests Modified Files: clos.impure.lisp Log Message: 0.8.0.11: Merge patch from Antonio Martinez (sbcl-devel 2003-05-19 "read-sequence for fundamental-binary-input-streams") ... and WRITE-SEQUENCE, as well. Merge patch from Andreas Fuchs (sbcl-devel 2003-05-20 "(defmethod foo (&key bla &rest blub) t)") ... detect more erroneous specialized lambda lists; ... handle the error in the SOURCE-CONTEXT method for DEFMETHOD, otherwise we can't print the error message we want; ... fix the bogus lambda list in simple-streams and in the test suite; ... include tests for a variety of bogus input. (I would also like to mark the occasion of SBCL's very own millennium bug, as we observe the CVS revision number for version.lisp-expr tick over from 1.999 to 1.1000. "Should auld acquaintance be forgot...") Index: clos.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/clos.impure.lisp,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- clos.impure.lisp 27 May 2003 13:32:57 -0000 1.37 +++ clos.impure.lisp 28 May 2003 11:51:12 -0000 1.38 @@ -70,7 +70,7 @@ (assert (expect-error (defgeneric foo2 (x a &rest)))) (defgeneric foo3 (x &rest y)) (defmethod foo3 ((x t) &rest y) nil) -(defmethod foo4 ((x t) &key y &rest z) nil) +(defmethod foo4 ((x t) &rest z &key y) nil) (defgeneric foo4 (x &rest z &key y)) (assert (expect-error (defgeneric foo5 (x &rest)))) (assert (expect-error (macroexpand-1 '(defmethod foo6 (x &rest))))) @@ -333,7 +333,18 @@ ((#1a() :initarg :a)))) (assert-program-error (defclass foo012 () ((t :initarg :t)))) - (assert-program-error (defclass foo013 () ("a")))) + (assert-program-error (defclass foo013 () ("a"))) + ;; specialized lambda lists have certain restrictions on ordering, + ;; repeating keywords, and the like: + (assert-program-error (defmethod foo014 ((foo t) &rest) nil)) + (assert-program-error (defmethod foo015 ((foo t) &rest x y) nil)) + (assert-program-error (defmethod foo016 ((foo t) &allow-other-keys) nil)) + (assert-program-error (defmethod foo017 ((foo t) + &optional x &optional y) nil)) + (assert-program-error (defmethod foo018 ((foo t) &rest x &rest y) nil)) + (assert-program-error (defmethod foo019 ((foo t) &rest x &optional y) nil)) + (assert-program-error (defmethod foo020 ((foo t) &key x &optional y) nil)) + (assert-program-error (defmethod foo021 ((foo t) &key x &rest y) nil))) ;;; DOCUMENTATION's argument-precedence-order wasn't being faithfully ;;; preserved through the bootstrap process until sbcl-0.7.8.39. |