From: "marcandre (Marc-Andre Lafortune)" <ruby-core@...> Date: 2013-01-30T15:02:17+09:00 Subject: [ruby-core:51751] [ruby-trunk - Bug #7726][Closed] bsearch should handle block result in a consistent way Issue #7726 has been updated by marcandre (Marc-Andre Lafortune). Status changed from Open to Closed Assignee set to marcandre (Marc-Andre Lafortune) Fixed with r38986. ---------------------------------------- Bug #7726: bsearch should handle block result in a consistent way https://bugs.ruby-lang.org/issues/7726#change-35717 Author: marcandre (Marc-Andre Lafortune) Status: Closed Priority: Normal Assignee: marcandre (Marc-Andre Lafortune) Category: core Target version: 2.0.0 ruby -v: r38825 The documentation states that the block of bsearch must return either true/false or a number. If the block returns another object (other than nil), I feel that either 1) It should be considered as 'truthy' 2) It should raise a TypeError Currently it does not raise an error and returns a result different than if `true` was passed: (1..3).bsearch{ 'x' } == (1..3).bsearch{ true } # => false -- http://bugs.ruby-lang.org/