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/