diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-01-27 22:40:55 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-01-27 22:40:55 -0800 |
commit | 1e7a05992ca4cc652d61c76ed4c06f8584e1d1b1 (patch) | |
tree | 4008f4d632f88e354753873bf756bc0d211cae0d | |
parent | 2f033ba535929fd636c55a64a6ba8d048b256563 (diff) | |
download | txr-1e7a05992ca4cc652d61c76ed4c06f8584e1d1b1.tar.gz txr-1e7a05992ca4cc652d61c76ed4c06f8584e1d1b1.tar.bz2 txr-1e7a05992ca4cc652d61c76ed4c06f8584e1d1b1.zip |
matcher: fix broken predicate test.
* share/txr/stdlib/match.tl (compile-predicate-match): Promote
condition from test-expr into guard-chain.
-rw-r--r-- | share/txr/stdlib/match.tl | 3 |
1 files changed, 2 insertions, 1 deletions
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) |