From dbf77ce999747db6c28e653b7a8192186cbf64e6 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 23 Mar 2016 22:52:08 -0400 Subject: [PATCH] Be more careful about optimizing-out functions --- scheme/cyclone/transforms.sld | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index e3af73c1..7c4217e4 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -1503,7 +1503,13 @@ (equal? (app->args body) ;(lambda->formals (car body)) (lambda->formals exp) - )) + ) + ;; TODO: don't do it if args are used in the body + ;; this won't work if we have any num other than 1 arg + (not (member + (car (lambda->formals exp)) + (free-vars (car body)))) + ) (cps-optimize-01 (car body))) (else `(lambda ,(lambda->formals exp)