0.pre8.85
[sbcl.git] / src / code / interr.lisp
index 0e7cde6..60959da 100644 (file)
         "A function with declared result type NIL returned:~%  ~S"
         :format-arguments (list function)))
 
+(deferr nil-array-accessed-error (array)
+  (error 'nil-array-accessed-error
+        :datum array :expected-type '(not (array nil))))
+
 (deferr division-by-zero-error (this that)
   (error 'division-by-zero
         :operation 'division
 (deferr layout-invalid-error (object layout)
   (error 'layout-invalid
         :datum object
-        :expected-type (layout-class layout)))
+        :expected-type (layout-classoid layout)))
 
 (deferr odd-key-args-error ()
   (error 'simple-program-error
         :format-arguments (list key-name)))
 
 (deferr invalid-array-index-error (array bound index)
-  (error 'simple-error
+  (error 'simple-type-error
         :format-control
         "invalid array index ~W for ~S (should be nonnegative and <~W)"
-        :format-arguments (list index array bound)))
+        :format-arguments (list index array bound)
+        :datum index
+        :expected-type `(integer 0 (,bound))))
 
 (deferr object-not-simple-array-error (object)
   (error 'type-error
         :datum object
         :expected-type '(unsigned-byte 32)))
 
+(deferr object-not-simple-array-nil-error (object)
+  (error 'type-error
+        :datum object
+        :expected-type '(simple-array nil (*))))
+
 (deferr object-not-simple-array-unsigned-byte-2-error (object)
   (error 'type-error
         :datum object