diff --git a/compiler/checkgen.lisp b/compiler/checkgen.lisp index 445b8f53082a834c2a72bc1295bd3aa396a39b1b..11832e35ad2436e296560de4cc4b66b99b9bb67c 100644 --- a/compiler/checkgen.lisp +++ b/compiler/checkgen.lisp @@ -106,10 +106,11 @@ (found-super nil)) (dolist (x *type-predicates*) (let ((stype (car x))) - (when (csubtypep type stype) - (setq found-super t) + (when (and (csubtypep type stype) + (not (union-type-p stype))) ;Not #!% COMMON type. (let ((stype-cost (type-test-cost stype))) (when (< stype-cost min-cost) + (setq found-super t) (setq min-type stype min-cost stype-cost)))))) (if found-super min-type