summaryrefslogtreecommitdiffstats
path: root/stdlib/match.tl
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-10-26 22:07:36 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-10-26 22:07:36 -0700
commit5593e1e2bfd9e8026345a61b8735e3bb96084e89 (patch)
treea6d7c42c1826b9dc7ac08e83fa77ebe642308507 /stdlib/match.tl
parentda1cb870c407410f3197179fa5d43474c758883d (diff)
downloadtxr-5593e1e2bfd9e8026345a61b8735e3bb96084e89.tar.gz
txr-5593e1e2bfd9e8026345a61b8735e3bb96084e89.tar.bz2
txr-5593e1e2bfd9e8026345a61b8735e3bb96084e89.zip
match: fix quasiliteral issue.
* stdlib/match.tl (compile-match): Handle the (sys:expr (sys:quasi ...)) case by recursing on the (sys:quasi ...) part, thus making them equivalent. This fixes the newly introduced broken test cases, and meets the newly documented requirements.
Diffstat (limited to 'stdlib/match.tl')
-rw-r--r--stdlib/match.tl1
1 files changed, 1 insertions, 0 deletions
diff --git a/stdlib/match.tl b/stdlib/match.tl
index 1442eb56..8d014f11 100644
--- a/stdlib/match.tl
+++ b/stdlib/match.tl
@@ -603,6 +603,7 @@
(hash (compile-hash-match exp obj-var var-list))
(usr:scan (compile-scan-match exp obj-var var-list))
(exprs (compile-exprs-match exp obj-var var-list))
+ (sys:quasi (compile-match exp obj-var var-list))
(t (iflet ((xfun [*match-macro* op]))
(let* ((var-env (make-env (mapcar (lop cons
'sys:special)