diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-10 02:42:07 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-10 02:42:07 +0000 |
commit | b0f115da1a8952e2328e3ef872bb2903c45ed96f (patch) | |
tree | 6f0232c7d59881cff82d9870214def9f672ed741 /parse.y | |
parent | d22e08f9375dbc0d0a962751d1c57f17b22f01b6 (diff) |
* parse.y (reduce_nodes_gen): NODE_RETURN in rescue body must not be
reduced when there is an else clause. This caused bizarre behavior
in [Bug #4473] [ruby-core:35629] [ruby-core:37884].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -8713,6 +8713,10 @@ reduce_nodes_gen(struct parser_params *parser, NODE **body) if (!subnodes(nd_head, nd_resq)) goto end; break; case NODE_RESCUE: + if (node->nd_else) { + body = &node->nd_resq; + break; + } if (!subnodes(nd_head, nd_resq)) goto end; break; default: |