summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--symbol.c3
-rw-r--r--test/ruby/test_symbol.rb2
3 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1e76787c8a..77553fd006 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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!
diff --git a/symbol.c b/symbol.c
index 8e3e0c3c55..b37be2f65b 100644
--- a/symbol.c
+++ b/symbol.c
@@ -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