diff options
Diffstat (limited to 'test/ripper')
-rw-r--r-- | test/ripper/test_sexp.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/test/ripper/test_sexp.rb b/test/ripper/test_sexp.rb index 9faeaba782..b7cabdb8b0 100644 --- a/test/ripper/test_sexp.rb +++ b/test/ripper/test_sexp.rb @@ -175,7 +175,7 @@ eot [:aryptn, nil, [[:var_field, [:@ident, "a", [1, 11]]]], - [:var_field, nil], + nil, nil], [[:void_stmt]], nil]], @@ -229,7 +229,7 @@ eot [__LINE__, %q{ case 0; in *; end }] => [:case, [:@int, "0", [1, 5]], - [:in, [:aryptn, nil, nil, [:var_field, nil], nil], [[:void_stmt]], nil]], + [:in, [:aryptn, nil, nil, nil, nil], [[:void_stmt]], nil]], [__LINE__, %q{ case 0; in *,a; end }] => [:case, @@ -238,7 +238,7 @@ eot [:aryptn, nil, nil, - [:var_field, nil], + nil, [[:var_field, [:@ident, "a", [1, 13]]]]], [[:void_stmt]], nil]], @@ -407,6 +407,14 @@ eot [[:void_stmt]], nil]], + [__LINE__, %q{ case 0; in [a,]; end }] => + [:case, + [:@int, "0", [1, 5]], + [:in, + [:aryptn, nil, [[:var_field, [:@ident, "a", [1, 12]]]], nil, nil], + [[:void_stmt]], + nil]], + [__LINE__, %q{ case 0; in []; end }] => [:case, [:@int, "0", [1, 5]], @@ -418,9 +426,9 @@ eot [:in, [:fndptn, nil, - [:var_field, nil], + nil, [[:var_field, [:@ident, "a", [1, 9]]]], - [:var_field, nil]], + nil], nil, nil]], @@ -486,6 +494,14 @@ eot [:begin, [:binary, [:@int, "0", [1, 13]], :+, [:@int, "0", [1, 15]]]], [[:void_stmt]], nil]], + + [__LINE__, %q{ case 0; in [*a]; a; end } ] => + [:case, + [:@int, "0", [1, 5]], + [:in, + [:aryptn, nil, nil, [:var_field, [:@ident, "a", [1, 13]]], nil], + [[:var_ref, [:@ident, "a", [1, 17]]]], + nil]], } pattern_matching_data.each do |(i, src), expected| define_method(:"test_pattern_matching_#{i}") do |