UPGRADED-ARRAY-ELEMENT-TYPE: more thoroughly signal errors on unknown types.
[sbcl.git] / tests / info.impure.lisp
index 8376d67..113428a 100644 (file)
@@ -13,7 +13,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.
 ;;; the DEFUN is just LOADed instead of COMPILE-FILEd, and it's
 ;;; not immediately obvious what's the best way to set up
 ;;; the COMPILE-FILE test.
-#|
+#||
 (assert
   (equal
    (format nil "~A" (sb-int:info :function :type 'foo))
-   "#<FUNCTION-TYPE (FUNCTION (T T) LIST)>"))
-|#
+   "#<FUN-TYPE (FUNCTION (T T) LIST)>"))
+||#
+
+(with-test (:name :bug-458015)
+  ;; Make sure layouts have sane source-locations
+  (dolist (env sb-c::*info-environment*)
+    (sb-c::do-info (env :class class :type type :name info-name :value value)
+      (when (and (symbolp info-name)
+                 (eql class :type)
+                 (eql type :kind))
+        (let* ((classoid (sb-kernel:find-classoid info-name nil))
+               (layout (and classoid (sb-kernel:classoid-layout classoid)))
+               (srcloc (and layout (sb-kernel::layout-source-location layout))))
+          (when (and layout)
+            (assert (or (sb-c::definition-source-location-p srcloc)
+                        (null srcloc)))))))))
 
 ;;; success
-(quit :unix-status 104)