aboutsummaryrefslogtreecommitdiff
path: root/src/interp/c-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r--src/interp/c-util.boot8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index b030f3b3..552b007c 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -1508,6 +1508,14 @@ mutateToBackendCode x ==
IDENTP u and GET(u,"ILAM") ~= nil =>
x.first := eval u
mutateToBackendCode x
+ u in '(LET LET_*) =>
+ vars := nil
+ for [var,init] in second x repeat
+ mutateToBackendCode init
+ $LocalVars := [var,:$LocalVars]
+ vars := [var,:vars]
+ mutateToBackendCode x.rest.rest
+ $LocalVars := setDifference($LocalVars,vars)
u in '(PROG LAMBDA) =>
newBindings := []
for y in second x repeat