Skip to content
Snippets Groups Projects
Commit 961aad10 authored by ram's avatar ram
Browse files

Don't call CONTINUATION-CHECK-TYPES if PROBABLE-TYPE-CHECK-P returns NIL.

This lets type checking assume that the continuation does have a DEST,
and also avoids some unnecessary work.
parent 556eea52
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/checkgen.lisp,v 1.19 1992/03/21 19:41:14 wlott Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/checkgen.lisp,v 1.20 1992/07/21 18:41:26 ram Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -509,25 +509,22 @@ ...@@ -509,25 +509,22 @@
(do-type-warning use)))))) (do-type-warning use))))))
(when (eq type-check t) (when (eq type-check t)
(let ((check-p (probable-type-check-p cont))) (if (probable-type-check-p cont)
(multiple-value-bind (check types) (multiple-value-bind (check types)
(continuation-check-types cont) (continuation-check-types cont)
(ecase check (ecase check
(:simple (:simple)
(unless check-p (:hairy
(setf (continuation-%type-check cont) :no-check))) (convert-type-check cont types))
(:hairy (:too-hairy
(if check-p (let* ((context (continuation-dest cont))
(convert-type-check cont types) (*compiler-error-context* context))
(setf (continuation-%type-check cont) :no-check))) (when (policy context (>= safety brevity))
(:too-hairy (compiler-note
(let* ((context (continuation-dest cont)) "Type assertion too complex to check:~% ~S."
(*compiler-error-context* context)) (type-specifier (continuation-asserted-type cont)))))
(when (policy context (>= safety brevity)) (setf (continuation-%type-check cont) :deleted))))
(compiler-note (setf (continuation-%type-check cont) :no-check)))))
"Type assertion too complex to check:~% ~S."
(type-specifier (continuation-asserted-type cont)))))
(setf (continuation-%type-check cont) :deleted))))))))
(setf (block-type-check block) nil))) (setf (block-type-check block) nil)))
......
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