* 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
This commit is contained in:
nobu 2018-01-20 05:47:59 +00:00
Родитель 0b8594209d
Коммит 7efe4e0881
1 изменённых файлов: 10 добавлений и 2 удалений

12
parse.y
Просмотреть файл

@ -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
{