CodeContracts: la condición booleana se evalúa como un valor constante, ¿por qué?

Recibo esta advertencia pero no puedo resolver el problema ...

CodeContracts: advertencia: la condición booleana d1.Count! = D2.Count siempre se evalúa como un valor constante. Si aparece (o su negación) en el código fuente, es posible que tenga algún código muerto o verificación redundante

El código es el siguiente:

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;
}

los// Equality check goes here&nbsp;parte puede ser como es o ser reemplazada poruna implementación adecuada&nbsp;y sigo recibiendo la misma advertencia.