File tree Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -1327,6 +1327,11 @@ def on_else(statements)
13271327 token . is_a? ( Kw ) && %w[ end ensure ] . include? ( token . value )
13281328 end
13291329
1330+ if index . nil?
1331+ message = "Cannot find expected else ending"
1332+ raise ParseError . new ( message , *find_token_error ( keyword . location ) )
1333+ end
1334+
13301335 node = tokens [ index ]
13311336 ending = node . value == "end" ? tokens . delete_at ( index ) : node
13321337
Original file line number Diff line number Diff line change @@ -55,5 +55,15 @@ def test_errors_on_missing_token_without_location
5555 def test_handles_strings_with_non_terminated_embedded_expressions
5656 assert_raises ( Parser ::ParseError ) { SyntaxTree . parse ( '"#{"' ) }
5757 end
58+
59+ def test_errors_on_else_missing_two_ends
60+ assert_raises ( Parser ::ParseError ) { SyntaxTree . parse ( <<~RUBY ) }
61+ def foo
62+ if something
63+ else
64+ call do
65+ end
66+ RUBY
67+ end
5868 end
5969end
You can’t perform that action at this time.
0 commit comments