diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index 848b7e92d..9b76f69f7 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -436,7 +436,7 @@ it does not handle and , it should be called before (($ _ _ gensym) ;; Propagate only pure expressions. (let ((val (lookup gensym))) - (or (and (pure-expression? val) val) exp))) + (if (pure-expression? val) val exp))) ;; Lexical set! causes a bailout. (($ src names gensyms vals body) (let* ((vals* (map (cut loop <> env calls) vals))