auto a = [1:2];
Matches both the ArrayInitializer rule and the ExpInitializer rule because the ArrayInitializer rule is a copy of the AssocArrayLiteral and ArrayLiteral rules. I suggest removing the ArrayInitializer, ArrayMemberInitialization, and ArrayMemberInitializations rules from the language spec.
Comment #1 by bearophile_hugs — 2014-09-18T21:01:41Z
See Issue 4703
Comment #2 by briancschott — 2014-09-18T22:24:27Z
Never mind. You can't put a struct initializer inside of an array literal, so this won't work.
Now if {} wasn't a function literal, we could just make struct initializers part of primary expressions and be done with it.