From: Christophe R. <cr...@us...> - 2002-10-15 10:08:06
|
Update of /cvsroot/sbcl/sbcl/tests In directory usw-pr-cvs1:/tmp/cvs-serv23556/tests Modified Files: clos.impure.lisp mop.impure.lisp Log Message: 0.7.8.39: Fix BUG 209 (wrong argument precedence order for DOCUMENTATION) as per Gerd Moellman on cmucl-imp 2002-10-13 ... see also Entomotomy bug documentation-generic-function-wrong-argument-precedence-order Index: clos.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/clos.impure.lisp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- clos.impure.lisp 12 Oct 2002 14:28:36 -0000 1.14 +++ clos.impure.lisp 15 Oct 2002 10:08:03 -0000 1.15 @@ -299,7 +299,14 @@ (odd-key-args-checking 3))) (assert (= (odd-key-args-checking) 42)) (assert (eq (odd-key-args-checking :key t) t))) - + +;;; DOCUMENTATION's argument-precedence-order wasn't being faithfully +;;; preserved through the bootstrap process until sbcl-0.7.8.39. +;;; (thanks to Gerd Moellmann) +(let ((answer (documentation '+ 'function))) + (assert (stringp answer)) + (defmethod documentation ((x (eql '+)) y) "WRONG") + (assert (string= (documentation '+ 'function) answer))) ;;;; success Index: mop.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/mop.impure.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mop.impure.lisp 15 Oct 2002 09:23:21 -0000 1.2 +++ mop.impure.lisp 15 Oct 2002 10:08:03 -0000 1.3 @@ -32,19 +32,11 @@ (assert (equal (sb-pcl:generic-function-argument-precedence-order #'fn-with-odd-arg-precedence) '(b c a))) - -#|| -This is actually a test of vanilla CLOS, not the MOP; however, there isn't -a terribly easy way of testing this without it (FIXME: one would have to -construct a series of DOCUMENTATION methods, probably involving -CALL-NEXT-METHOD). However, since we're actually getting this wrong -currently, better put in a quick test in the hope that we can fix it soon: - +;;; Test for DOCUMENTATION's order, which was wrong until sbcl-0.7.8.39 (assert (equal (sb-pcl:generic-function-argument-precedence-order #'documentation) (let ((ll (sb-pcl:generic-function-lambda-list #'documentation))) - (list (nth ll 1) (nth ll 0))))) -||# + (list (nth 1 ll) (nth 0 ll))))) ;;; Readers for Slot Definition Metaobjects (pp. 221--224 of AMOP) |