diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-13 03:47:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-13 03:47:55 +0000 |
commit | 6b8b66b40197a891b6e12ee8bd3f105f47be40be (patch) | |
tree | 194f5522c796e90451adf792f3ba4b32f853da77 | |
parent | 225e3b011fca20bf679b10ab310a1435fc270c4e (diff) | |
download | ruby-6b8b66b40197a891b6e12ee8bd3f105f47be40be.tar.gz |
range.c: class name encoding
* range.c (range_bsearch): preserve encoding of class name in an
exception message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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 |