From 1e7a05992ca4cc652d61c76ed4c06f8584e1d1b1 Mon Sep 17 00:00:00 2001
From: Kaz Kylheku <kaz@kylheku.com>
Date: Wed, 27 Jan 2021 22:40:55 -0800
Subject: matcher: fix broken predicate test.

* share/txr/stdlib/match.tl (compile-predicate-match): Promote
condition from test-expr into guard-chain.
---
 share/txr/stdlib/match.tl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'share')

diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl
index e44e7e64..5d67ef6a 100644
--- a/share/txr/stdlib/match.tl
+++ b/share/txr/stdlib/match.tl
@@ -225,7 +225,8 @@
     (or (null sym) (bindable sym)
         (compile-error *match-form* "~s is not a symbol" sym))
     (let ((var-match (compile-var-match sym obj-var var-list)))
-      (set var-match.test-expr ^(and ,var-match.test-expr (,fun ,obj-var)))
+      (push (new match-guard guard-expr ^(and ,var-match.test-expr (,fun ,obj-var)))
+            var-match.guard-chain)
       var-match)))
 
 (defun compile-cons-structure (cons-pat obj-var var-list)
-- 
cgit v1.2.3