[ruby-trunk - Bug #10722] [Open] Array#keep_if is borked if user calls 'break'

Issue #10722 has been reported by _ wanabe.


Bug #10722: Array#keep_if is borked if user calls ‘break’

  • Author: _ wanabe
  • Status: Open
  • Priority: Normal
  • Assignee:
  • Category:
  • Target version:
  • ruby -v: ruby 2.3.0dev (2015-01-09 trunk 49192) [x86_64-darwin14]
  • Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN

ref. [Bug #2545]

$ ruby -e 'a = [5,6,7,8,9,10]; a.keep_if { |x| break if x > 8; x >= 7 }; 
p a'
[7, 8, 7, 8, 9, 10]
$ ruby -e 'a = [5,6,7,8,9,10]; a.delete_if { |x| break if x > 8; x < 7 
}; p a'
[7, 8, 9, 10]

I was expecting the above scripts to be same results.