Mercurial > projects > ddmd
diff dmd/StructInitializer.d @ 127:9ee9b55452cb
Identifiers, Initializers -> Vector
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Fri, 03 Sep 2010 23:55:51 +0100 |
parents | e28b18c23469 |
children | e6e542f37b94 |
line wrap: on
line diff
--- a/dmd/StructInitializer.d Fri Sep 03 23:25:55 2010 +0100 +++ b/dmd/StructInitializer.d Fri Sep 03 23:55:51 2010 +0100 @@ -52,18 +52,18 @@ override Initializer syntaxCopy() { - StructInitializer ai = new StructInitializer(loc); + auto ai = new StructInitializer(loc); assert(field.dim == value.dim); ai.field.setDim(field.dim); ai.value.setDim(value.dim); for (int i = 0; i < field.dim; i++) { - ai.field.data[i] = field.data[i]; + ai.field[i] = field[i]; - Initializer init = cast(Initializer)value.data[i]; + auto init = value[i]; init = init.syntaxCopy(); - ai.value.data[i] = cast(void*)init; + ai.value[i] = init; } return ai; @@ -72,8 +72,8 @@ void addInit(Identifier field, Initializer value) { //printf("StructInitializer.addInit(field = %p, value = %p)\n", field, value); - this.field.push(cast(void*)field); - this.value.push(cast(void*)value); + this.field.push(field); + this.value.push(value); } override Initializer semantic(Scope sc, Type t) @@ -93,8 +93,8 @@ ad = ts.sym; for (i = 0; i < field.dim; i++) { - Identifier id = cast(Identifier)field.data[i]; - Initializer val = cast(Initializer)value.data[i]; + Identifier id = field[i]; + Initializer val = value[i]; Dsymbol s; VarDeclaration v; @@ -137,7 +137,7 @@ if (s && (v = s.isVarDeclaration()) !is null) { val = val.semantic(sc, v.type); - value.data[i] = cast(void*)val; + value[i] = val; vars.data[i] = cast(void*)v; } else @@ -195,9 +195,9 @@ Expressions elements = new Expressions(); for (size_t i = 0; i < value.dim; i++) { - if (field.data[i]) + if (field[i]) goto Lno; - Initializer iz = cast(Initializer)value.data[i]; + Initializer iz = value[i]; if (!iz) goto Lno; Expression ex = iz.toExpression(); @@ -237,7 +237,7 @@ for (i = 0; i < vars.dim; i++) { VarDeclaration v = cast(VarDeclaration)vars.data[i]; - Initializer val = cast(Initializer)value.data[i]; + Initializer val = value[i]; //printf("vars[%d] = %s\n", i, v.toChars());