X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ftype.before-xc.lisp;h=77f484f206bc688dbfba6768ec1e7bfec4be2d7f;hb=df677c367a27b9d8cedd6371b7646567a972d4b3;hp=e7f0964ad0b35c602debd1faa36c8f5c671ea388;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/tests/type.before-xc.lisp b/tests/type.before-xc.lisp index e7f0964..77f484f 100644 --- a/tests/type.before-xc.lisp +++ b/tests/type.before-xc.lisp @@ -216,4 +216,118 @@ (specifier-type '(member #\b #\c #\f))) (specifier-type '(member #\c)))) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'package 'instance) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'symbol 'instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'package 'funcallable-instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'symbol 'funcallable-instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'funcallable-instance 'function) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'array 'instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'character 'instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'number 'instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'package '(and (or symbol package) instance)) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and (or double-float integer) instance) 'nil) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and (or double-float integer) funcallable-instance) 'nil) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'instance 'type-specifier) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'type-specifier 'instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and (function (t)) funcallable-instance) 'nil) + (assert (not yes))) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and fixnum function) 'nil) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and fixnum hash-table) 'nil) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(function) '(function (t &rest t))) + (assert (not yes)) + (assert win)) +;; Used to run out of stack. +(multiple-value-bind (yes win) + (sb-xc:subtypep 'null '(or unk0 unk1)) + (assert (not yes)) + (assert (not win))) + +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and function instance) nil) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep nil '(and function instance)) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and function funcallable-instance) 'funcallable-instance) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'funcallable-instance '(and function funcallable-instance)) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'stream 'instance) + (assert (not yes))) +(multiple-value-bind (yes win) + (sb-xc:subtypep 'stream 'funcallable-instance) + (assert (not yes)) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and stream instance) 'instance) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and stream funcallable-instance) 'funcallable-instance) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and stream instance) 'stream) + (assert yes) + (assert win)) +(multiple-value-bind (yes win) + (sb-xc:subtypep '(and stream funcallable-instance) 'stream) + (assert yes) + (assert win)) + + (/show "done with tests/type.before-xc.lisp")