From: eagletmt@... Date: 2014-03-12T15:14:16+00:00 Subject: [ruby-core:61437] [ruby-trunk - Bug #9626] [Open] alias, prepend and super cause unexpected SystemStackError Issue #9626 has been reported by Kohei Suzuki. ---------------------------------------- Bug #9626: alias, prepend and super cause unexpected SystemStackError https://bugs.ruby-lang.org/issues/9626 * Author: Kohei Suzuki * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- ```ruby 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. -- http://bugs.ruby-lang.org/