From 16094ab126996e3963561b520ff22b405b56ca61 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 21 Jan 2021 22:46:51 -0800 Subject: matcher: default guard-expr to t in match-guard. * share/txr/stdlib/match.tl (struct match-guard): guard-expr slot defaults to t, so the guard defauls open. Guards are sometimes used just for binding temporaries and not imposing any condition. (compile-parallel-match, compile-hash-match): Omit initial value of t for guard-expr. --- share/txr/stdlib/match.tl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'share') diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl index e5e37be2..b95fc627 100644 --- a/share/txr/stdlib/match.tl +++ b/share/txr/stdlib/match.tl @@ -32,7 +32,7 @@ (mapcar (ret ^(set ,@1 ,@2)) me.vars me.var-exprs))) (defstruct match-guard (match-vars) - guard-expr) + (guard-expr t)) (defstruct compiled-match (match-vars) pattern @@ -286,7 +286,6 @@ (diff all-vars pm.vars))) t)))))) (let ((guard (new match-guard - guard-expr t vars all-vars))) (new compiled-match pattern par-pat @@ -329,7 +328,6 @@ var-list))) (push (new match-guard - guard-expr t vars (list km.obj-var) var-exprs ^((hash-keys-of ,obj-var ',val))) km.guard-chain) @@ -338,7 +336,6 @@ (let ((vm (compile-match val (gensym "val") var-list))) (push (new match-guard - guard-expr t vars (list vm.obj-var) var-exprs ^((gethash ,obj-var ',key))) vm.guard-chain) -- cgit v1.2.3