Issue #11636 has been reported by Shugo Maeda.

----------------------------------------
Bug #11636: super in instance_eval in a method defined in a module is invoked with a wrong receiver
https://bugs.ruby-lang.org/issues/11636

* Author: Shugo Maeda
* Status: Assigned
* Priority: Normal
* Assignee: Koichi Sasada
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
super in instance_eval in a method defined in a module is invoked with a wrong receiver:

class Foo
  def initialize
    @foo = :foo
  end

  def foo
    p [self, @foo]
  end
end

module M
  def foo
    x = Object.new
    x.instance_eval do
      super
    end
  end
end

class Bar < Foo
  include M
end

Bar.new.foo
The output should be [#<Foo:...>, :foo] or an exception.
Matz prefer the former (https://twitter.com/yukihiro_matz/status/659913844861464576).



-- 
https://bugs.ruby-lang.org/