From d40ef8a85c271c3570e778fb74f53d6401281a9d Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 13 Feb 2013 09:10:12 +0000 Subject: [PATCH] proc.c: show the given name * proc.c (method_inspect): show the given name primarily, and original_id if aliased. [ruby-core:52048] [Bug #7806] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ proc.c | 6 +++++- test/ruby/test_method.rb | 11 +++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7632d2a0e3..4e685098ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 13 18:10:09 2013 Nobuyoshi Nakada + + * proc.c (method_inspect): show the given name primarily, and + original_id if aliased. [ruby-core:52048] [Bug #7806] + Wed Feb 13 17:56:39 2013 Nobuyoshi Nakada * configure.in (warnflags): disable -Werror by default unless diff --git a/proc.c b/proc.c index 21fd22d95e..6951562b27 100644 --- a/proc.c +++ b/proc.c @@ -1958,7 +1958,11 @@ method_inspect(VALUE method) } } rb_str_buf_cat2(str, sharp); - rb_str_append(str, rb_id2str(data->me->def->original_id)); + rb_str_append(str, rb_id2str(data->id)); + if (data->id != data->me->def->original_id) { + rb_str_catf(str, "(%"PRIsVALUE")", + rb_id2str(data->me->def->original_id)); + } if (data->me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) { rb_str_buf_cat2(str, " (not-implemented)"); } diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb index 03d7cab2d7..2ef37c4af6 100644 --- a/test/ruby/test_method.rb +++ b/test/ruby/test_method.rb @@ -189,6 +189,11 @@ class TestMethod < Test::Unit::TestCase assert_equal(class << o; self; end, m.owner) assert_equal(:foo, m.unbind.name) assert_equal(class << o; self; end, m.unbind.owner) + class << o + alias bar foo + end + m = o.method(:bar) + assert_equal(:bar, m.name) end def test_instance_method @@ -311,6 +316,12 @@ class TestMethod < Test::Unit::TestCase c2.class_eval { private :foo } m2 = c2.new.method(:foo) assert_equal("#", m2.inspect) + + bug7806 = '[ruby-core:52048] [Bug #7806]' + c3 = Class.new(c) + c3.class_eval { alias bar foo } + m3 = c3.new.method(:bar) + assert_equal("#", m3.inspect, bug7806) end def test_callee_top_level