Skip to content
Snippets Groups Projects
Commit 02c785c6 authored by ram's avatar ram
Browse files

Changed NOTE-FAILED-OPTIMIZATION to redo the check for whether the type

intersects with the combination type, so that if we later discovered that
there was no intersection we wouldn't flame.
parent 32a74121
No related branches found
No related tags found
No related merge requests found
...@@ -29,20 +29,24 @@ ...@@ -29,20 +29,24 @@
(let ((*compiler-error-context* node)) (let ((*compiler-error-context* node))
(dolist (failure failures) (dolist (failure failures)
(let ((what (cdr failure))) (let ((what (cdr failure)))
(if (consp what) (cond
(compiler-note "Unable to optimize because:~%~6T~?" ((consp what)
(first what) (rest what)) (compiler-note "Unable to optimize because:~%~6T~?"
(collect ((messages)) (first what) (rest what)))
(flet ((frob (string &rest stuff) ((valid-function-use node what
(messages string) :argument-test #'types-intersect
(messages stuff))) :result-test #'values-types-intersect)
(valid-function-use node what (collect ((messages))
:warning-function #'frob (flet ((frob (string &rest stuff)
:error-function #'frob)) (messages string)
(messages stuff)))
(compiler-note "Unable to optimize due to type uncertainty:~@ (valid-function-use node what
~{~6T~?~^~&~}" :warning-function #'frob
(messages))))))))) :error-function #'frob))
(compiler-note "Unable to optimize due to type uncertainty:~@
~{~6T~?~^~&~}"
(messages))))))))))
;;; Check-Free-Function -- Interface ;;; Check-Free-Function -- Interface
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment