The error occurs on expressions like
There are:
- QFix: cast obj to type of this and still use operator ==.
- CA: use Equals.
Missing:
Also the problem is that one is a QFix and another is a CA, while it's hard to tell why one is more important than another.
The new ReferenceEquals QFix/CA should have highest priority of all (go the first in the list, possibly thus a QFix), because it does not change the code logic and won't lead to StackOveflowException in case of a recursive ==—Equals call.