From 89e633db2662586863ddf0f89f02fe992009fefb Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Tue, 13 Nov 2018 12:57:55 -0500 Subject: [PATCH] Added clarifying comments --- scheme/cyclone/cps-optimizations.sld | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index e946aac3..dc6e55c1 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -1754,12 +1754,15 @@ ,@(map cc (cdr exp)))) ;; TODO: need to splice? ((set!? exp) `(set! ,(set!->var exp) ,(cc (set!->exp exp)))) - ((tagged-list? 'let exp) ;; Special case now with local var redux + ;; Special case now with local var redux + ((tagged-list? 'let exp) `(let ,(cadr exp) ,@(convert (caddr exp) self-var + ;; Do not closure convert the let's variables because + ;; the previous code guarantees they are locals (filter (lambda (v) (not (member v (let->vars exp)))) free-var-lst))) ) ((lambda? exp) (error `(Unexpected lambda in closure-convert ,exp)))