Project

General

Profile

Feature #7274

UnboundMethods should be bindable to any object that is_a?(owner of the UnboundMethod)

Added by rits (First Last) about 8 years ago. Updated about 7 years ago.

Status:
Rejected
Priority:
Normal
Target version:
[ruby-core:48847]

Description

=begin
as a corollary, (({UnboundMethod}))s referencing the same method name on the same owner, should be equal

currently (({UnboundMethod}))s binding is determined by the class via which they were retrieved, not the owner

class Base; def foo; end end
class Sub < Base; end

base_foo = Base.instance_method :foo
sub_foo = Sub.instance_method :foo
sub_foo.bind(Base.new).call

(({sub_foo.owner})) is (({Base})) so there does not seem to be any reason why it's not safe for it to bind to an instance of (({Base})).

and there does not seem to be any reason for (({sub_foo})) and (({base_foo})) to be unequal, they both refer to the same method, (({foo})) on (({Base})).
=end


Files

bind.pdf (85.7 KB) bind.pdf marcandre (Marc-Andre Lafortune), 08/31/2013 10:42 AM

Also available in: Atom PDF