summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/match.tl6
1 files changed, 2 insertions, 4 deletions
diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl
index ab2a3398..b2d7b2c1 100644
--- a/share/txr/stdlib/match.tl
+++ b/share/txr/stdlib/match.tl
@@ -134,9 +134,6 @@
slot-patterns slot-gensyms])
(type-match (if loose-p
(compile-match required-type type-gensym var-list)))
- (all-matches (if loose-p
- (cons type-match slot-matches)
- slot-matches))
(slot-val-exprs [mapcar (ret ^(slot ,obj-var ',@1)) required-slots])
(guard0 (if loose-p
(list (new match-guard
@@ -168,8 +165,9 @@
pattern struct-pat
obj-var obj-var
guard-chain (append guard0
+ type-match.?guard-chain
guard1
- (mappend .guard-chain all-matches))))))
+ (mappend .guard-chain slot-matches))))))
(defun compile-var-match (sym obj-var var-list)
(or (null sym) (bindable sym)