DRAFT Правило LostVariable - Затираемая\скрываемая переменная#2814
DRAFT Правило LostVariable - Затираемая\скрываемая переменная#2814artbear wants to merge 50 commits into1c-syntax:developfrom
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.
здесь можно пропустить переменные, лежащие в областях
There was a problem hiding this comment.
здесь можно пропустить переменные, лежащие в областях
спасибо, написал тест, действительно пропускаю такие переменные.
сделал исправление
- 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)Для диагностик
Дополнительно