summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-02-03 10:22:15 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-02-03 10:22:15 -0800
commit7d68c07f9f0f776065519dd8afa937000b3e7ba8 (patch)
treedc84437122785b7d24a662dc4c2332d3388ad747 /eval.c
parente3ac780998d8b32d5c10d7aebcca88af7c82b80e (diff)
downloadtxr-7d68c07f9f0f776065519dd8afa937000b3e7ba8.tar.gz
txr-7d68c07f9f0f776065519dd8afa937000b3e7ba8.tar.bz2
txr-7d68c07f9f0f776065519dd8afa937000b3e7ba8.zip
Expander check for macro destination in setq forms.
* eval.c (do_expand): Throw an error if the destination is a symbol macro which requires expanding.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 15adbcaa..a2f014b9 100644
--- a/eval.c
+++ b/eval.c
@@ -4146,6 +4146,10 @@ static val do_expand(val form, val menv)
if (!bindable(car(args)))
not_bindable_warning(form, car(args));
+
+ if (car(args_ex) != car(args))
+ eval_error(form, lit("~s: misapplied to symbol macro ~a"), sym,
+ car(args), nao);
}
if (!lookup_fun(menv, sym) && !special_operator_p(sym)) {