From: "nagachika (Tomoyuki Chikanaga)" Date: 2013-05-06T00:56:27+09:00 Subject: [ruby-core:54804] [Backport 200 - Backport #8367] regression in defined?(super) starting with 2.0.0-p0 Issue #8367 has been updated by nagachika (Tomoyuki Chikanaga). Hello, Should I backport r40584 too? ---------------------------------------- Backport #8367: regression in defined?(super) starting with 2.0.0-p0 https://bugs.ruby-lang.org/issues/8367#change-39145 Author: indirect (Andr�� Arko) Status: Assigned Priority: Normal Assignee: nagachika (Tomoyuki Chikanaga) Category: Target version: =begin Hello, I have discovered a regression in the behaviour of (({defined?(super)})). It functions as expected in 1.9.3-p392, but has changed in 2.0.0-p0 and in 2.1.0dev (2013-05-03 trunk 40571). On Ruby 1.9.3, the call returns the string (({"super"})). On 2.0.0-p0 and above, the call returns (({nil})). The change seems to be specific to the inside of a block in a method that is defined in a module that is extended onto the object where the method is called. This is a minimal reproduction example, which I have also attached as "super-gone.rb". class C def x; end end module M def b; yield; end def x b do # On 1.9.3, this is "super", but on 2.0.0 it is nil p defined?(super) end end end c = C.new c.extend M c.x Thank you. =end -- http://bugs.ruby-lang.org/