From: "shugo (Shugo Maeda)" Date: 2012-12-28T11:26:50+09:00 Subject: [ruby-core:51167] [ruby-trunk - Bug #7613] An Alias for a class method inherited from the Class class is not equal to the original method Issue #7613 has been updated by shugo (Shugo Maeda). zhangsu (Su Zhang) wrote: > class Stream > class << self > alias_method :open, :new > end > end > > open = Stream.method(:open) > new = Stream.method(:new) > p open, 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#==`: open == new returns false because their owners are different. p [open.owner, new.owner] #=> [#, Class] > > 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. I've fixed the documentation of Method#== as follows: Two method objects are equal if they are bound to the same object and refer to the same method definition and their owners are the same class or module. ---------------------------------------- Bug #7613: An Alias for a class method inherited from the Class class is not equal to the original method https://bugs.ruby-lang.org/issues/7613#change-35117 Author: zhangsu (Su Zhang) Status: Closed Priority: Normal Assignee: Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3p327 (2012-11-10) [i386-mingw32] class Stream class << self alias_method :open, :new end end open = Stream.method(:open) new = Stream.method(:new) p open, 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. -- http://bugs.ruby-lang.org/