Actions
Bug #9626
closedalias, prepend and super cause unexpected SystemStackError
Bug #9626:
alias, prepend and super cause unexpected SystemStackError
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
Description
module M
def foo
super
end
end
class C
def foo
'C#foo'
end
prepend M
alias_method :orig_foo, :foo
def foo
orig_foo
end
end
C.new.foo
I expect: M#foo -> C#foo -> C#orig_foo and get 'C#foo'
Actual: M#foo -> C#foo -> M#foo -> ... and get stack level too deep (SystemStackError)
If I swap the order of alias_method and prepend, it works as I expect.
I think it's closely related to #7842.
Updated by nobu (Nobuyoshi Nakada) over 11 years ago
Actions