CodeContracts: a condição booleana é avaliada como um valor constante, por que?

Estou recebendo esse aviso, mas não consigo descobrir o problema ...

CodeContracts: warning: A condição booleana d1.Count! = D2.Count sempre é avaliada como um valor constante. Se ele (ou sua negação) aparecer no código-fonte, você pode ter algum código morto ou verificação redundante

O código é o seguinte:

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

o// Equality check goes here parte pode ser como está ou substituída poruma implementação adequada e ainda recebo o mesmo aviso.

questionAnswers(1)

yourAnswerToTheQuestion