From: ruby-core@... Date: 2017-10-05T02:01:35+00:00 Subject: [ruby-core:83114] [Ruby trunk Bug#13973] super_method fails on some UnboundMethods Issue #13973 has been reported by marcandre (Marc-Andre Lafortune). ---------------------------------------- Bug #13973: super_method fails on some UnboundMethods https://bugs.ruby-lang.org/issues/13973 * Author: marcandre (Marc-Andre Lafortune) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Target version: 2.5 * ruby -v: trunk * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- `super_method` fails to go up the ancestry chain for methods that are only defined in included modules: ~~~ ruby module A def foo end end module B def foo end end class C include A include B end class D def foo end include A include B end C.instance_method(:foo) # => # (ok) C.instance_method(:foo).super_method # => nil (wrong, should be (A)#foo>) C.new.method(:foo).super_method # => # (ok) D.instance_method(:foo).super_method # => # (ok) D.instance_method(:foo).super_method.super_method # => # (ok) ~~~ Note that the results for C and D's super_method differ slightly, with one outputing "C(B)" and the other "Object(B)". I don't understand why "Object" shows anywhere in my example. I would have expected the output to be "D(B)" in the later case. Should I open a different issue for this? -- https://bugs.ruby-lang.org/ Unsubscribe: