Использование Если/ИначеЕсли с константным выражением
Блоки Если ... ИначеЕсли ... КонецЕсли
, содержащие константные выражения, должны быть переделаны или удалены, т.к. не несут функциональной нагрузки.
Подозрительный код
Процедура Процедура1()
Если ИСТИНА Тогда //ошибка
Действие();
КонецЕсли;
КонецПроцедуры;
Процедура ДругаяПроцедура1()
Если Ложь Тогда //ошибка
Действие();
КонецЕсли;
КонецПроцедуры;
Согласно Common Weakness Enumeration потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как: - CWE-570 - CWE-571
См. также
- MSC12-C. Detect and remove code that has no effect or is never executed
- MITRE, CWE-489 - Leftover Debug Code
- MITRE, CWE-570 - Expression is Always False
- MITRE, CWE-571 - Expression is Always True
- MISRA C:2004, 13.7 - Boolean operations whose results are invariant shall not be permitted.
- MISRA C:2012, 14.3 - Controlling expressions shall not be invariant
Экранирование кода
// sonar:ConstantBooleanInCondition:off
// sonar:ConstantBooleanInCondition:on