diff dmd/StructLiteralExp.d @ 90:39648eb578f6

more Expressions work
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Mon, 30 Aug 2010 20:27:56 +0100
parents 8e69d041a99d
children ceda59b4d255
line wrap: on
line diff
--- a/dmd/StructLiteralExp.d	Mon Aug 30 19:58:14 2010 +0400
+++ b/dmd/StructLiteralExp.d	Mon Aug 30 20:27:56 2010 +0100
@@ -165,7 +165,7 @@
 		{
 			//printf("\ti = %d\n", i);
 			assert(i < elements.dim);
-			e = cast(Expression)elements.data[i];
+			e = elements[i];
 			if (e)
 			{
 				//writef("e = %s, e.type = %s\n", e.toChars(), e.type.toChars());
@@ -180,7 +180,7 @@
 					Expressions z = new Expressions;
 					z.setDim(length);
 					for (int q = 0; q < length; ++q)
-						z.data[q] = e.copy();
+						z[q] = e.copy();
 					e = new ArrayLiteralExp(loc, z);
 					e.type = type;
 				}
@@ -206,7 +206,7 @@
 	
 				if (offset == v.offset && type.size() == v.type.size())
 				{
-					Expression e = cast(Expression)elements.data[i];
+					auto e = elements[i];
 					if (e)
 					{
 						return i;
@@ -386,9 +386,8 @@
 	{
 		bool f = 0;
 
-		for (size_t i = 0; i < elements.dim; i++)
+		foreach (e; elements)
 		{
-			Expression e = cast(Expression)elements.data[i];
 			if (!e)
 				continue;
 	
@@ -413,7 +412,7 @@
 		buf.printf("S%u", dim);
 		for (size_t i = 0; i < dim; i++)
 	    {
-			Expression e = cast(Expression)elements.data[i];
+			auto e = elements[i];
 			if (e)
 				e.toMangleBuffer(buf);
 			else