summaryrefslogtreecommitdiffstats
path: root/debug.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-01-22 07:22:55 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-01-22 07:22:55 -0800
commit3fb32c9a73d407844fb9f7c843f70f85bee5b60e (patch)
tree211129e7609cf1c3140d915c16c2311529ddb1ce /debug.h
parent1e8dc4f05dc5149f682ac16f3d368ec0fc82cf58 (diff)
downloadtxr-3fb32c9a73d407844fb9f7c843f70f85bee5b60e.tar.gz
txr-3fb32c9a73d407844fb9f7c843f70f85bee5b60e.tar.bz2
txr-3fb32c9a73d407844fb9f7c843f70f85bee5b60e.zip
matcher: add optimized special case to hash pattern.
This change causes a key-value pattern like (@a @b) to be treated specially when @a already has a binding from a previous pattern. In this case, it behaves like the trivial key case: the value of @a is looked up to try to find a single value. If @a is not bound, then the exhaustive search takes place, using equal equality. * share/txr/stdlib/match.tl (compile-hash-match): Implement special case. (var-pat-p): New function. * tests/011/patmatch.tl: Existing test case now changes value. New test case added. * txr.1: Documented.
Diffstat (limited to 'debug.h')
0 files changed, 0 insertions, 0 deletions