From: Brian Candler Date: 2010-01-02T05:55:00+09:00 Subject: [ruby-core:27366] [Bug #2545] Array#delete_if is borked if user calls 'break' 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