0.7.8.42:
[sbcl.git] / tests / clos.impure.lisp
index d3a76aa..f5062b7 100644 (file)
   (assert-program-error (defclass foo003 ()
                          ((a :allocation :class :allocation :class))))
   (assert-program-error (defclass foo004 ()
-                         ((a :silly t)))))
+                         ((a :silly t))))
+  ;; and some more, found by Wolfhard Buss and fixed for cmucl by Gerd
+  ;; Moellmann in 0.7.8.x:
+  (assert-program-error (progn
+                         (defmethod odd-key-args-checking (&key (key 42)) key)
+                         (odd-key-args-checking 3)))
+  (assert (= (odd-key-args-checking) 42))
+  (assert (eq (odd-key-args-checking :key t) t)))
+\f
+;;; 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)))
 \f
 ;;;; success