digitalmars.D.bugs - ArrayMemberInitialization, StructMemberInitializer
- Unknown W. Brackets (42/42) Mar 04 2006 Currently, the spec describes ArrayMemberInitialization so:
Currently, the spec describes ArrayMemberInitialization so: ArrayMemberInitialization: AssignExpression AssignExpression : AssignExpression However, considering the following: struct test { int i; } static test[] tests = [ {1}, ]; Compiles just fine, I believe the spec to be incorrect. Instead, it might be: ArrayMemberInitialization: AssignExpression AssignExpression : AssignExpression StructInitializer AssignExpression : StructInitializer ArrayInitializer AssignExpression : ArrayInitializer That said, this compiles too: struct test { int[] i; } static test tests = { [1, 2, 3] }; So it might seem that StructMemberInitializer would need the reverse change, becoming: StructMemberInitializer: AssignExpression Identifier : AssignExpression ArrayInitializer Identifier : ArrayInitializer StructInitializer Identifier : StructInitializer However, this may still not be entirely correct. Especially if we ever get any form of array literals in non-constant expressions. Thanks, -[Unknown]
Mar 04 2006