X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcheckgen.lisp;h=53134417ef511711d0485911c7391ad6e52e1212;hb=22c1de0a40df83bb5628974010a879cb2c17ff53;hp=d3d8a1703e4db2fc906ae7b5ecdc06c79cc9595e;hpb=942e5de3f3e27e1cc6ae4aae69c040fa1dc7db00;p=sbcl.git diff --git a/src/compiler/checkgen.lisp b/src/compiler/checkgen.lisp index d3d8a17..5313441 100644 --- a/src/compiler/checkgen.lisp +++ b/src/compiler/checkgen.lisp @@ -269,8 +269,8 @@ force-hairy))) ((not (eq vcount :unknown)) (maybe-negate-check value - (values-type-start ctype vcount) - (values-type-start atype vcount) + (values-type-out ctype vcount) + (values-type-out atype vcount) t)) (t (values :too-hairy nil)))))))) @@ -389,11 +389,11 @@ ((= length 1) (single-value-type atype)) (t - (make-values-type :required - (values-type-start atype length))))) + (make-values-type + :required (values-type-out atype length))))) (dtype (node-derived-type cast)) - (dtype (make-values-type :required - (values-type-start dtype length)))) + (dtype (make-values-type + :required (values-type-out dtype length)))) (setf (cast-asserted-type cast) atype) (setf (node-derived-type cast) dtype))) @@ -467,9 +467,9 @@ (do-blocks (block component) (when (block-type-check block) (do-nodes (node cont block) - (when (cast-p node) - (when (cast-type-check node) - (cast-check-uses node)) + (when (and (cast-p node) + (cast-type-check node)) + (cast-check-uses node) (cond ((worth-type-check-p node) (casts (cons node (not (probable-type-check-p node))))) (t @@ -487,7 +487,7 @@ (:too-hairy (let ((*compiler-error-context* cast)) (when (policy cast (>= safety inhibit-warnings)) - (compiler-note + (compiler-notify "type assertion too complex to check:~% ~S." (type-specifier (coerce-to-values (cast-asserted-type cast)))))) (setf (cast-type-to-check cast) *wild-type*)