summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/match.tl3
-rw-r--r--tests/011/patmatch.tl4
2 files changed, 5 insertions, 2 deletions
diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl
index 8518d68f..2c47ca2a 100644
--- a/share/txr/stdlib/match.tl
+++ b/share/txr/stdlib/match.tl
@@ -262,8 +262,7 @@
pat-match.guard-chain))))
(progn
var-match.(add-guard-pre (new match-guard
- guard-expr ^(and ,var-match.test-expr
- [,fun ,obj-var])))
+ guard-expr ^[,fun ,obj-var]))
var-match)))))
(defun compile-predicate-match (pred-expr obj-var var-list)
diff --git a/tests/011/patmatch.tl b/tests/011/patmatch.tl
index 7768e89b..347af4eb 100644
--- a/tests/011/patmatch.tl
+++ b/tests/011/patmatch.tl
@@ -161,6 +161,10 @@
(test (when-match (rcons @a @b) '(rcons 1 2) (list a b)) (1 2))
(test (let ((h #H(() (a 1) (b 2))))
+ (when-match @[h x] 'a x))
+ a)
+
+(test (let ((h #H(() (a 1) (b 2))))
(when-match @[h x y] 'a (list x y)))
(a 1))