diff options
-rw-r--r-- | range.c | 6 | ||||
-rw-r--r-- | test/ruby/test_range.rb | 4 |
2 files changed, 7 insertions, 3 deletions
@@ -608,9 +608,9 @@ range_bsearch(VALUE range) smaller = cmp < 0; \ } \ else { \ - rb_raise(rb_eTypeError, "wrong argument type %s" \ - " (must be numeric, true, false or nil)", \ - rb_obj_classname(v)); \ + rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE \ + " (must be numeric, true, false or nil)", \ + rb_obj_class(v)); \ } \ } while (0) diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index f81047df06..dc07a59fcd 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -378,6 +378,10 @@ class TestRange < Test::Unit::TestCase assert_raise(TypeError) do (1..42).bsearch{ "not ok" } end + c = eval("class C\u{309a 26a1 26c4 1f300};self;end") + assert_raise_with_message(TypeError, /C\u{309a 26a1 26c4 1f300}/) do + (1..42).bsearch {c.new} + end assert_equal (1..42).bsearch{}, (1..42).bsearch{false} end |