ruby-changes:16874
From: nobu <ko1@a...>
Date: Thu, 5 Aug 2010 19:52:25 +0900 (JST)
Subject: [ruby-changes:16874] Ruby:r28870 (trunk): * compile.c (iseq_compile_each): drop unused ARGSCAT results.
nobu 2010-08-05 19:52:08 +0900 (Thu, 05 Aug 2010) New Revision: 28870 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28870 Log: * compile.c (iseq_compile_each): drop unused ARGSCAT results. fix [ruby-dev:41933], [Bug #3658] Modified files: trunk/ChangeLog trunk/compile.c trunk/test/ruby/test_primitive.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 28869) +++ ChangeLog (revision 28870) @@ -1,3 +1,8 @@ +Thu Aug 5 19:51:21 2010 Nobuyoshi Nakada <nobu@r...> + + * compile.c (iseq_compile_each): drop unused ARGSCAT results. + fix [ruby-dev:41933], [Bug #3658] + Thu Aug 5 18:36:11 2010 Nobuyoshi Nakada <nobu@r...> * complex.c (nucomp_marshal_load): should check the argument. Index: compile.c =================================================================== --- compile.c (revision 28869) +++ compile.c (revision 28870) @@ -4521,8 +4521,9 @@ break; } case NODE_ARGSCAT:{ - COMPILE(ret, "argscat head", node->nd_head); - COMPILE(ret, "argscat body", node->nd_body); + COMPILE_(ret, "argscat head", node->nd_head, poped); + COMPILE_(ret, "argscat body", node->nd_body, poped); + if (poped) break; ADD_INSN(ret, nd_line(node), concatarray); break; } Index: test/ruby/test_primitive.rb =================================================================== --- test/ruby/test_primitive.rb (revision 28869) +++ test/ruby/test_primitive.rb (revision 28870) @@ -273,6 +273,7 @@ assert_equal 'abcd', $& assert_equal 'xyz', $` assert_equal 'efgabcdefg', $' + # ' assert_equal 'c', $+ /(?!)/ =~ 'xyzabcdefgabcdefg' @@ -400,4 +401,9 @@ #assert_equal [0,1,2,3,4], [0, *a, 4] end + def test_concatarray_ruby_dev_41933 + bug3658 = '[ruby-dev:41933]' + [0, *x=1] + assert_equal(1, x, bug3658) + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/