0.9.2.43:
[sbcl.git] / tests / clos.pure.lisp
index a6a032d..377c7e8 100644 (file)
@@ -6,7 +6,7 @@
 ;;;; While most of SBCL is derived from the CMU CL system, the test
 ;;;; files (like this one) were written from scratch after the fork
 ;;;; from CMU CL.
-;;;; 
+;;;;
 ;;;; This software is in the public domain and is provided with
 ;;;; absolutely no warranty. See the COPYING and CREDITS files for
 ;;;; more information.
 ;;; depends on it.  The basic functionality is tested elsewhere, but
 ;;; this is to investigate the internals for possible inconsistency.
 (assert (null
-        (let (collect)
-          (sb-pcl::map-all-generic-functions
-           (lambda (gf)
-             (let ((arg-info (sb-pcl::gf-arg-info gf)))
-               (when (eq (sb-pcl::arg-info-lambda-list arg-info)
-                         :no-lambda-list)
-                 (push gf collect)))))
-          (print (nreverse collect)))))
+         (let (collect)
+           (sb-pcl::map-all-generic-functions
+            (lambda (gf)
+              (let ((arg-info (sb-pcl::gf-arg-info gf)))
+                (when (eq (sb-pcl::arg-info-lambda-list arg-info)
+                          :no-lambda-list)
+                  (push gf collect)))))
+           (print (nreverse collect)))))
+
+;;; Regressing test for invalid slot specification error printing
+(multiple-value-bind (value err)
+    (ignore-errors (macroexpand '(defclass foo () (frob (frob bar)))))
+  (declare (ignore value))
+  (assert (typep err 'simple-condition))
+  (multiple-value-bind (value format-err)
+      (ignore-errors (apply #'format nil
+                            (simple-condition-format-control err)
+                            (simple-condition-format-arguments err)))
+    (declare (ignore value))
+    (assert (not format-err))))