diff options
-rw-r--r-- | module/language/tree-il/optimize.scm | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index 0567b0cfa..f69ce557e 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -320,6 +320,7 @@ it does not handle <fix> and <let-values>, it should be called before (($ <lexical-ref>) #t) (($ <toplevel-ref>) #t) (($ <primitive-ref>) #t) + (($ <dynref> _ fluid) (loop fluid)) (($ <conditional> _ condition subsequent alternate) (and (loop condition) (loop subsequent) (loop alternate))) (($ <application> _ ($ <primitive-ref> _ name) args) @@ -334,6 +335,10 @@ it does not handle <fix> and <let-values>, it should be called before (and (every loop vals) (loop body))) (($ <letrec> _ _ _ _ vals body) (and (every loop vals) (loop body))) + (($ <fix> _ _ _ vals body) + (and (every loop vals) (loop body))) + (($ <let-values> _ exp body) + (and (loop exp) (loop body))) (_ #f)))) (define (mutable? exp) |