Перезапись параметров метода, переданных по значению
Довольно часто возникают ситуации, когда аргументы функции перезаписываются сразу на входе в функцию/процедуру. Такое поведение вводит в заблуждение других разработчиков, которые вызывают такие функции/процедуры. Подобные функции нужно исправить. Например, убрать параметры, преобразовав их в локальные переменные.
Подозрительный код
Функция МояФункция(Знач Парам1, Парам2)
Парам1 = СтрЗаменить(Парам2, "1", "11");
Парам1 = Объект.Функ(Парам1);
КонецФункции
Исправленный код
Функция МояФункция(Знач Парам1, Парам2)
Парам1 = Объект.Функ(Парам1);
Парам2 = СтрЗаменить(Парам2, "1", "11");
КонецФункции
См. также
- PVS-Studio V763. Parameter is always rewritten in function body before being used
- Статья на хабре от PvsStudio с примерами для V590 - Лучшие Copy-Paste алгоритмы для C и C++. Сборник рецептов Haiku OS
Экранирование кода
// sonar:RewritingMethodParameters:off
// sonar:RewritingMethodParameters:on