-
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
[FP] RefOveruse #2825
[FP] RefOveruse #2825
Conversation
- findAllTopLevelRuleNodes - доп.метод findAllRuleNodes с коллекцией
исключаю вложенные запросы
Точнее, еще одно ФП обнаружилось, когда включил поддержку вложенных запросов. |
правильно учитываются внешние таблицы
Упала задача javadoc из-за проблем обращения к сайту javadoc. вся остальная сборка прошла успешно. |
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java
Fixed
Show fixed
Hide fixed
убрал табы из тест-файла для правильного подсчета позиции
Kudos, SonarCloud Quality Gate passed! |
@artbear поглядишь последний тест? |
Да, сделаю. |
...test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnosticTest.java
Show resolved
Hide resolved
@artbear надо конфликты разрулить |
# Conflicts: # src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java
Fixed
Show fixed
Hide fixed
@theshadowco конфликты исправлены |
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java
Fixed
Show fixed
Hide fixed
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java
Fixed
Show fixed
Hide fixed
Kudos, SonarCloud Quality Gate passed! |
import com.github._1c_syntax.bsl.languageserver.utils.Trees; | ||
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; | ||
import com.github._1c_syntax.bsl.parser.SDBLParser; | ||
import com.github._1c_syntax.bsl.parser.SDBLParser.ColumnContext; |
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.
Импорт и SDBLParser и конкретных контекстов
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.
Исправил, оставил только импорт SDBLParser
// .filter(tabularSectionTable -> !tabularSectionTable.tableNameOrAlias.isEmpty())// TODO убираешь эти условия, и падает тест со строкой 13 | ||
// .filter(tabularSectionTable -> !tabularSectionTable.tabularSectionNames.isEmpty()) |
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.
Линтер не отключен, этот код просто не был до конца исправлен
исправлено.
.filter(lastChild -> REF_PATTERN.matcher(lastChild.getText()).matches()) | ||
.map(BSLParserRuleContext.class::cast); | ||
.filter(columnNode -> columnNode.getChildCount() > COUNT_OF_TABLE_DOT_REF) | ||
// .map(column -> column.getChild(column.getChildCount() - 1)) |
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.
стоит удалить, отформатировать, позакрывать замечания ide
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.
код в комментариях удален, форматирование сделано.
* @param indexes - коллекция индексов | ||
* @return найденные узлы | ||
*/ | ||
public static Collection<ParserRuleContext> findAllTopLevelRuleNodes(ParserRuleContext t, Collection<Integer> indexes) { |
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.
Плбс плохое название метода. Оно ищет не все верхнеуровневые узлы, а среди потомков.
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.
Плбс плохое название метода. Оно ищет не все верхнеуровневые узлы, а среди потомков.
исправил название на findAllTopLevelDescendantNodes
также исправил односимвольное имя параметра на root
|
||
t.children.stream() | ||
.map(node -> findAllTopLevelRuleNodesInner(node, indexes)) | ||
.forEachOrdered(result::addAll); |
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.
а сортировка зачем?
да, сортировка не нужна. убрал
.hasMessage("0"); | ||
|
||
} | ||
// @BeforeEach |
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.
ну блин! Артур!
упс ) Откатил обратно!
var columns = Trees.findAllTopLevelRuleNodes(ctx, RULE_COLUMNS).stream() | ||
.filter(parserRuleContext -> parserRuleContext.getRuleIndex() == SDBLParser.RULE_column) | ||
.filter(parserRuleContext -> Trees.getRootParent((BSLParserRuleContext) parserRuleContext, EXCLUDED_COLUMNS_ROOT) | ||
.getRuleIndex() == SDBLParser.RULE_query) |
Check warning
Code scanning / QDJVMC
Nullability and data flow problems
по замечанию из ПР
@nixel2007 @theshadowco все замечания исправлены. тесты зеленые. Есть еще замечания или уже примете ПР? ) |
@nixel2007 @theshadowco все замечания исправлены. тесты зеленые. Есть еще замечания или уже примете ПР? ) у нас правило работает много месяцев, ложных замечаний нет. |
Спасибо! |
Описание
новые методы поиска в Trees
исправление FP
Связанные задачи
Closes #2823
Чеклист
Общие
gradlew precommit
)Для диагностик
Дополнительно