Недавно мы столкнулись с ошибкой, которая иллюстрирует недостатки f7007;код-колбасыf816d; и проблему f7007;эффекта последней строкиf816d;. В нашем анализаторе PVS-Studio количество диагностик превышает 1100 и продолжает расти. В следующем году ожидается рост, связанный с поддержкой новых языков, но об этом позже.
Мы не только добавляем новые правила диагностики, но и улучшаем старые. В декабрьском обновлении улучшена одна из старейших диагностик V3001 для C#. Она теперь точнее определяет ненужные круглые скобки, что позволяет выявлять новые ошибки.
Ошибка была найдена в проекте Space Engineers, где используется старая версия кода для анализа. При взгляде на функцию Contains в BoundingBox.cs можно увидеть, как длинные строки затрудняют понимание кода.
Например, в логическом условии последней строки обнаруживается дублирование. Вместо проверки координаты X должно проверяться значение Z. PVS-Studio фиксирует это и выдает предупреждение о дубликатах.
Ошибка произошла из-за копирования кода, где изменения для координаты Z не были внесены. Аналогичная проблема возникает в другой функции, где анализатор также указывает на ошибку.
Подводя итог, важно соблюдать регламент написания кода, избегать длинных строк, применять статический анализ и унифицировать код в функциях.
tasani.ru