Skip to content
Snippets Groups Projects
Commit 35ac2893 authored by ram's avatar ram
Browse files

Changed ENVIRONMENT-ANALYZE so that it doesn't always give multiple

"does not return" notes.
parent 752f16ce
No related branches found
No related tags found
No related merge requests found
......@@ -38,18 +38,19 @@
(declare (type component component))
(assert (not (component-new-functions component)))
(dolist (fun (component-lambdas component))
(let* ((f (if (eq (functional-kind fun) :external)
(functional-entry-function fun)
fun))
(dtype (definition-type f))
(node (lambda-bind fun)))
(setf (leaf-type f) dtype)
(when (and (eq (function-type-returns dtype) *empty-type*)
(or (functional-entry-function f)
(null (functional-kind f)))
(policy node (>= safety brevity)))
(let ((*compiler-error-context* node))
(compiler-note "Function does not return."))))
(let* ((ef (functional-entry-function fun))
(kind (functional-kind fun))
(f (cond ((eq (functional-kind fun) :external)
(when (optional-dispatch-p ef) ef))
((null kind) fun))))
(when f
(let* ((dtype (definition-type f))
(node (lambda-bind fun)))
(setf (leaf-type f) dtype)
(when (and (eq (function-type-returns dtype) *empty-type*)
(policy node (>= safety brevity)))
(let ((*compiler-error-context* node))
(compiler-note "Function does not return."))))))
(get-lambda-environment fun))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment