[Bug #19175] p_kw without a sub pattern should be `assignable'

This commit is contained in:
Kazuki Tsujimoto 2023-03-26 18:09:43 +09:00
Родитель 6c0925ba70
Коммит d51529244f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: BCEA306C49B81CD7
2 изменённых файлов: 9 добавлений и 1 удалений

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

@ -4732,7 +4732,7 @@ p_kw : p_kw_label p_expr
/*%%%*/
$$ = list_append(p, NEW_LIST(NEW_LIT(ID2SYM($1), &@$), &@$), assignable(p, $1, 0, &@$));
/*% %*/
/*% ripper: rb_ary_new_from_args(2, get_value($1), Qnil) %*/
/*% ripper: rb_ary_new_from_args(2, get_value(assignable(p, $1)), Qnil) %*/
}
;

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

@ -502,6 +502,14 @@ eot
[:aryptn, nil, nil, [:var_field, [:@ident, "a", [1, 13]]], nil],
[[:var_ref, [:@ident, "a", [1, 17]]]],
nil]],
[__LINE__, %q{ case 0; in {a:}; a; end } ] =>
[:case,
[:@int, "0", [1, 5]],
[:in,
[:hshptn, nil, [[[:@label, "a:", [1, 12]], nil]], nil],
[[:var_ref, [:@ident, "a", [1, 17]]]],
nil]],
}
pattern_matching_data.each do |(i, src), expected|
define_method(:"test_pattern_matching_#{i}") do