Skip to content

Commit 09fb279

Browse files
committed
New expression with parentheses
1 parent 3d4a30b commit 09fb279

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/expressiontree/ExpressionTreeBuildingVisitor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,10 @@ public ParseTree visitNewExpression(BSLParser.NewExpressionContext ctx) {
355355
if (typeName == null) {
356356
// function style
357357
var typeNameArg = args.get(0);
358+
if (typeNameArg.expression() == null) {
359+
operands.push(new ErrorExpressionNode(ctx));
360+
return ctx;
361+
}
358362
args = args.stream().skip(1).toList();
359363
callNode = ConstructorCallNode.createDynamic(makeSubexpression(typeNameArg.expression()));
360364
} else {

src/test/java/com/github/_1c_syntax/bsl/languageserver/utils/expressiontree/ExpressionTreeBuildingVisitorTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,26 @@ static Stream<Arguments> errorHandlingTestCases() {
126126
Процедура Имя()
127127
Если Новый Тогда
128128
129+
КонецЕсли;
130+
КонецПроцедуры
131+
"""
132+
),
133+
Arguments.of(
134+
"New expression with parenthes",
135+
"""
136+
Процедура Имя()
137+
Если Новый ( Тогда
138+
139+
КонецЕсли;
140+
КонецПроцедуры
141+
"""
142+
),
143+
Arguments.of(
144+
"New expression with two parantheses",
145+
"""
146+
Процедура Имя()
147+
Если Новый () Тогда
148+
129149
КонецЕсли;
130150
КонецПроцедуры
131151
"""

0 commit comments

Comments
 (0)