Skip to content

Commit

Permalink
Add tests for error cases on #1791, #1807, and #1810
Browse files Browse the repository at this point in the history
  • Loading branch information
makenowjust committed Nov 13, 2023
1 parent 2daf51b commit 231e965
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions test/prism/errors_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1422,6 +1422,39 @@ def test_symbol_in_hash
]
end

def test_while_endless_method
source = "while def f = g do end"
assert_errors expression(source), source, [
['Expected a predicate expression for the `while` statement', 22..22],
['Cannot parse the expression', 22..22],
['Expected an `end` to close the `while` statement', 22..22]
]
end

def test_match_plus
source = <<~RUBY
a in b + c
a => b + c
RUBY
message1 = 'Expected a newline or semicolon after the statement'
message2 = 'Cannot parse the expression'
assert_errors expression(source), source, [
[message1, 6..6],
[message2, 6..6],
[message1, 17..17],
[message2, 17..17],
]
end

def test_rational_number_with_exponential_portion
source = '1e1r; 1e1ri'
message = 'Expected a newline or semicolon after the statement'
assert_errors expression(source), source, [
[message, 3..3],
[message, 9..9]
]
end

private

def assert_errors(expected, source, errors, compare_ripper: RUBY_ENGINE == "ruby")
Expand Down

0 comments on commit 231e965

Please sign in to comment.