summaryrefslogtreecommitdiffstats
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
commita1dd3819ae64cb5b61b63759ec21d4b60aa230af (patch)
tree035a336155850885b0e6f9af1a922ad42b1d9a72
parent12ff241a4d50e22e6428d22426a147ed7b3d2847 (diff)
downloadtxr-a1dd3819ae64cb5b61b63759ec21d4b60aa230af.tar.gz
txr-a1dd3819ae64cb5b61b63759ec21d4b60aa230af.tar.bz2
txr-a1dd3819ae64cb5b61b63759ec21d4b60aa230af.zip
ecase: diagnose bad syntax.
* eval.c (me_ecase): Diagnose missing test form, like me_case.
-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 {