Fix visibility of alias of zsuper methods
This was broken by 71c746379d5872e250d90ae45c585760afaf9516. 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;
|
||||||
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
|
def test_alias_memory_leak
|
||||||
assert_no_memory_leak([], "#{<<~"begin;"}", "#{<<~'end;'}", rss: true)
|
assert_no_memory_leak([], "#{<<~"begin;"}", "#{<<~'end;'}", rss: true)
|
||||||
begin;
|
begin;
|
||||||
|
@ -2146,6 +2146,7 @@ rb_alias(VALUE klass, ID alias_name, ID original_name)
|
|||||||
visi = METHOD_ENTRY_VISI(orig_me);
|
visi = METHOD_ENTRY_VISI(orig_me);
|
||||||
goto again;
|
goto again;
|
||||||
case VM_METHOD_TYPE_ALIAS:
|
case VM_METHOD_TYPE_ALIAS:
|
||||||
|
visi = METHOD_ENTRY_VISI(orig_me);
|
||||||
orig_me = orig_me->def->body.alias.original_me;
|
orig_me = orig_me->def->body.alias.original_me;
|
||||||
VM_ASSERT(orig_me->def->type != VM_METHOD_TYPE_ALIAS);
|
VM_ASSERT(orig_me->def->type != VM_METHOD_TYPE_ALIAS);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user