Track 'new' expressions in the named argument offset list as well.

This commit is contained in:
Mathis Beer 2025-09-25 17:34:54 +02:00
parent 9842daff3a
commit c4ea14c879
5 changed files with 22 additions and 6 deletions

View File

@ -454,14 +454,25 @@ final class FormatVisitor : ASTVisitor
override void visit(const FunctionCallExpression functionCall)
{
// Check if function has any arguments.
if (functionCall.arguments.namedArgumentList is null)
visit(functionCall.arguments);
functionCall.accept(this);
}
override void visit(const NewExpression newCall)
{
visit(newCall.arguments);
newCall.accept(this);
}
private void visit(const Arguments arguments)
{
// Check if call has any arguments.
if (!arguments || arguments.namedArgumentList is null)
{
functionCall.accept(this);
return;
}
foreach (item; functionCall.arguments.namedArgumentList.items)
foreach (item; arguments.namedArgumentList.items)
{
// Do nothing if not a named argument.
if (item.name == tok!"")
@ -479,8 +490,6 @@ final class FormatVisitor : ASTVisitor
}
}
}
functionCall.accept(this);
}
private:

View File

@ -30,4 +30,5 @@ void main()
void test()
{
return Struct(foo: field.foo, bar: field.bar, baz: field.baz);
return new Class(foo: field.foo, bar: field.bar, baz: field.baz);
}

View File

@ -35,4 +35,8 @@ void test() {
foo: field.foo,
bar: field.bar,
baz: field.baz);
return new Class(
foo: field.foo,
bar: field.bar,
baz: field.baz);
}

View File

@ -29,4 +29,5 @@ void main()
void test()
{
return Struct(foo: field.foo, bar: field.bar, baz: field.baz);
return new Class(foo: field.foo, bar: field.bar, baz: field.baz);
}

View File

@ -25,4 +25,5 @@ void main() {
void test() {
return Struct(foo: field.foo, bar: field.bar, baz: field.baz);
return new Class(foo: field.foo, bar: field.bar, baz: field.baz);
}