diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-20 05:47:59 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-20 05:47:59 +0000 |
commit | 7efe4e088165cfa182fed92e24c95508714750ab (patch) | |
tree | a400bf99f51024e3a68b4b582574916bb9054043 /parse.y | |
parent | 0b8594209dfb536ee56269276c12d38ee4b85fcf (diff) |
parse.y: moved excessed_comma
* parse.y (block_param): embed excessed_comma event result in
place of rest argument, instead of dispatching with the whole
parameters.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -2888,8 +2888,16 @@ block_param : f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail } | f_arg ',' { - $$ = new_args(p, $1, Qnone, 1, Qnone, new_args_tail(p, Qnone, Qnone, Qnone, &@1), &@$); - /*% ripper: excessed_comma!("$$") %*/ +#ifndef RIPPER + /* magic number for rest_id in iseq_set_arguments() */ + const ID excessed_comma = 1; +#else + const VALUE excessed_comma = + /*% ripper: excessed_comma! %*/ + ; +#endif + $$ = new_args_tail(p, Qnone, Qnone, Qnone, &@1); + $$ = new_args(p, $1, Qnone, excessed_comma, Qnone, $$, &@$); } | f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail { |