summaryrefslogtreecommitdiff
path: root/libguile/memoize.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2014-12-04 15:07:01 +0100
committerAndy Wingo <wingo@pobox.com>2014-12-05 11:45:36 +0100
commit7974c57937104b0617d93fa492d3bd323b053f20 (patch)
treeaea29150956efd9bbfc981ae20b1645fa9d50f82 /libguile/memoize.c
parent3f826e3c9ed41ae822463b6ab42b93360e0e7b84 (diff)
downloadguile-7974c57937104b0617d93fa492d3bd323b053f20.tar.gz
Assignment conversion in the interpreter
* libguile/expand.c (compute_assigned, convert_assignment) (scm_convert_assignment): New functions. * libguile/expand.h: Declare scm_convert_assignment. * libguile/memoize.c (scm_memoize_expression): Do assignment conversion before memoization. * test-suite/tests/syntax.test ("letrec"): Detection of unbound letrec variables now works.
Diffstat (limited to 'libguile/memoize.c')
-rw-r--r--libguile/memoize.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/memoize.c b/libguile/memoize.c
index 5c7129feb..36766e83e 100644
--- a/libguile/memoize.c
+++ b/libguile/memoize.c
@@ -569,7 +569,7 @@ SCM_DEFINE (scm_memoize_expression, "memoize-expression", 1, 0, 0,
#define FUNC_NAME s_scm_memoize_expression
{
SCM_ASSERT_TYPE (SCM_EXPANDED_P (exp), exp, 1, FUNC_NAME, "expanded");
- return memoize (exp, SCM_BOOL_F);
+ return memoize (scm_convert_assignment (exp), SCM_BOOL_F);
}
#undef FUNC_NAME