From 87fd9c7cb4170e7e4b19ab6d52373437e807d866 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Fri, 20 Apr 1990 14:39:08 +0000 Subject: [PATCH] Fixed TRULY-THE to set the NODE-DERIVED-TYPE only on uses of the CONT that are within the enclosed form. This was causing uses of (TRULY-THE NIL ...) in XEPs to have truly bizarre effects (we "proved" that the XEP calls returned NIL, wich allowed us to assume that all non-fixed-arg functions return 1 value.) --- compiler/ir1tran.lisp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp index d9ed4dc03..f5faa7378 100644 --- a/compiler/ir1tran.lisp +++ b/compiler/ir1tran.lisp @@ -2576,10 +2576,12 @@ Like the THE special form, except that it believes whatever you tell it. It will never generate a type check, but will cause a warning if the compiler can prove the assertion is wrong." - (let ((type (specifier-type type))) + (let ((type (specifier-type type)) + (old (find-uses cont))) (ir1-convert start cont value) (do-uses (use cont) - (derive-node-type use type)))) + (unless (member use old) + (derive-node-type use type))))) ;;;; Setq -- GitLab