0.9.2.18: various error &co reporting improvements and build tweaks
[sbcl.git] / src / code / condition.lisp
index 4b62d88..b89d6d8 100644 (file)
                                      "new"
                                      (layout-length layout)
                                      (layout-inherits layout)
-                                     (layout-depthoid layout))
+                                     (layout-depthoid layout)
+                                     (layout-n-untagged-slots layout))
             (register-layout layout :invalidate t))
            ((not (classoid-layout class))
             (register-layout layout)))
 (define-condition cell-error (error)
   ((name :reader cell-error-name :initarg :name)))
 
+(def!method print-object ((condition cell-error) stream)
+  (if *print-escape*
+      (print-unreadable-object (condition stream :type t :identity t)
+       (princ (cell-error-name condition) stream))
+      (call-next-method)))
+
 (define-condition unbound-variable (cell-error) ()
   (:report
    (lambda (condition stream)
@@ -1119,6 +1126,13 @@ SB-EXT:PACKAGE-LOCKED-ERROR-SYMBOL."))
 
 (define-condition timeout (serious-condition) ())
 
+(define-condition declaration-type-conflict-error (reference-condition
+                                                  simple-error)
+  ()
+  (:default-initargs
+      :format-control "symbol ~S cannot be both the name of a type and the name of a declaration"
+    :references (list '(:ansi-cl :section (3 8 21)))))
+
 ;;; Single stepping conditions
 
 (define-condition step-condition ()