From: mame@... Date: 2020-03-24T15:25:38+00:00 Subject: [ruby-core:97583] [Ruby master Bug#16736] Prepending blank module breaks super call in aliased method Issue #16736 has been updated by mame (Yusuke Endoh). According to bisect, the behavior was changed by commit:5069c5f5214ce68df8b3954321ad9114c5368dc3. @jeremyevans0 Could you please check it out? ---------------------------------------- Bug #16736: Prepending blank module breaks super call in aliased method https://bugs.ruby-lang.org/issues/16736#change-84768 * Author: tycooon (Yuri Smirnov) * Status: Open * Priority: Normal * ruby -v: 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- Here is the test script: ``` class A def key ["some_key"] end end module M prepend Module.new def self.included(base) base.alias_method :base_key, :key end def key super + ["new_key"] end def generate base_key end end class B < A include M end x = B.new p x.generate ``` In Ruby 2.7 I get the following error: ``` Traceback (most recent call last): 2: from test.rb:28:in `
' 1: from test.rb:19:in `generate' test.rb:15:in `key': super: no superclass method `key' for # (NoMethodError) ``` If I remove the `prepend Module.new` line or switch to Ruby 2.6, I get the expected result: ``` ["some_key", "new_key"] ``` -- https://bugs.ruby-lang.org/ Unsubscribe: