diff options
-rw-r--r-- | parse.y | 2 | ||||
-rw-r--r-- | test/ripper/test_sexp.rb | 8 |
2 files changed, 9 insertions, 1 deletions
@@ -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) %*/ } ; diff --git a/test/ripper/test_sexp.rb b/test/ripper/test_sexp.rb index b7cabdb8b0..1bc99b9b97 100644 --- a/test/ripper/test_sexp.rb +++ b/test/ripper/test_sexp.rb @@ -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 |