diff options
-rw-r--r-- | module/language/tree-il/optimize.scm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index 2503e1426..0cc51a0b9 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -465,19 +465,19 @@ it does not handle <fix> and <let-values>, it should be called before (if (const? body*) body (make-fix src names gensyms vals body)))) - (($ <let-values> src producer - ($ <lambda-case> src2 req #f #f #f () gensyms body #f)) + (($ <let-values> lv-src producer + ($ <lambda-case> src req #f #f #f () gensyms body #f)) ;; Peval both producer and consumer, then try to inline. If ;; that succeeds, peval again. (let* ((producer (maybe-unconst producer (loop producer env calls))) - (body (maybe-unconst body (loop body env calls)))) + (body (maybe-unconst body (loop body env calls)))) (cond - ((inline-values producer src2 req gensyms body) + ((inline-values producer src req gensyms body) => (lambda (exp) (loop exp env calls))) (else - (make-let-values - src producer - (make-lambda-case src2 req #f #f #f '() gensyms body #f)))))) + (make-let-values lv-src producer + (make-lambda-case src req #f #f #f '() + gensyms body #f)))))) (($ <let-values>) exp) (($ <dynwind> src winder body unwinder) |