(values nil t))
((or (unknown-type-p (array-type-element-type type1))
(unknown-type-p (array-type-element-type type2)))
- (multiple-value-bind (equalp certainp)
- (type= (array-type-element-type type1)
- (array-type-element-type type2))
- ;; By its nature, the call to TYPE= should never return
- ;; NIL, T, as we don't know what the UNKNOWN-TYPE will grow
- ;; up to be. -- CSR, 2002-08-19
- (aver (not (and (not equalp) certainp)))
- (values equalp certainp)))
+ (type= (array-type-element-type type1)
+ (array-type-element-type type2)))
(t
(values (type= (array-type-specialized-element-type type1)
(array-type-specialized-element-type type2))
(multiple-value-bind (ok sure) (sb-kernel:csubtypep t1 t2)
(assert (and ok sure)))))
+(with-test (:name :unknown-type-not=-for-sure)
+ (let* ((type (gensym "FOO"))
+ (spec1 (sb-kernel:specifier-type `(vector ,type)))
+ (spec2 (sb-kernel:specifier-type `(vector single-float))))
+ (eval `(deftype ,type () 'double-float))
+ (multiple-value-bind (ok sure) (sb-kernel:type= spec1 spec2)
+ (assert (not ok))
+ (assert sure))))
+
;;; success