From 20c0fb69d65f20d42caf980de042396370dd0ba4 Mon Sep 17 00:00:00 2001 From: marcandre Date: Wed, 30 Jan 2013 06:00:24 +0000 Subject: * array.c (rb_ary_bsearch): Raise TypeError on bad return from block * range.c (range_bsearch): ditto * test/ruby/test_array.rb (class): Test for above * test/ruby/test_range.rb (class): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- range.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'range.c') diff --git a/range.c b/range.c index 394495146b..388418bff7 100644 --- a/range.c +++ b/range.c @@ -595,7 +595,9 @@ range_bsearch(VALUE range) smaller = cmp < 0; \ } \ else { \ - smaller = RTEST(v); \ + rb_raise(rb_eTypeError, "wrong argument type %s" \ + "(must respond be numeric, true, false or nil)", \ + rb_obj_classname(v)); \ } \ } while (0) -- cgit v1.2.3