From c3713540d04811d1f42583612338353e0d86de40 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Mon, 3 Apr 2017 15:48:57 +0900 Subject: [PATCH] fix multiple levels of synclo forward references (issue #399) --- eval.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eval.c b/eval.c index fd3af251..955cd403 100644 --- a/eval.c +++ b/eval.c @@ -152,8 +152,7 @@ sexp sexp_env_cell_define (sexp ctx, sexp env, sexp key, return ls; } else if (sexp_cdr(ls) == SEXP_UNDEF && sexp_synclop(sexp_car(ls)) && - sexp_synclo_env(sexp_car(ls)) == env && - sexp_synclo_expr(sexp_car(ls)) == key) { + sexp_identifier_eq(ctx, env, key, sexp_synclo_env(sexp_car(ls)), sexp_synclo_expr(sexp_car(ls)))) { /* handle an undefined renamed reference that would have */ /* resolved to this binding, renamed to what we define here */ sexp_car(ls) = key;