CodeContracts: Boolesche Bedingung ergibt einen konstanten Wert. Warum?

Ich bekomme diese Warnung, kann das Problem aber nicht herausfinden ...

CodeContracts: Warnung: Die Boolesche Bedingung d1.Count! = D2.Count wird immer zu einem konstanten Wert ausgewertet. Wenn es (oder seine Negation) im Quellcode erscheint, haben Sie möglicherweise einen toten Code oder eine redundante Prüfung

Der Code lautet wie folgt:

public static bool DictionaryEquals<TKey, TValue>(IDictionary<TKey, TValue> d1, IDictionary<TKey, TValue> d2)
{
    if (d1 == d2) return true;
    if (d1 == null || d2 == null) return false;
    if (d1.Count != d2.Count) return false; // <-- warning here

    // Equality check goes here

    return true;
}

Das// Equality check goes here Teil kann unverändert sein oder durch @ ersetzt werd eine ordnungsgemäße Umsetzung und ich bekomme immer noch die gleiche Warnung.