diff options
-rw-r--r-- | test/ruby/test_const.rb | 12 | ||||
-rw-r--r-- | vm_method.c | 10 |
2 files changed, 13 insertions, 9 deletions
diff --git a/test/ruby/test_const.rb b/test/ruby/test_const.rb index 8b3acfb683..417cc7c961 100644 --- a/test/ruby/test_const.rb +++ b/test/ruby/test_const.rb @@ -49,11 +49,15 @@ class TestConst < Test::Unit::TestCase def test_redefinition c = Class.new - c.const_set(:X, 1) - assert_output(nil, <<-WARNING) {c.const_set(:X, 2)} -#{__FILE__}:#{__LINE__-1}: warning: already initialized constant #{c}::X -#{__FILE__}:#{__LINE__-3}: warning: previous definition of X was here + name = "X\u{5b9a 6570}" + c.const_set(name, 1) + prev_line = __LINE__ - 1 + EnvUtil.with_default_internal(Encoding::UTF_8) do + assert_output(nil, <<-WARNING) {c.const_set(name, 2)} +#{__FILE__}:#{__LINE__-1}: warning: already initialized constant #{c}::#{name} +#{__FILE__}:#{prev_line}: warning: previous definition of #{name} was here WARNING + end code = <<-PRE olderr = $stderr.dup $stderr.reopen(File::NULL, "wb") diff --git a/vm_method.c b/vm_method.c index b722d050e1..1f397e3115 100644 --- a/vm_method.c +++ b/vm_method.c @@ -322,7 +322,7 @@ rb_method_entry_make(VALUE klass, ID mid, rb_method_type_t type, old_def->type != VM_METHOD_TYPE_ZSUPER) { rb_iseq_t *iseq = 0; - rb_warning("method redefined; discarding old %s", rb_id2name(mid)); + rb_warning("method redefined; discarding old %"PRIsVALUE, rb_id2str(mid)); switch (old_def->type) { case VM_METHOD_TYPE_ISEQ: iseq = old_def->body.iseq; @@ -336,8 +336,8 @@ rb_method_entry_make(VALUE klass, ID mid, rb_method_type_t type, if (iseq && !NIL_P(iseq->location.path)) { int line = iseq->line_info_table ? FIX2INT(rb_iseq_first_lineno(iseq->self)) : 0; rb_compile_warning(RSTRING_PTR(iseq->location.path), line, - "previous definition of %s was here", - rb_id2name(old_def->original_id)); + "previous definition of %"PRIsVALUE" was here", + rb_id2str(old_def->original_id)); } } @@ -762,8 +762,8 @@ remove_method(VALUE klass, ID mid) if (!st_lookup(RCLASS_M_TBL(klass), mid, &data) || !(me = (rb_method_entry_t *)data) || (!me->def || me->def->type == VM_METHOD_TYPE_UNDEF)) { - rb_name_error(mid, "method `%s' not defined in %s", - rb_id2name(mid), rb_class2name(klass)); + rb_name_error(mid, "method `%"PRIsVALUE"' not defined in %"PRIsVALUE, + rb_id2str(mid), rb_class_path(klass)); } key = (st_data_t)mid; st_delete(RCLASS_M_TBL(klass), &key, &data); |