- (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)))))))