diff options
author | Andy Wingo <wingo@pobox.com> | 2014-12-04 15:07:01 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-12-05 11:45:36 +0100 |
commit | 7974c57937104b0617d93fa492d3bd323b053f20 (patch) | |
tree | aea29150956efd9bbfc981ae20b1645fa9d50f82 /libguile/memoize.c | |
parent | 3f826e3c9ed41ae822463b6ab42b93360e0e7b84 (diff) | |
download | guile-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.c | 2 |
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 |