[前][次][番号順一覧][スレッド一覧]

ruby-changes:20435

From: mame <ko1@a...>
Date: Sun, 10 Jul 2011 11:42:17 +0900 (JST)
Subject: [ruby-changes:20435] mame:r32483 (trunk): * parse.y (reduce_nodes_gen): NODE_RETURN in rescue body must not be

mame	2011-07-10 11:42:07 +0900 (Sun, 10 Jul 2011)

  New Revision: 32483

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32483

  Log:
    * 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].

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 32482)
+++ ChangeLog	(revision 32483)
@@ -1,3 +1,9 @@
+Sun Jul 10 11:35:29 2011  Yusuke Endoh  <mame@t...>
+
+	* 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].
+
 Sun Jul 10 09:46:14 2011  Masaya Tarui  <tarui@r...>
 
 	* range.c (range_max): fix behavior with excluded end value.
Index: parse.y
===================================================================
--- parse.y	(revision 32482)
+++ parse.y	(revision 32483)
@@ -8713,6 +8713,10 @@
 	    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:

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]