In Scala 2.9 a case class is not equal to itself (even the same instance) if it inherits from Proxy. In Scala 2.8 this is not the case.
The discussion here describes it:
This is causing us huge trouble as we have to:
- rewrite any of our case classes that inherit (even indirectly) from Proxy
- not use any library case classes that have Proxy in their inheritance tree
It has made using case classes a unsafe thing to do unless you are sure nothing they inherit from has Proxy, or will ever have Proxy, in its inheritance tree. What's worse is that this problem is causing our code to fail at runtime in very unexpected ways. If this behaviour is by design the least I would expect is some compiler warnings.