message
[sbcl.git] / src / compiler / generic / vm-type.lisp
index fc763a3..85c1b0b 100644 (file)
@@ -16,7 +16,7 @@
 
 ;;;; FIXME: I'm not sure where to put this. -- WHN 19990817
 
 
 ;;;; FIXME: I'm not sure where to put this. -- WHN 19990817
 
-(deftype sb!vm:word () `(unsigned-byte ,sb!vm:n-word-bits))
+(def!type sb!vm:word () `(unsigned-byte ,sb!vm:n-word-bits))
 \f
 ;;;; implementation-dependent DEFTYPEs
 
 \f
 ;;;; implementation-dependent DEFTYPEs
 
   "Return the element type of the most specialized COMPLEX number type that
    can hold parts of type SPEC."
   (declare (ignore environment))
   "Return the element type of the most specialized COMPLEX number type that
    can hold parts of type SPEC."
   (declare (ignore environment))
-  (if (unknown-type-p (specifier-type spec))
-      (error "undefined type: ~S" spec)
-      (let ((ctype (specifier-type `(complex ,spec))))
-       (cond
-         ((eq ctype *empty-type*) '(eql 0))
-         ((csubtypep ctype (specifier-type '(complex single-float)))
-          'single-float)
-         ((csubtypep ctype (specifier-type '(complex double-float)))
-          'double-float)
-         #!+long-float
-         ((csubtypep ctype (specifier-type '(complex long-float)))
-          'long-float)
-         ((csubtypep ctype (specifier-type '(complex rational)))
-          'rational)
-         (t 'real)))))
+  (let ((type (specifier-type spec)))
+    (cond
+      ((eq type *empty-type*) nil)
+      ((unknown-type-p type) (error "undefined type: ~S" spec))
+      (t
+       (let ((ctype (specifier-type `(complex ,spec))))
+         (cond
+           ((eq ctype *empty-type*) '(eql 0))
+           ((csubtypep ctype (specifier-type '(complex single-float)))
+            'single-float)
+           ((csubtypep ctype (specifier-type '(complex double-float)))
+            'double-float)
+           #!+long-float
+           ((csubtypep ctype (specifier-type '(complex long-float)))
+            'long-float)
+           ((csubtypep ctype (specifier-type '(complex rational)))
+            'rational)
+           (t 'real)))))))
 
 ;;; Return the most specific integer type that can be quickly checked that
 ;;; includes the given type.
 
 ;;; Return the most specific integer type that can be quickly checked that
 ;;; includes the given type.