don't strip syntax for unknown refs

This commit is contained in:
Alex Shinn 2016-12-30 10:53:22 +09:00
parent 1d9038d3ca
commit 71f4db7d17
2 changed files with 12 additions and 1 deletions

1
eval.c
View file

@ -747,7 +747,6 @@ static sexp analyze_var_ref (sexp ctx, sexp x, sexp *varenv) {
sexp_gc_preserve1(ctx, cell);
cell = sexp_env_cell_loc(ctx, env, x, 0, varenv);
if (! cell) {
while (sexp_synclop(x)) x = sexp_synclo_expr(x);
cell = sexp_env_cell_create(ctx, env, x, SEXP_UNDEF, varenv);
}
if (sexp_macrop(sexp_cdr(cell)) || sexp_corep(sexp_cdr(cell))) {

View file

@ -509,6 +509,18 @@
(foo bar x)
(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-begin "5 Program structure")