Bug #2545: Array#delete_if is borked if user calls 'break'
http://redmine.ruby-lang.org/issues/show/2545

Author: Brian Candler
Status: Open, Priority: Normal
Category: core, Target version: Ruby 1.8.7
ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] 

Array is corrupted if you break out of a delete_if { ... } loop. I would expect that the elements already marked as deleted would be deleted, and the remainder of the array would be unchanged.

>> a = [5,6,7,8,9,10]
=> [5, 6, 7, 8, 9, 10]
>> a.delete_if { |x| break if x > 8; x < 7 }
=> nil
>> a
=> [7, 8, 7, 8, 9, 10]

>> RUBY_VERSION
=> "1.8.7"
>> RUBY_PATCHLEVEL
=> 174


----------------------------------------
http://redmine.ruby-lang.org