Although the coding in the dmd looks almost identical for dynamic arrays and associative arrays, following example works only for dynamic arrays. https://github.com/dlang/dmd/blob/master/src/dmd/initsem.d#L634 struct Bar { string s; } struct Foo { Bar[string] asso; Bar[] arr; } void main() { Foo foo = { arr: [{s: "123"}], asso: ["0": {s: "123"}] // not an associative array initializer }; } Although there is an DIP, this might be more a bug fix, as it works well for dynamic arrays. Providing the same support for associative arrays seems natural
*** This issue has been marked as a duplicate of issue 9443 ***