Issue #2545 has been updated by _ wanabe.

Related to Bug #10722: Array#keep_if is borked if user calls 'break' added

----------------------------------------
Bug #2545: Array#delete_if is borked if user calls 'break'
https://bugs.ruby-lang.org/issues/2545#change-50881

* Author: Brian Candler
* Status: Closed
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version: 
* ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] 
* Backport: 
----------------------------------------
=begin
 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
=end




-- 
https://bugs.ruby-lang.org/