Bug #10731 » 0001-vm_method.c-raise-a-NameError-when-create-alias-to-r.patch
| 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))) {
|
||
- « Previous
- 1
- 2
- 3
- Next »