Skip to content

Commit 4d6722e

Browse files
committed
Подправил ошибку определения использования
1 parent dc39529 commit 4d6722e

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolComputer.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,20 @@ public ParseTree visitLValue(BSLParser.LValueContext ctx) {
105105
return ctx;
106106
}
107107

108+
@Override
109+
public ParseTree visitCallStatement(BSLParser.CallStatementContext ctx) {
110+
if(ctx.getStart().getType() == BSLParser.IDENTIFIER) {
111+
findVariableSymbol(ctx.getStart().getText()).ifPresent(symbol -> {
112+
Usage usage = VariableUsage.builder()
113+
.range(Ranges.create(ctx.getStart()))
114+
.kind(Usage.Kind.OBJECT)
115+
.build();
116+
symbol.addUsage(usage);
117+
});
118+
}
119+
return super.visitCallStatement(ctx);
120+
}
121+
108122
@Override
109123
public ParseTree visitComplexIdentifier(BSLParser.ComplexIdentifierContext ctx) {
110124
if (ctx.getTokens(BSLParser.IDENTIFIER).size() == 1) {

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/Usage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public interface Usage {
3030
Kind getKind();
3131

3232
enum Kind {
33-
PARAMETER,
34-
OTHER
33+
OTHER,
34+
OBJECT
3535
}
3636

3737
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void test() {
4343
.hasRange(14, 10, 14, 35)
4444
.hasRange(14, 37, 14, 63)
4545
.hasRange(19, 4, 19, 28)
46-
.hasRange(35, 0, 35, 25);
46+
.hasRange(38, 0, 38, 25);
4747

4848
}
4949
}

src/test/resources/diagnostics/UnusedLocalVariableDiagnostic.bsl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525

2626
КонецЕсли;
2727

28+
ПеременнаяОбъектСИспользованием = Обработки.Проверка.Создать();
29+
ПеременнаяОбъектСИспользованием.Выполнить();
30+
2831
КонецФункции
2932

3033
Функция Третья(ЭтоПараметр)

0 commit comments

Comments
 (0)