Mercurial > projects > ddmd
diff dmd/ArrayInitializer.d @ 84:be2ab491772e
Expressions -> Vector!Expression
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Mon, 30 Aug 2010 16:12:19 +0100 |
parents | 43073c7c7769 |
children | 39648eb578f6 |
line wrap: on
line diff
--- a/dmd/ArrayInitializer.d Mon Aug 30 18:42:04 2010 +0400 +++ b/dmd/ArrayInitializer.d Mon Aug 30 16:12:19 2010 +0100 @@ -51,10 +51,10 @@ ai.value.setDim(value.dim); for (int i = 0; i < ai.value.dim; i++) { - Expression e = cast(Expression)index.data[i]; + Expression e = index[i]; if (e) e = e.syntaxCopy(); - ai.index.data[i] = cast(void*)e; + ai.index[i] = e; Initializer init = cast(Initializer)value.data[i]; init = init.syntaxCopy(); @@ -65,7 +65,7 @@ void addInit(Expression index, Initializer value) { - this.index.push(cast(void*)index); + this.index.push(index); this.value.push(cast(void*)value); dim = 0; type = null; @@ -73,7 +73,6 @@ override Initializer semantic(Scope sc, Type t) { - uint i; uint length; //printf("ArrayInitializer.semantic(%s)\n", t.toChars()); @@ -96,17 +95,15 @@ } length = 0; - for (i = 0; i < index.dim; i++) + foreach (size_t i, Expression idx; index) { - Expression idx; Initializer val; - idx = cast(Expression)index.data[i]; if (idx) { idx = idx.semantic(sc); idx = idx.optimize(WANTvalue | WANTinterpret); - index.data[i] = cast(void*)idx; + index[i] = idx; length = cast(uint)idx.toInteger(); } @@ -231,7 +228,7 @@ { goto Lno; } - elements.data[j] = cast(void*)ex; + elements[j] = ex; } /* Fill in any missing elements with the default initializer @@ -246,7 +243,7 @@ goto Lno; if (!init) init = (cast(TypeNext)t).next.defaultInit(Loc(0)); - elements.data[i] = cast(void*)init; + elements[i] = init; } }