summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-03-04 19:51:09 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-03-04 19:51:09 -0800
commit2c2ac2df58dced80405c6f3a4d2e4ca0df989a02 (patch)
tree79964099f114db193be24d75399054bb90bb275d /match.c
parentd70065204810ab34e174b727c459f00f5b015299 (diff)
downloadtxr-2c2ac2df58dced80405c6f3a4d2e4ca0df989a02.tar.gz
txr-2c2ac2df58dced80405c6f3a4d2e4ca0df989a02.tar.bz2
txr-2c2ac2df58dced80405c6f3a4d2e4ca0df989a02.zip
bugfix: :counter var not registered tentative.
This test case suffers a spurious unbound variable warning: @(collect :counter x) @(bind y @x) @(end) * match.c (match_expand_keyword_args): Register the :counter variable as a tentative definition with match_reg_var. We don't do this for :vars because they are not newly introduced: the :vars construct doesn't bind. The :counter feature is the only keyword feature in collect which binds a new variable.
Diffstat (limited to 'match.c')
-rw-r--r--match.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/match.c b/match.c
index 37c11922..ef758580 100644
--- a/match.c
+++ b/match.c
@@ -3092,6 +3092,10 @@ val match_expand_keyword_args(val args)
ptail = list_collect(ptail, sym);
ptail = list_collect(ptail, car(vars_like_ex));
args = cdr(next);
+ if (consp(form))
+ match_reg_var(car(form));
+ else
+ match_reg_var(form);
} else if (more &&
(sym == tlist_k)) {
ptail = list_collect(ptail, sym);