diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp index d9ed4dc0315ad6f0d31c670b29be7665d5a5765c..f5faa7378a85f1540af436b499e142dcf0ae9f1f 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