Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Использование PVS-Studio при разработке встраиваемых систем - 14.05

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V7023. Suspicious use of a variable in similar code fragments. Perhaps this is a typo, and a different variable may have been intended.

12 Май 2026

Анализатор обнаружил два схожих по структуре блока кода, которые идут друг за другом и отличаются одной переменной: в первом блоке кода она встречалась несколько раз, а во втором — всего один. Вероятно, подобный код был написан с использованием copy-paste, а переменную забыли заменить.

Рассмотрим пример:

if (x > 0) {
  Do1(x);
  Do2(x); 
}
if (y > 0) {
  Do1(y);
  Do2(x); // <=
}

В первом блоке все действия происходят с переменной x. Во втором блоке все действия происходят с переменной y, кроме метода Do2(x). Вероятно, здесь забыли поменять переменную, и корректный вариант должен выглядеть так:

if (x > 0) {
  Do1(x);
  Do2(x); 
}
if (y > 0) {
  Do1(y);
  Do2(y);
}

Хорошей практикой, защищающей от такой ошибки, является вынос кода в отдельные функции:

processVariable(x);
processVariable(y); 

function processVariable(value) {
  if (value > 0) {
    Do1(value);
    Do2(value);
  }
}