diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | symbol.c | 3 | ||||
-rw-r--r-- | test/ruby/test_symbol.rb | 2 |
3 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Mon Jan 25 15:55:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * symbol.c (sym_check_asciionly): more informative error message + with the encoding name and the inspected content. + [ruby-core:73398] [Feature #12016] + Mon Jan 25 09:38:26 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org> * test/ruby/test_string.rb: added testcase for next!, succ and succ! @@ -430,7 +430,8 @@ sym_check_asciionly(VALUE str) if (!rb_enc_asciicompat(rb_enc_get(str))) return FALSE; switch (rb_enc_str_coderange(str)) { case ENC_CODERANGE_BROKEN: - rb_raise(rb_eEncodingError, "invalid encoding symbol"); + rb_raise(rb_eEncodingError, "invalid symbol in encoding %s :%+"PRIsVALUE, + rb_enc_name(rb_enc_get(str)), str); case ENC_CODERANGE_7BIT: return TRUE; } diff --git a/test/ruby/test_symbol.rb b/test/ruby/test_symbol.rb index 8960bec0d1..5d42a5f92d 100644 --- a/test/ruby/test_symbol.rb +++ b/test/ruby/test_symbol.rb @@ -262,7 +262,7 @@ class TestSymbol < Test::Unit::TestCase assert_equal(Encoding::US_ASCII, "$-A".force_encoding("iso-8859-15").intern.encoding) assert_equal(Encoding::US_ASCII, "foobar~!".force_encoding("iso-8859-15").intern.encoding) assert_equal(Encoding::UTF_8, "\u{2192}".intern.encoding) - assert_raise(EncodingError) {"\xb0a".force_encoding("utf-8").intern} + assert_raise_with_message(EncodingError, /\\xb0/i) {"\xb0a".force_encoding("utf-8").intern} end def test_singleton_method |