summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y11
1 files changed, 10 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index c93b8eda59..0a2aa6f1bc 100644
--- a/parse.y
+++ b/parse.y
@@ -4948,7 +4948,16 @@ opt_rescue : k_rescue exc_list exc_var then
$$ = NEW_RESBODY($2,
$3 ? block_append(p, node_assign(p, $3, NEW_ERRINFO(&@3), NO_LEX_CTXT, &@3), $5) : $5,
$6, &@$);
- fixpos($$, $2?$2:$5);
+
+ if ($2) {
+ fixpos($$, $2);
+ }
+ else if ($3) {
+ fixpos($$, $3);
+ }
+ else {
+ fixpos($$, $5);
+ }
/*% %*/
/*% ripper: rescue!(escape_Qundef($2), escape_Qundef($3), escape_Qundef($5), escape_Qundef($6)) %*/
}