Skip to content

Commit b63fd26

Browse files
committed
восстановление правила после изменения парсера запросов
- убран признак Disabled - кратко документирован алгоритм
1 parent 020ad31 commit b63fd26

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FieldsFromJoinsWithoutIsNullDiagnostic.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
*/
2222
package com.github._1c_syntax.bsl.languageserver.diagnostics;
2323

24-
import com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure.Disabled;
2524
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata;
2625
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity;
2726
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag;
@@ -47,7 +46,6 @@
4746
import java.util.stream.Collectors;
4847
import java.util.stream.Stream;
4948

50-
@Disabled
5149
@DiagnosticMetadata(
5250
type = DiagnosticType.ERROR,
5351
severity = DiagnosticSeverity.CRITICAL,
@@ -61,11 +59,15 @@
6159
)
6260
public class FieldsFromJoinsWithoutIsNullDiagnostic extends AbstractSDBLVisitorDiagnostic {
6361

62+
// схема расчета - находится поле из соединения,
63+
// далее идет поиск вверх по родительским узлам для проверки вхождения в разных вариациях ЕСТЬNULL или ЕСТЬ NULL
64+
// для оптимизации ищем вверх не до начального узла всего дерева, а до узла, в котором искать уже нет смысла
65+
6466
private static final Integer SELECT_ROOT = SDBLParser.RULE_selectedField;
6567
private static final Collection<Integer> SELECT_STATEMENTS = Set.of(SELECT_ROOT, SDBLParser.RULE_builtInFunctions,
6668
SDBLParser.RULE_isNullPredicate);
6769

68-
private static final Integer WHERE_ROOT = SDBLParser.RULE_predicate;
70+
private static final Integer WHERE_ROOT = SDBLParser.RULE_query;
6971
private static final Collection<Integer> WHERE_STATEMENTS = Set.of(WHERE_ROOT, SDBLParser.RULE_builtInFunctions,
7072
SDBLParser.RULE_isNullPredicate);
7173

src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FieldsFromJoinsWithoutIsNullDiagnosticTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.eclipse.lsp4j.Diagnostic;
2727
import org.eclipse.lsp4j.DiagnosticRelatedInformation;
2828
import org.eclipse.lsp4j.Range;
29-
import org.junit.jupiter.api.Disabled;
3029
import org.junit.jupiter.api.Test;
3130

3231
import java.util.Arrays;
@@ -41,7 +40,6 @@ class FieldsFromJoinsWithoutIsNullDiagnosticTest extends AbstractDiagnosticTest<
4140
}
4241

4342
@Test
44-
@Disabled
4543
void test() {
4644

4745
List<Diagnostic> diagnostics = getDiagnostics();

0 commit comments

Comments
 (0)