summaryrefslogtreecommitdiff
path: root/test/ripper
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-25 01:14:26 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-25 01:14:26 +0900
commit3d8705dcfdd567278c833c252ea11c018c0d3890 (patch)
tree03cfb2e8bc1e37bb1dc51079355c8e7e5bf780df /test/ripper
parent419b0596a2ada720ae1b3f2c1bd3ab5e12819ac8 (diff)
downloadruby-3d8705dcfdd567278c833c252ea11c018c0d3890.tar.gz
Drop token info for endless method definition
Because it does not have closing `end`.
Diffstat (limited to 'test/ripper')
-rw-r--r--test/ripper/test_parser_events.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb
index 5b05624683..13064c2bc8 100644
--- a/test/ripper/test_parser_events.rb
+++ b/test/ripper/test_parser_events.rb
@@ -26,13 +26,21 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
end
def warning(str)
- parse(str, :warning) {|e, *args| return args}
- assert(false, "warning expected")
+ tree = parse(str, :warning) {|e, *args| return args}
+ if block_given?
+ yield tree
+ else
+ assert(false, "warning expected")
+ end
end
def warn(str)
- parse(str, :warn) {|e, *args| return args}
- assert(false, "warning expected")
+ tree = parse(str, :warn) {|e, *args| return args}
+ if block_given?
+ yield tree
+ else
+ assert(false, "warning expected")
+ end
end
def test_program
@@ -1552,6 +1560,10 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
fmt, tokend, tokbeg, line = assert_warning("") {break warn("if true\n end\n")}
assert_match(/mismatched indentations/, fmt)
assert_equal(["if", "end", 1], [tokbeg, tokend, line])
+ result = assert_warning("") {
+ warn("begin\n" " def f() = nil\n" "end\n") {break :ok}
+ }
+ assert_equal(:ok, result)
end
def test_in