=== on 18 Nov 2015, 17:17:47 Tamas Vajk wrote:
\[~ann.campbell.2] Could you check this specification? Thanks

=== on 18 Nov 2015, 20:03:53 Ann Campbell wrote:
I've made some minor edits, but I'm confused by your "raises an issue" sentence. First, there's nothing previously mentioned in the description about base vs object. Are you saying the rule only raises an issue for classes that aren't direct extensions of ``++Object++``? Second, don't you want to raise an issue _any time_ a reference check isn't done? Even if you're writing the method for a class that extends ``++Object++`` it seems that an immediate reference check is a good idea...?

=== on 19 Nov 2015, 08:30:54 Tamas Vajk wrote:
\[~ann.campbell.2] I changed the SQALE characteristics and the labels on the rule.


Yes, the aim was to say that the rule only raises an issue for classes that aren't direct extensions of ``++Object++``. More specifically it raises issues on ``++base.Equals++`` calls in ``++if (base.Equals(other)){return true;}++`` that are inside an ``++override bool Equals++`` in classes that aren't direct extensions of ``++Object++``.


I don't think that we should add a rule to check for the existence of this reference equality check. There are multiple ways of doing it, so we might not be able to recognize all patterns, and also, MSDN suggests another way of implementing ``++Equals++`` override. However, this pattern is found in several places, and it's error-prone, because it works if you extend ``++Object++`` directly, but if you introduce a new base class, then it suddenly fails to work.

=== on 19 Nov 2015, 19:44:40 Ann Campbell wrote:
\[~tamas.vajk] I've updated both the description and the code samples.

=== on 20 Nov 2015, 08:48:12 Tamas Vajk wrote:
Thanks [~ann.campbell.2], it looks good.

