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/