summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-16 15:43:20 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-16 15:43:20 -0800
commit65ea825e92af183f5aff9aeb7c6a7880005a7558 (patch)
treee57586f32b0ae1746324f9b91fc6b165f3c67464
parent83778347170b3168bbfd5a87bad1eb12700f5cd0 (diff)
downloadtxr-65ea825e92af183f5aff9aeb7c6a7880005a7558.tar.gz
txr-65ea825e92af183f5aff9aeb7c6a7880005a7558.tar.bz2
txr-65ea825e92af183f5aff9aeb7c6a7880005a7558.zip
* eval.c (bind_macro_params): Bugfix: enforce mismatch on
superfluous material.
-rw-r--r--ChangeLog5
-rw-r--r--eval.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a362c6c9..ce00aecb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2014-02-16 Kaz Kylheku <kaz@kylheku.com>
+ * eval.c (bind_macro_params): Bugfix: enforce mismatch on
+ superfluous material.
+
+2014-02-16 Kaz Kylheku <kaz@kylheku.com>
+
In the spirit of the previous hack, here is another hack to
alleviate a long-standing pain: when an exception happens in
TXR's library somewhere, the program dies without leaving
diff --git a/eval.c b/eval.c
index 5e9e2f5f..22e81926 100644
--- a/eval.c
+++ b/eval.c
@@ -654,6 +654,11 @@ noarg:
env_vbind(new_env, params, form);
}
+ if (form)
+ eval_error(ctx_form,
+ lit("~s: extra form part ~s not matched by parameter list"),
+ car(ctx_form), form, nao);
+
return new_env;
nbind: