File tree 2 files changed +15
-0
lines changed
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)
1327
1327
token . is_a? ( Kw ) && %w[ end ensure ] . include? ( token . value )
1328
1328
end
1329
1329
1330
+ if index . nil?
1331
+ message = "Cannot find expected else ending"
1332
+ raise ParseError . new ( message , *find_token_error ( keyword . location ) )
1333
+ end
1334
+
1330
1335
node = tokens [ index ]
1331
1336
ending = node . value == "end" ? tokens . delete_at ( index ) : node
1332
1337
Original file line number Diff line number Diff line change @@ -55,5 +55,15 @@ def test_errors_on_missing_token_without_location
55
55
def test_handles_strings_with_non_terminated_embedded_expressions
56
56
assert_raises ( Parser ::ParseError ) { SyntaxTree . parse ( '"#{"' ) }
57
57
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
58
68
end
59
69
end
You can’t perform that action at this time.
0 commit comments