Disallow numbered parameter as the default value of optional argument

[Fix GH-2139] [Bug #15783]
This commit is contained in:
Seiei Miyagi 2019-04-23 00:21:50 +09:00 коммит произвёл Nobuyoshi Nakada
Родитель ae07b66aaa
Коммит 6ca9e7cc07
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4BC7D6DF58D8DF60
2 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -4735,6 +4735,7 @@ f_norm_arg : f_bad_arg
| tIDENTIFIER | tIDENTIFIER
{ {
formal_argument(p, get_id($1)); formal_argument(p, get_id($1));
p->max_numparam = -1;
$$ = $1; $$ = $1;
} }
; ;

Просмотреть файл

@ -1302,6 +1302,7 @@ eom
assert_syntax_error('->(x){@1}', /ordinary parameter is defined/) assert_syntax_error('->(x){@1}', /ordinary parameter is defined/)
assert_syntax_error('->x{@1}', /ordinary parameter is defined/) assert_syntax_error('->x{@1}', /ordinary parameter is defined/)
assert_syntax_error('->x:@2{}', /ordinary parameter is defined/) assert_syntax_error('->x:@2{}', /ordinary parameter is defined/)
assert_syntax_error('->x=@1{}', /ordinary parameter is defined/)
assert_syntax_error('proc {@1 = nil}', /Can't assign to numbered parameter @1/) assert_syntax_error('proc {@1 = nil}', /Can't assign to numbered parameter @1/)
assert_syntax_error('proc {@01}', /leading zero/) assert_syntax_error('proc {@01}', /leading zero/)
assert_syntax_error('proc {@1_}', /unexpected/) assert_syntax_error('proc {@1_}', /unexpected/)