X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ftype.impure.lisp;h=28479f064299254cae66ec6179689c1ccc5038a3;hb=219cc40793f9c82fb943b29a1846f898f4f9de1e;hp=aedea6b3c5139a9b223b4dd1fe0f8ab4ddb7ff96;hpb=2dbee6e782b54f8780933790d61a24cdb67b8d04;p=sbcl.git diff --git a/tests/type.impure.lisp b/tests/type.impure.lisp index aedea6b..28479f0 100644 --- a/tests/type.impure.lisp +++ b/tests/type.impure.lisp @@ -697,4 +697,39 @@ ftype ) (error "FAILURE"))))))) +(with-test (:name (:bug-309128 1)) + (let* ((s (gensym)) + (t1 (sb-kernel:specifier-type s))) + (eval `(defstruct ,s)) + (multiple-value-bind (ok sure) + (sb-kernel:csubtypep t1 (sb-kernel:specifier-type s)) + (assert (and ok sure))))) + +(with-test (:name (:bug-309128 2)) + (let* ((s (gensym)) + (t1 (sb-kernel:specifier-type s))) + (eval `(defstruct ,s)) + (multiple-value-bind (ok sure) + (sb-kernel:csubtypep (sb-kernel:specifier-type s) t1) + (assert (and ok sure))))) + +(with-test (:name (:bug-309128 3)) + (let* ((s (gensym)) + (t1 (sb-kernel:specifier-type s)) + (s2 (gensym)) + (t2 (sb-kernel:specifier-type s2))) + (eval `(deftype ,s2 () ',s)) + (eval `(defstruct ,s)) + (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