summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/match.tl2
-rw-r--r--tests/011/patmatch.tl6
2 files changed, 7 insertions, 1 deletions
diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl
index 0aea24b2..a1222c5a 100644
--- a/share/txr/stdlib/match.tl
+++ b/share/txr/stdlib/match.tl
@@ -288,7 +288,7 @@
(let ((sym (cadr vm)))
(set args (append (ldiff args vm) sym))
sym))))
- (res-var (if rvar rvar (gensym "res-")))
+ (res-var (gensym "res-"))
(arg-var (if avar avar (gensym "obj-"))))
(unless avar
(set args (append args (list arg-var))))
diff --git a/tests/011/patmatch.tl b/tests/011/patmatch.tl
index a616b9d2..f49b115d 100644
--- a/tests/011/patmatch.tl
+++ b/tests/011/patmatch.tl
@@ -94,6 +94,12 @@
(t (1 2 3)))
(test (when-match @(@x (< . @sym)) '(3 2 1) (list x sym))
nil)
+(test (let ((x t))
+ (when-match @(@x (< . @sym)) '(1 2 3) (list x sym)))
+ (t (1 2 3)))
+(test (let ((x nil))
+ (when-match @(@x (< . @sym)) '(1 2 3) (list x sym)))
+ nil)
(test (if-match (@(or @a) @a) '(1 2) a :no) :no)
(test (if-match (@(and @a) @a) '(1 2) a :no) :no)