X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-type.lisp;h=04a93f2a4e44f94232e83c7914c4e3f6b6311b0a;hb=54da325f13fb41669869aea688ae195426c0e231;hp=481a843c27de6930c35fe90d2550d4ca7d3e3cfc;hpb=b38f10027f48f657f77b290719da4fec30064e25;p=sbcl.git diff --git a/src/code/late-type.lisp b/src/code/late-type.lisp index 481a843..04a93f2 100644 --- a/src/code/late-type.lisp +++ b/src/code/late-type.lisp @@ -451,10 +451,11 @@ *empty-type*) ((not (values-type-p type)) type) - (t (or (car (args-type-required type)) - (car (args-type-optional type)) - (args-type-rest type) - (specifier-type 'null))))) + ((car (args-type-required type))) + (t (type-union (specifier-type 'null) + (or (car (args-type-optional type)) + (args-type-rest type) + (specifier-type 'null)))))) ;;; Return the minimum number of arguments that a function can be ;;; called with, and the maximum number or NIL. If not a function @@ -3509,7 +3510,7 @@ used for a COMPLEX component.~:@>" (simd-pack-type-element-type type))) (not-simd-pack (make-negation-type :type (specifier-type 'simd-pack)))) (if remaining - (type-union2 not-simd-pack (%make-simd-pack-type remaining)) + (type-union not-simd-pack (%make-simd-pack-type remaining)) not-simd-pack))) (!define-type-method (simd-pack :unparse) (type)