diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/match.tl | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl index 63fa75e1..e59cb156 100644 --- a/share/txr/stdlib/match.tl +++ b/share/txr/stdlib/match.tl @@ -247,17 +247,15 @@ collect-vars)))))) (,(if some-p 'when 'unless) ,matched-p-var (set ,loop-continue-p-var nil))))) - (guard0 (new match-guard - vars (append cm.vars (unless some-p collect-vars)) - guard-expr t)) - (guard1 (new match-guard - vars (list loop-success-p-var) - var-exprs (list loop) - guard-expr ^(,list-test ,obj-var)))) + (guard (new match-guard + vars (append cm.vars (unless some-p collect-vars)) + guard-expr ^(,list-test ,obj-var)))) (new compiled-match pattern exp obj-var obj-var - guard-chain (list guard0 guard1) + guard-chain (list guard) + vars (list loop-success-p-var) + var-exprs (list loop) test-expr (if some-p loop-success-p-var ^(when ,loop-success-p-var |