Project

General

Profile

Bug #10731 » 0001-vm_method.c-raise-a-NameError-when-create-alias-to-r.patch

hanachin (Seiei Miyagi), 01/12/2015 05:08 AM

View differences:

test/ruby/test_refinement.rb
end;
end
def test_alias_refined_method
assert_separately([], <<-"end;")
bug10731 = '[ruby-core:67523] [Bug #10731]'
class C
end
module RefinementBug
refine C do
def foo
end
def bar
end
end
end
assert_raise(NameError, bug10731) do
class C
alias foo bar
end
end
end;
end
private
def eval_using(mod, s)
vm_method.c
again:
orig_me = search_method(klass, def, &defined_class);
if (UNDEFINED_METHOD_ENTRY_P(orig_me)) {
if (UNDEFINED_METHOD_ENTRY_P(orig_me) ||
(orig_me->def->type == VM_METHOD_TYPE_REFINED &&
UNDEFINED_METHOD_ENTRY_P(orig_me->def->body.orig_me))) {
if ((!RB_TYPE_P(klass, T_MODULE)) ||
(orig_me = search_method(rb_cObject, def, 0),
UNDEFINED_METHOD_ENTRY_P(orig_me))) {
(3-3/3)