ArrayMemberInitialization, StructMemberInitializer
Unknown W. Brackets
unknown at simplemachines.org
Sat Mar 4 21:44:16 PST 2006
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]
More information about the Digitalmars-d-bugs
mailing list