-
Notifications
You must be signed in to change notification settings - Fork 109
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
DRAFT Правило LostVariable - Затираемая\скрываемая переменная #2814
base: develop
Are you sure you want to change the base?
Conversation
This reverts commit f9bb389.
метод findNodeContainsPosition переименовал метод в findTerminalNodeContainsPosition
ускорение поиска узлов в дереве ast
Упал шаг javadoc на обращении к https://javadoc.io/ - остальные шаги отработали верно. |
} | ||
|
||
private List<VarData> getVarData(MethodSymbol methodSymbol) { | ||
final var variables = methodSymbol.getChildren().stream() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здесь можно пропустить переменные, лежащие в областях
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здесь можно пропустить переменные, лежащие в областях
спасибо, написал тест, действительно пропускаю такие переменные.
сделал исправление
- Range - Position - SymbolOccurrence
из соседнего ПР
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LostVariableDiagnostic.java
Fixed
Show fixed
Hide fixed
Kudos, SonarCloud Quality Gate passed! |
В шапку добавил
|
уже без использования - внесен падающий тест для дальнейшей реализации
# Conflicts: # src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SelectionRangeProvider.java # src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java
- ловится переустановка итератора во вложенном цикле - кейс с переустановкой значения
для исключения ФП рефакторинг
FP 1 <Для Каждого ТабличнаяЧасть Из СтрокаТаблицы.Метаданные.ТабличныеЧасти Цикл
Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда
СтрокаТабличнойЧасти = Параметры.Объект[ТабличнаяЧасть.Имя].Найти(Ссылка, Реквизит.Имя);
Пока СтрокаТабличнойЧасти <> Неопределено Цикл
СтрокаТабличнойЧасти[Реквизит.Имя] = ПравильныйЭлемент;
// выдается ошибка ниже
СтрокаТабличнойЧасти = Параметры.Объект[ТабличнаяЧасть.Имя].Найти(Ссылка, Реквизит.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла; |
Еще FP 2
к сожалению, пока эту проблему простым способом не порешать |
варианты решения
|
Kudos, SonarCloud Quality Gate passed! |
# Conflicts: # src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java
На некоторых конфигурациях падает, т.к. в методе могут быть несколько методов с одним названием, которые находятся внутри разных блоков препроцессора #Если НЕ МобильныйАвтономныйСервер Тогда
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
// код
КонецПроцедуры
#Иначе
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
// код
КонецПроцедуры
#КонецЕсли ошибка
|
Описание
.
Учтены кейсы из исходной задачи
Есть FP, смотреть комментарии
Связанные задачи
Closes #1088
Чеклист
Общие
gradlew precommit
)Для диагностик
Дополнительно