[#97536] [Ruby master Bug#16694] JIT vs hardened GCC with PCH — v.ondruch@...
Issue #16694 has been reported by vo.x (Vit Ondruch).
11 messages
2020/03/18
[ruby-core:97583] [Ruby master Bug#16736] Prepending blank module breaks super call in aliased method
From:
mame@...
Date:
2020-03-24 15:25:38 UTC
List:
ruby-core #97583
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 `<main>'
1: from test.rb:19:in `generate'
test.rb:15:in `key': super: no superclass method `key' for #<B:0x00007fbc1704d028> (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: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>