Issue #5865 has been updated by Nikolai Weibull.


I also wrote about this in [ruby-core:41393].  An excerpt:

  The commit message says that °»duck typing equal to make it
  transitive°…, but I don°«t understand what°«s meant by °»transitive°… in
  this case.  I don°«t think RuntimeError.new('a') should be #== to
  StandardError.new('a') or vice versa.

Intentional or not at the time, this is neither expected nor desired behavior.
----------------------------------------
Bug #5865: Exception#== should return false if the classes differ
https://bugs.ruby-lang.org/issues/5865

Author: Hiro Asari
Status: Open
Priority: Low
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2011-12-31 trunk 34165) [x86_64-darwin11.2.0] 


Documentation says "If obj is not an Exception, returns false. Otherwise, returns true if exc and obj share same class, messages, and backtrace."

However,

$ ruby2.0 -v -e 'x=RuntimeError.new("msg"); y=ScriptError.new("msg"); p x==y'
ruby 2.0.0dev (2011-12-31 trunk 34165) [x86_64-darwin11.2.0]
true



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