mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-20 06:09:18 +02:00
don't strip syntax for unknown refs
This commit is contained in:
parent
1d9038d3ca
commit
71f4db7d17
2 changed files with 12 additions and 1 deletions
1
eval.c
1
eval.c
|
@ -747,7 +747,6 @@ static sexp analyze_var_ref (sexp ctx, sexp x, sexp *varenv) {
|
||||||
sexp_gc_preserve1(ctx, cell);
|
sexp_gc_preserve1(ctx, cell);
|
||||||
cell = sexp_env_cell_loc(ctx, env, x, 0, varenv);
|
cell = sexp_env_cell_loc(ctx, env, x, 0, varenv);
|
||||||
if (! cell) {
|
if (! cell) {
|
||||||
while (sexp_synclop(x)) x = sexp_synclo_expr(x);
|
|
||||||
cell = sexp_env_cell_create(ctx, env, x, SEXP_UNDEF, varenv);
|
cell = sexp_env_cell_create(ctx, env, x, SEXP_UNDEF, varenv);
|
||||||
}
|
}
|
||||||
if (sexp_macrop(sexp_cdr(cell)) || sexp_corep(sexp_cdr(cell))) {
|
if (sexp_macrop(sexp_cdr(cell)) || sexp_corep(sexp_cdr(cell))) {
|
||||||
|
|
|
@ -509,6 +509,18 @@
|
||||||
(foo bar x)
|
(foo bar x)
|
||||||
(test 'x (bar 1)))
|
(test 'x (bar 1)))
|
||||||
|
|
||||||
|
(begin
|
||||||
|
(define-syntax ffoo
|
||||||
|
(syntax-rules ()
|
||||||
|
((ffoo ff)
|
||||||
|
(begin
|
||||||
|
(define (ff x)
|
||||||
|
(gg x))
|
||||||
|
(define (gg x)
|
||||||
|
(* x x))))))
|
||||||
|
(ffoo ff)
|
||||||
|
(test 100 (ff 10)))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
|
|
||||||
(test-begin "5 Program structure")
|
(test-begin "5 Program structure")
|
||||||
|
|
Loading…
Add table
Reference in a new issue