summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-07-21 04:29:46 +0000
committerrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-07-21 04:29:46 +0000
commitc4dfd0ccfbc325d3231de655f9f0dfc4cdfc8593 (patch)
treeec0f6717c80f680997b623c5fa6d3566152fe119 /parse.y
parent0055f09bcc84ef28c401fae056ac5afe87d0357e (diff)
ripper: add kwrest_param parser event
* parse.y (f_kwrest): Dispatch kwrest_param event. This is especially useful for unnamed kwrest parameter for which we expose the internal ID currently. [ruby-core:75528] [Feature #12387] * test/ripper/dummyparser.rb (on_kwrest_param): Add handler for kwrest_param parser event. * test/ripper/test_parser_events.rb (test_params): Adapt to the change in DummyParser. (test_kwrest_param): Test that kwrest_param event handler is called. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files changed, 8 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index 58cec8961d..0a1910e880 100644
--- a/parse.y
+++ b/parse.y
@@ -4492,12 +4492,20 @@ kwrest_mark : tPOW
f_kwrest : kwrest_mark tIDENTIFIER
{
shadowing_lvar(get_id($2));
+ /*%%%*/
$$ = $2;
+ /*%
+ $$ = dispatch1(kwrest_param, $2);
+ %*/
}
| kwrest_mark
{
+ /*%%%*/
$$ = internal_id();
arg_var($$);
+ /*%
+ $$ = dispatch1(kwrest_param, Qnil);
+ %*/
}
;