summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--match.c4
-rw-r--r--tests/000/nilvar.expected1
-rw-r--r--tests/000/nilvar.txr3
3 files changed, 7 insertions, 1 deletions
diff --git a/match.c b/match.c
index 0bc40838..0f1583f1 100644
--- a/match.c
+++ b/match.c
@@ -381,8 +381,10 @@ static val dest_bind(val spec, val bindings, val pattern,
return t;
}
return cons(cons(pattern, value), bindings);
+ } else if (pattern) {
+ return t;
} else {
- return funcall2(testfun, pattern, value) ? bindings : t;
+ return bindings;
}
} else if (consp(pattern)) {
val piter = pattern, viter = value;
diff --git a/tests/000/nilvar.expected b/tests/000/nilvar.expected
new file mode 100644
index 00000000..70985094
--- /dev/null
+++ b/tests/000/nilvar.expected
@@ -0,0 +1 @@
+a:c
diff --git a/tests/000/nilvar.txr b/tests/000/nilvar.txr
new file mode 100644
index 00000000..a6d1391c
--- /dev/null
+++ b/tests/000/nilvar.txr
@@ -0,0 +1,3 @@
+@(next :string "a !b c")
+@(coll)@(cases)@{nil /!\S+/}@(or)@{var /\S+/}@(end)@(end)
+@(do (put-line (join-with ":" var)))