Fix visibility of alias of zsuper methods
This was broken by 71c746379d
.
Fixes [Bug #18600]
This commit is contained in:
parent
7f5440756e
commit
0c6e24d102
Notes:
git
2022-03-11 01:35:52 +09:00
|
@ -265,6 +265,16 @@ class TestAlias < Test::Unit::TestCase
|
|||
end;
|
||||
end
|
||||
|
||||
class C2
|
||||
public :system
|
||||
alias_method :bar, :system
|
||||
alias_method :system, :bar
|
||||
end
|
||||
|
||||
def test_zsuper_alias_visibility
|
||||
assert(C2.new.respond_to?(:system))
|
||||
end
|
||||
|
||||
def test_alias_memory_leak
|
||||
assert_no_memory_leak([], "#{<<~"begin;"}", "#{<<~'end;'}", rss: true)
|
||||
begin;
|
||||
|
|
|
@ -2146,6 +2146,7 @@ rb_alias(VALUE klass, ID alias_name, ID original_name)
|
|||
visi = METHOD_ENTRY_VISI(orig_me);
|
||||
goto again;
|
||||
case VM_METHOD_TYPE_ALIAS:
|
||||
visi = METHOD_ENTRY_VISI(orig_me);
|
||||
orig_me = orig_me->def->body.alias.original_me;
|
||||
VM_ASSERT(orig_me->def->type != VM_METHOD_TYPE_ALIAS);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue