Issue #7726 has been reported by marcandre (Marc-Andre Lafortune). ---------------------------------------- Bug #7726: bsearch should handle block result in a consistent way https://bugs.ruby-lang.org/issues/7726 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: 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/