From d2da3d04e6873da6383f18355d6ac46e6d263fcc Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 10 Jan 2015 01:12:17 +0000 Subject: array.c: keep consistency * array.c (rb_ary_select_bang): keep the array consistent by removing unselected values soon. [ruby-dev:48805] [Bug #10722] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_array.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/ruby/test_array.rb') diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 04e66cce11..31f33dde1e 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -2019,6 +2019,16 @@ class TestArray < Test::Unit::TestCase a = @cls[ 1, 2, 3, 4, 5 ] assert_equal(a, a.select! { |i| i > 3 }) assert_equal(@cls[4, 5], a) + + bug10722 = '[ruby-dev:48805] [Bug #10722]' + a = @cls[ 5, 6, 7, 8, 9, 10 ] + r = a.select! {|i| + break i if i > 8 + # assert_equal(a[0], i, "should be selected values only") if i == 7 + i >= 7 + } + assert_equal(9, r) + assert_equal(@cls[7, 8, 9, 10], a, bug10722) end def test_delete2 -- cgit v1.2.3