digitalmars.D.bugs - [Bug 39] New: ArrayMemberInitialization, StructMemberInitializer inconsistencies from dmd's behavior
- d-bugmail puremagic.com (51/51) Mar 12 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=39
http://d.puremagic.com/bugzilla/show_bug.cgi?id=39 Summary: ArrayMemberInitialization, StructMemberInitializer inconsistencies from dmd's behavior Product: D Version: 0.149 Platform: Macintosh OS/Version: Mac OS X Status: NEW Severity: normal Priority: P2 Component: www.digitalmars.com AssignedTo: bugzilla digitalmars.com ReportedBy: braddr puremagic.com 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 --
Mar 12 2006