From 2c2ac2df58dced80405c6f3a4d2e4ca0df989a02 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 4 Mar 2017 19:51:09 -0800 Subject: 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. --- match.c | 4 ++++ 1 file changed, 4 insertions(+) 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); -- cgit v1.2.3