0.8.16.9:
[sbcl.git] / src / code / interr.lisp
index 0e7cde6..66f69f4 100644 (file)
         :datum object
         :expected-type 'simple-string))
 
-(deferr object-not-simple-bit-vector-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type 'simple-bit-vector))
-
-(deferr object-not-simple-vector-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type 'simple-vector))
-
 (deferr object-not-fixnum-error (object)
   (error 'type-error
         :datum object
         :datum object
         :expected-type 'string))
 
+(deferr object-not-base-string-error (object)
+  (error 'type-error
+        :datum object
+        :expected-type 'base-string))
+
 (deferr object-not-bit-vector-error (object)
   (error 'type-error
         :datum object
 (deferr unbound-symbol-error (symbol)
   (error 'unbound-variable :name symbol))
 
-(deferr object-not-base-char-error (object)
+(deferr object-not-character-error (object)
   (error 'type-error
         :datum object
-        :expected-type 'base-char))
+        :expected-type 'character))
 
 (deferr object-not-sap-error (object)
   (error 'type-error
         "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-unsigned-byte-2-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (unsigned-byte 2) (*))))
-
-(deferr object-not-simple-array-unsigned-byte-4-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (unsigned-byte 4) (*))))
-
-(deferr object-not-simple-array-unsigned-byte-8-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (unsigned-byte 8) (*))))
-
-(deferr object-not-simple-array-unsigned-byte-16-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (unsigned-byte 16) (*))))
-
-(deferr object-not-simple-array-unsigned-byte-32-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (unsigned-byte 32) (*))))
-
-(deferr object-not-simple-array-signed-byte-8-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (signed-byte 8) (*))))
-
-(deferr object-not-simple-array-signed-byte-16-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (signed-byte 16) (*))))
-
-(deferr object-not-simple-array-signed-byte-30-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (signed-byte 30) (*))))
-
-(deferr object-not-simple-array-signed-byte-32-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (signed-byte 32) (*))))
-
-(deferr object-not-simple-array-single-float-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array single-float (*))))
-
-(deferr object-not-simple-array-double-float-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array double-float (*))))
-
-(deferr object-not-simple-array-complex-single-float-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (complex single-float) (*))))
-
-(deferr object-not-simple-array-complex-double-float-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (complex double-float) (*))))
-
-#!+long-float
-(deferr object-not-simple-array-complex-long-float-error (object)
-  (error 'type-error
-        :datum object
-        :expected-type '(simple-array (complex long-float) (*))))
+(macrolet
+    ((define-simple-array-internal-errors ()
+        `(progn
+          ,@(map 'list
+                 (lambda (saetp)
+                   `(deferr ,(symbolicate
+                              "OBJECT-NOT-"
+                              (sb!vm:saetp-primitive-type-name saetp)
+                              "-ERROR")
+                             (object)
+                     (error 'type-error
+                            :datum object
+                            :expected-type '(simple-array
+                                             ,(sb!vm:saetp-specifier saetp)
+                                             (*)))))
+                 sb!vm:*specialized-array-element-type-properties*))))
+  (define-simple-array-internal-errors))
 
 (deferr object-not-complex-error (object)
   (error 'type-error