Actions
Bug #7613
closedAn Alias for a class method inherited from the Class class is not equal to the original method
Description
class Stream
class << self
alias_method :open, :new
end
end
open = Stream.method(:open)
new = Stream.method(:new)
p open, new # => #<Method: Stream.new>, #<Method: Class#new>
p open.receiver, new.receiver # => Stream, Stream
p open == new # => false
Expect the last line to return true, but got false. According to the documentation for Method#==
:
Two method objects are equal if they are bound to the same object and refer to the same method definition.
Here, open
and new
are all bound to Stream
and I expect them to refer to the method definition too.
Actions
Like0
Like0Like0Like0