summaryrefslogtreecommitdiff
path: root/test/ripper
diff options
context:
space:
mode:
authorKazuki Tsujimoto <kazuki@callcc.net>2020-06-14 09:24:36 +0900
committerKazuki Tsujimoto <kazuki@callcc.net>2020-06-14 09:24:36 +0900
commitddded1157a90d21cb54b9f07de35ab9b4cc472e1 (patch)
tree315005f4eead6840846e6ce4bbd4dfa44c3bfce7 /test/ripper
parentf7906a7e31e6b1cfa135ecea69deb8827e8c8803 (diff)
Introduce find pattern [Feature #16828]
Diffstat (limited to 'test/ripper')
-rw-r--r--test/ripper/test_parser_events.rb6
-rw-r--r--test/ripper/test_sexp.rb37
2 files changed, 43 insertions, 0 deletions
diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb
index 544896b15f..d61dba340d 100644
--- a/test/ripper/test_parser_events.rb
+++ b/test/ripper/test_parser_events.rb
@@ -1548,6 +1548,12 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
assert_equal true, thru_aryptn
end
+ def test_fndptn
+ thru_fndptn = false
+ parse('case 0; in [*,0,*]; end', :on_fndptn) {thru_fndptn = true}
+ assert_equal true, thru_fndptn
+ end
+
def test_hshptn
thru_hshptn = false
parse('case 0; in {a:}; end', :on_hshptn) {thru_hshptn = true}
diff --git a/test/ripper/test_sexp.rb b/test/ripper/test_sexp.rb
index 89b45941a3..47339ba496 100644
--- a/test/ripper/test_sexp.rb
+++ b/test/ripper/test_sexp.rb
@@ -412,6 +412,43 @@ eot
[:@int, "0", [1, 5]],
[:in, [:aryptn, nil, nil, nil, nil], [[:void_stmt]], nil]],
+ [__LINE__, %q{ 0 in [*, a, *] }] =>
+ [:case,
+ [:@int, "0", [1, 0]],
+ [:in,
+ [:fndptn,
+ nil,
+ [:var_field, nil],
+ [[:var_field, [:@ident, "a", [1, 9]]]],
+ [:var_field, nil]],
+ nil,
+ nil]],
+
+ [__LINE__, %q{ 0 in [*a, b, *c] }] =>
+ [:case,
+ [:@int, "0", [1, 0]],
+ [:in,
+ [:fndptn,
+ nil,
+ [:var_field, [:@ident, "a", [1, 7]]],
+ [[:var_field, [:@ident, "b", [1, 10]]]],
+ [:var_field, [:@ident, "c", [1, 14]]]],
+ nil,
+ nil]],
+
+ [__LINE__, %q{ 0 in A(*a, b, c, *d) }] =>
+ [:case,
+ [:@int, "0", [1, 0]],
+ [:in,
+ [:fndptn,
+ [:var_ref, [:@const, "A", [1, 5]]],
+ [:var_field, [:@ident, "a", [1, 8]]],
+ [[:var_field, [:@ident, "b", [1, 11]]],
+ [:var_field, [:@ident, "c", [1, 14]]]],
+ [:var_field, [:@ident, "d", [1, 18]]]],
+ nil,
+ nil]],
+
[__LINE__, %q{ case 0; in {a: 0}; end }] =>
[:case,
[:@int, "0", [1, 5]],