commit a0a18b822a1db40ad80f20b024125668d9726713
parent 8c939c60b96e90ffbb16ddf019c31fbdfba8c099
Author: Andres Navarro <canavarro82@gmail.com>
Date: Mon, 28 Mar 2011 19:21:56 -0300
Bugfix: $let* now passes true to split bindings to allow repeated symbols in different ptrees.
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/kgenvironments.c b/src/kgenvironments.c
@@ -261,7 +261,7 @@ void SletS(klisp_State *K, TValue *xparams, TValue ptree, TValue denv)
bind_al1p(K, name, ptree, bindings, body);
TValue exprs;
- TValue bptree = split_check_let_bindings(K, name, bindings, &exprs, false);
+ TValue bptree = split_check_let_bindings(K, name, bindings, &exprs, true);
int32_t dummy;
UNUSED(check_list(K, name, true, body, &dummy));
body = copy_es_immutable_h(K, name, body, false);
@@ -285,9 +285,6 @@ void SletS(klisp_State *K, TValue *xparams, TValue ptree, TValue denv)
}
/* 6.7.5 $letrec */
-/* TODO */
-
-/* 6.7.6 $letrec* */
void Sletrec(klisp_State *K, TValue *xparams, TValue ptree, TValue denv)
{
/*
@@ -311,6 +308,9 @@ void Sletrec(klisp_State *K, TValue *xparams, TValue ptree, TValue denv)
ktail_eval(K, kcons(K, K->list_app, exprs), new_env);
}
+/* 6.7.6 $letrec* */
+/* TODO */
+
/* Helper for $let-redirect */
void do_let_redirect(klisp_State *K, TValue *xparams, TValue obj)
{