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;
 				}
 			}