X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-type.lisp;fp=src%2Fcode%2Flate-type.lisp;h=8190493b283759c96d774d2743f71a24ecc8de27;hb=260de2062fca170efdac3e42491d7d866c2d2e56;hp=04a93f2a4e44f94232e83c7914c4e3f6b6311b0a;hpb=a6c4b66e040824da2fc76e101f92940e8412c6d3;p=sbcl.git diff --git a/src/code/late-type.lisp b/src/code/late-type.lisp index 04a93f2..8190493 100644 --- a/src/code/late-type.lisp +++ b/src/code/late-type.lisp @@ -49,6 +49,13 @@ (funcall method type2 type1) (hierarchical-intersection2 type1 type2)))) +(defun contains-unknown-type-p (ctype) + (cond ((unknown-type-p ctype) t) + ((intersection-type-p ctype) + (some #'contains-unknown-type-p (intersection-type-types ctype))) + ((union-type-p ctype) + (some #'contains-unknown-type-p (union-type-types ctype))))) + ;;; This is used by !DEFINE-SUPERCLASSES to define the SUBTYPE-ARG1 ;;; method. INFO is a list of conses ;;; (SUPERCLASS-CLASS . {GUARD-TYPE-SPECIFIER | NIL}).