diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnostic.java index 1d1dc5b0434..80b9d74b5e5 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnostic.java @@ -134,7 +134,11 @@ public ParseTree visitComplexIdentifier(BSLParser.ComplexIdentifierContext ctx) return ctx; } - if (PATTERN.matcher(identifier.getText()).matches() && modifiers.get(0) != null) { + if ( + PATTERN.matcher(identifier.getText()).matches() + && modifiers.get(0) != null + && modifiers.get(0).accessIndex() == null + ) { diagnosticStorage.addDiagnostic(ctx.getStart()); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnosticTest.java index d1675a90872..6f42538d554 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RedundantAccessToObjectDiagnosticTest.java @@ -48,12 +48,11 @@ void test() { List diagnostics = getDiagnostics(); - assertThat(diagnostics).hasSize(10); + assertThat(diagnostics).hasSize(9); assertThat(diagnostics, true) .hasRange(2, 4, 2, 14) .hasRange(3, 4, 3, 14) .hasRange(6, 18, 6, 28) - .hasRange(7, 18, 7, 28) .hasRange(8, 18, 8, 28) .hasRange(10, 4, 10, 14) .hasRange(16, 4, 16, 14) diff --git a/src/test/resources/diagnostics/RedundantAccessToObjectDiagnostic.bsl b/src/test/resources/diagnostics/RedundantAccessToObjectDiagnostic.bsl index 0c8f4ff6d88..d67902d6629 100644 --- a/src/test/resources/diagnostics/RedundantAccessToObjectDiagnostic.bsl +++ b/src/test/resources/diagnostics/RedundantAccessToObjectDiagnostic.bsl @@ -4,9 +4,9 @@ ЭтотОбъект.Договор = Данные.Договор; // Ошибка ЭтотОбъект["ПолеКонтактнойИнформации"] = Данные.Телефон; // Тут ошибки быть не должно - Переменная = ЭтотОбъект.Значенние; // Ошибка - Переменная2 = ЭтотОбъект["Значенние"]; // Ошибка - Переменная3 = ЭтотОбъект.Значенние(); // Ошибка + Переменная = ЭтотОбъект.Значение; // Ошибка + Переменная2 = ЭтотОбъект["Значение"]; // Тут ошибки быть не должно + Переменная3 = ЭтотОбъект.Значение(); // Ошибка ЭтотОбъект.ВыполнитьЗаполнениеПоСтруктуре(Данные); // Ошибка