Рассмотрим следующий код:
public class RandomClass
{
private readonly string randomString;
public RandomClass(string randomParameter)
{
Contract.Requires(randomParameter != null);
Contract.Ensures(this.randomString != null);
this.randomString = randomParameter;
}
public string RandomMethod()
{
return // CodeContracts: requires unproven: replacement != null
Regex.Replace(string.Empty, string.Empty, this.randomString);
}
}
Это гарантирует, что randomString
не будет нулевым при выполнении RandomMethod
. Почему анализ контрактов кода игнорирует этот факт и выдает CodeContracts: requires unproven: replacement != null
предупреждение?