summaryrefslogtreecommitdiffstats
path: root/tests/011
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-01-29 20:29:18 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-01-29 20:29:18 -0800
commit58c1642901889829eb55ceea2ae868dea848eab9 (patch)
treeddec96a3b39d9b11e72e15ee48d885259873b8d5 /tests/011
parentab20526520a5458a40bdbf7b77af4cd5ef62c096 (diff)
downloadtxr-58c1642901889829eb55ceea2ae868dea848eab9.tar.gz
txr-58c1642901889829eb55ceea2ae868dea848eab9.tar.bz2
txr-58c1642901889829eb55ceea2ae868dea848eab9.zip
matcher: bugfix: @nil isn't trivial.
* share/txr/stdlib/match.tl (non-triv-pat-p): Extend sys:var match so (sys:var nil) is identified as trivial. * tests/011/patmatch.tl: Add broken test case fixed by this. This doesn't show up when @nil is used as the only match. It also doesn't show up if @nil is used in a vector or list in a mixture with other operators, because those other ones identify the overall list pattern as non-trivial. None of the occurrences of @nil in the existing test suite, like (@nil @nil @x) tickle the bug.
Diffstat (limited to 'tests/011')
-rw-r--r--tests/011/patmatch.tl1
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/011/patmatch.tl b/tests/011/patmatch.tl
index 6a9c6f18..7768e89b 100644
--- a/tests/011/patmatch.tl
+++ b/tests/011/patmatch.tl
@@ -9,6 +9,7 @@
(yes no))
(test (when-match @a 42 (list a)) (42))
+(test (when-match (@nil) '(1) 'yes) yes)
(test (when-match (@a @b @c) '(1 2 3) (list c b a)) (3 2 1))
(test (if-match (@a @b @c . @d) '(1 2 3 . 4) (list d c b a)) (4 3 2 1))