summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-08-21 17:21:14 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-08-21 17:21:14 -0700
commitc1b264c157821352175eee7f5663f2c1782dfc1f (patch)
tree035a336155850885b0e6f9af1a922ad42b1d9a72 /eval.c
parente263e2ed5cf155936d16a3cd2d91096c02a5e0f1 (diff)
downloadtxr-c1b264c157821352175eee7f5663f2c1782dfc1f.tar.gz
txr-c1b264c157821352175eee7f5663f2c1782dfc1f.tar.bz2
txr-c1b264c157821352175eee7f5663f2c1782dfc1f.zip
ecase: diagnose bad syntax.
* eval.c (me_ecase): Diagnose missing test form, like me_case.
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 f36ca763..497644b0 100644
--- a/eval.c
+++ b/eval.c
@@ -4291,6 +4291,7 @@ static val me_case(val form, val menv)
static val me_ecase(val form, val menv)
{
+ val form_orig = form;
val casesym = pop(&form);
val orig_args = form;
val testform = pop(&form);
@@ -4298,6 +4299,9 @@ static val me_ecase(val form, val menv)
val clauses = form;
val lastclause = car(lastcons(clauses));
+ if (!orig_args)
+ expand_error(form_orig, lit("~s: missing test form"), casesym, nao);
+
if (consp(lastclause) && car(lastclause) == t) {
return cons(tgtsym, orig_args);
} else {