Issue #10432 has been updated by Koichi Sasada.


> Methodオブジェクトからto_proc.bindingで作られたBindingのreceiverが、Methodオブジェクトの元になったオブジェクトではなく、Methodオブジェクトになっています。

元々、なんでこれじゃいけないんでしたっけ。
1.8 だと、Method オブジェクトになったのかな。


----------------------------------------
Bug #10432: wrong receiver of Binding from Method
https://bugs.ruby-lang.org/issues/10432#change-52532

* Author: Nobuyoshi Nakada
* Status: Closed
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* ruby -v: trunk
* Backport: 2.0.0: DONE, 2.1: DONE
----------------------------------------
Methodオブジェクトから`to_proc.binding`で作られたBindingのreceiverが、Methodオブジェクトの元になったオブジェクトではなく、Methodオブジェクトになっています。

~~~ruby
class C
  def foo;end
end
o = C.new
m = o.method(:foo)
p m.receiver                    # #<C:0x007fcada074e58>
p m.to_proc.binding.receiver    # #<Method: C#foo>
~~~

2.0, 2.1では`Binding#receiver`はありませんが、`eval("self")`で同様の結果になります。




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