Skip to content

Commit b612856

Browse files
committed
Fix handling "rescue" inside paren
The parse_rescue method detects the end of class list for catch, but it doesn't support postfix rescue inside paren. This commit fixes it.
1 parent e94579a commit b612856

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/rdoc/parser/ruby.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1588,6 +1588,7 @@ def parse_require(context, comment)
15881588
def parse_rescue
15891589
skip_tkspace false
15901590

1591+
nest = 0
15911592
while tk = get_tk
15921593
case tk
15931594
when TkNL, TkSEMICOLON then
@@ -1596,6 +1597,11 @@ def parse_rescue
15961597
skip_tkspace false
15971598

15981599
get_tk if TkNL === peek_tk
1600+
when TkLPAREN, TkfLPAREN then
1601+
nest += 1
1602+
when TkRPAREN then
1603+
nest -= 1
1604+
break if nest < 0
15991605
end
16001606

16011607
skip_tkspace false

0 commit comments

Comments
 (0)