Skip to content

Commit 36b135b

Browse files
authored
Merge pull request #1483 from qtLex/fix/RedundantAccessToObject
Исправление FP на доступе через индекс
2 parents f0b0bd0 + 8a96be5 commit 36b135b

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,11 @@ public ParseTree visitComplexIdentifier(BSLParser.ComplexIdentifierContext ctx)
134134
return ctx;
135135
}
136136

137-
if (PATTERN.matcher(identifier.getText()).matches() && modifiers.get(0) != null) {
137+
if (
138+
PATTERN.matcher(identifier.getText()).matches()
139+
&& modifiers.get(0) != null
140+
&& modifiers.get(0).accessIndex() == null
141+
) {
138142
diagnosticStorage.addDiagnostic(ctx.getStart());
139143
}
140144

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,11 @@ void test() {
4848

4949
List<Diagnostic> diagnostics = getDiagnostics();
5050

51-
assertThat(diagnostics).hasSize(10);
51+
assertThat(diagnostics).hasSize(9);
5252
assertThat(diagnostics, true)
5353
.hasRange(2, 4, 2, 14)
5454
.hasRange(3, 4, 3, 14)
5555
.hasRange(6, 18, 6, 28)
56-
.hasRange(7, 18, 7, 28)
5756
.hasRange(8, 18, 8, 28)
5857
.hasRange(10, 4, 10, 14)
5958
.hasRange(16, 4, 16, 14)

src/test/resources/diagnostics/RedundantAccessToObjectDiagnostic.bsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
ЭтотОбъект.Договор = Данные.Договор; // Ошибка
55
ЭтотОбъект["ПолеКонтактнойИнформации"] = Данные.Телефон; // Тут ошибки быть не должно
66

7-
Переменная = ЭтотОбъект.Значенние; // Ошибка
8-
Переменная2 = ЭтотОбъект["Значенние"]; // Ошибка
9-
Переменная3 = ЭтотОбъект.Значенние(); // Ошибка
7+
Переменная = ЭтотОбъект.Значение; // Ошибка
8+
Переменная2 = ЭтотОбъект["Значение"]; // Тут ошибки быть не должно
9+
Переменная3 = ЭтотОбъект.Значение(); // Ошибка
1010

1111
ЭтотОбъект.ВыполнитьЗаполнениеПоСтруктуре(Данные); // Ошибка
1212

0 commit comments

Comments
 (0)