-
Notifications
You must be signed in to change notification settings - Fork 111
[FN] UnusedLocalVariable после вставки в структуру #2787
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Тут прям сложно... Надо понимать, что это именно структура, что при вставке значений нет побочных эффектов от вызовов методов... |
Да здравствует выведение типов! |
Сводная задача по "потерянным" переменным #1088 |
Мысль где то в недрах референс индекса помечать "самоиспользование". |
Да, проверка самоиспользования внутри реф-индекса будет очень полезной. без нее мне уже в 2х или 3х правилах пришлось костылить и самому писать код проверки самозаписи
|
@qtLex что скажешь?
|
Чтоб хранить признак "самоиспользование", нужно понять что такое "самоиспользование". Только присвоение самой себе или любое использование значения переменной при инициализации нового значения? Мне добавление признака кажется очень сомнительным.
Лучше реализовать утилити метод определяющий, что является ли конкретное присваивание самоиспользованием. А находить такие определения уже через референс индекс. Примеры где необходим контекст для определения Значение = Значение; Тут вроде все понятно. Присваиваем переменную саму себе. Лишнее действие. Но на это уже есть диагностика. Значение = Действие();
Значение = Действие(); Тут тоже вроде понятно. Дважды одно значение Значение = Значение + 1; Тут уже сложнее. Будет ли это ошибкой или нет сильно зависит от контекста. Это может быть глобальная переменная. Может что-то считать в цикле. Значение = Действие(Значение);
Значение = Действие2(Значение); Такое написание нам диктует стандарт запрещающий вложенные методы. |
Я на днях реализовал 2 правила
в обоих случаях мне понадобилось различать
минусы
по опыту написания различных хитрых правил я знаю, что подобные проверки часто приходится повторять
т.е. было бы хорошо, чтобы была возможность определения указанных признаков связи определения и использовния
|
Диагностика
UnusedLocalVariable
Версия
Описание ложного НЕ срабатывания диагностики
Создана структура, в нее добавлены ключи, но структура никуда не передана
Пример кода
Скриншоты
Дополнительная информация
The text was updated successfully, but these errors were encountered: