Анализатор обнаружил потенциально возможную ошибку, связанную с тем, что неаккуратно закомментированный фрагмент кода приводит к изменению логики выполнения программы.
Диагностическое правило ищет комментарии, похожие на код, между оператором 'if (...)' и его 'then'-ветвью, причем 'then'-ветвь отформатирована подозрительным образом. В этом случае можно предположить, что текущая 'then'-ветвь стала результатом неудачного рефакторинга.
Рассмотрим пример:
if (hwndTaskEdit == null)
// hwndTaskEdit = getTask(...);
if (hwndTaskEdit != null)
{
...
}
Программа потеряла смысл: условие второго оператора 'if' никогда не выполняется.
Корректный вариант кода:
// if (hwndTaskEdit == null)
// hwndTaskEdit = getTask(...);
if (hwndTaskEdit != null)
{
...
}
Анализатор не будет выдавать предупреждение, если форматирование кода будет соответствовать логике программы.
Пример кода:
if (isReady)
// some comment
if (isSmt)
{
...
}
Данная диагностика классифицируется как:
|