From 654267a6748d56757954f2c97e4178fdfc7c0626 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 30 Sep 2015 21:38:52 -0700 Subject: Fix incorrect "during expansion of ..." error reporting. * eval.c (eval_intrinsic): Treat last_form_expanded just like last_form_evaled: save it, set to nil, and restore it. If it is not set to nil, then an evaluation error will be falsely reported as being during the expansion of that form. --- eval.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eval.c b/eval.c index bd0b40ea..210c7a97 100644 --- a/eval.c +++ b/eval.c @@ -953,8 +953,11 @@ val interp_fun(val env, val fun, struct args *args) val eval_intrinsic(val form, val env) { val lfe_save = last_form_evaled; - val form_ex = (last_form_evaled = nil, expand(form, nil)); + val lfx_save = last_form_expanded; + val form_ex = (last_form_expanded = last_form_evaled = nil, + expand(form, nil)); val ret = eval(form_ex, default_bool_arg(env), form); + last_form_expanded = lfx_save; last_form_evaled = lfe_save; return ret; } -- cgit v1.2.3