Thread overview
Struct initialization extra comma - should it compile
Apr 25, 2021
JN
Apr 25, 2021
Bastiaan Veelo
Apr 25, 2021
Paul Backus
April 25, 2021
    struct Foo
    {
        int x, y, z;
    }

    void main()
    {
         Foo bar = Foo(1,);
    }

This compiles without syntax errors, is this expected?

April 25, 2021

On Sunday, 25 April 2021 at 13:39:54 UTC, JN wrote:

>
    struct Foo
    {
        int x, y, z;
    }

    void main()
    {
         Foo bar = Foo(1,);
    }

This compiles without syntax errors, is this expected?

Yes, the specification is like this:

StructMemberInitializers:
    StructMemberInitializer
    StructMemberInitializer ,
    StructMemberInitializer , StructMemberInitializers

— Bastiaan.

April 25, 2021

On Sunday, 25 April 2021 at 13:39:54 UTC, JN wrote:

>
    struct Foo
    {
        int x, y, z;
    }

    void main()
    {
         Foo bar = Foo(1,);
    }

This compiles without syntax errors, is this expected?

Yes, D allows trailing commas in argument lists.