diff dmd/interpret/Util.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 d8f19d85fadb
line wrap: on
line diff
--- a/dmd/interpret/Util.d	Mon Aug 30 18:42:04 2010 +0400
+++ b/dmd/interpret/Util.d	Mon Aug 30 16:12:19 2010 +0100
@@ -24,14 +24,14 @@
 {
     if (!arguments || arguments.dim != 1)
 		return null;
-    Expression earg = cast(Expression)arguments.data[0];
+    auto earg = arguments[0];
     earg = earg.interpret(istate);
     if (earg is EXP_CANT_INTERPRET)
 		return null;
     if (earg.op != TOKassocarrayliteral)
 		return null;
-    AssocArrayLiteralExp aae = cast(AssocArrayLiteralExp)earg;
-    Expression e = new IntegerExp(aae.loc, aae.keys.dim, Type.tsize_t);
+    auto aae = cast(AssocArrayLiteralExp)earg;
+    auto e = new IntegerExp(aae.loc, aae.keys.dim, Type.tsize_t);
     return e;
 }
 
@@ -42,14 +42,14 @@
 }
     if (!arguments || arguments.dim != 2)
 		return null;
-    Expression earg = cast(Expression)arguments.data[0];
+    auto earg = arguments[0];
     earg = earg.interpret(istate);
     if (earg is EXP_CANT_INTERPRET)
 		return null;
     if (earg.op != TOKassocarrayliteral)
 		return null;
-    AssocArrayLiteralExp aae = cast(AssocArrayLiteralExp)earg;
-    Expression e = new ArrayLiteralExp(aae.loc, aae.keys);
+    auto aae = cast(AssocArrayLiteralExp)earg;
+    auto e = new ArrayLiteralExp(aae.loc, aae.keys);
     Type elemType = (cast(TypeAArray)aae.type).index;
     e.type = new TypeSArray(elemType, new IntegerExp(arguments ? arguments.dim : 0));
     return e;
@@ -60,14 +60,14 @@
     //printf("interpret_aaValues()\n");
     if (!arguments || arguments.dim != 3)
 		return null;
-    Expression earg = cast(Expression)arguments.data[0];
+    auto earg = arguments[0];
     earg = earg.interpret(istate);
     if (earg is EXP_CANT_INTERPRET)
 		return null;
     if (earg.op != TOKassocarrayliteral)
 		return null;
-    AssocArrayLiteralExp aae = cast(AssocArrayLiteralExp)earg;
-    Expression e = new ArrayLiteralExp(aae.loc, aae.values);
+    auto aae = cast(AssocArrayLiteralExp)earg;
+    auto e = new ArrayLiteralExp(aae.loc, aae.values);
     Type elemType = (cast(TypeAArray)aae.type).next;
     e.type = new TypeSArray(elemType, new IntegerExp(arguments ? arguments.dim : 0));
     //printf("result is %s\n", e.toChars());
@@ -125,16 +125,16 @@
 /***************************************
  * Duplicate the elements array, then set field 'indexToChange' = newelem.
  */
-Expressions changeOneElement(Expressions oldelems, size_t indexToChange, void* newelem)
+Expressions changeOneElement(Expressions oldelems, size_t indexToChange, Expression newelem)
 {
-    Expressions expsx = new Expressions();
+    auto expsx = new Expressions();
     expsx.setDim(oldelems.dim);
     for (size_t j = 0; j < expsx.dim; j++)
     {
 		if (j == indexToChange)
-			expsx.data[j] = newelem;
+			expsx[j] = newelem;
 		else
-			expsx.data[j] = oldelems.data[j];
+			expsx[j] = oldelems[j];
     }
     return expsx;
 }
@@ -144,14 +144,14 @@
  */
 Expressions spliceElements(Expressions oldelems, Expressions newelems, size_t insertpoint)
 {
-    Expressions expsx = new Expressions();
+    auto expsx = new Expressions();
     expsx.setDim(oldelems.dim);
     for (size_t j = 0; j < expsx.dim; j++)
     {
 		if (j >= insertpoint && j < insertpoint + newelems.dim)
-			expsx.data[j] = newelems.data[j - insertpoint];
+			expsx[j] = newelems[j - insertpoint];
 		else
-			expsx.data[j] = oldelems.data[j];
+			expsx[j] = oldelems[j];
     }
     return expsx;
 }
@@ -161,13 +161,13 @@
  */
 ArrayLiteralExp createBlockDuplicatedArrayLiteral(Type type, Expression elem, size_t dim)
 {
-    Expressions elements = new Expressions();
+    auto elements = new Expressions();
     elements.setDim(dim);
     for (size_t i = 0; i < dim; i++) {
-		elements.data[i] = cast(void*)elem;
+		elements[i] = elem;
 	}
 	
-    ArrayLiteralExp ae = new ArrayLiteralExp(Loc(0), elements);
+    auto ae = new ArrayLiteralExp(Loc(0), elements);
     ae.type = type;
     return ae;
 }
@@ -182,7 +182,7 @@
     structelems.setDim(sym.fields.dim);
     for (size_t j = 0; j < structelems.dim; j++)
     {
-		structelems.data[j] = cast(void*)(cast(VarDeclaration)(sym.fields[j])).type.defaultInit(Loc(0));
+		structelems[j] = sym.fields[j].type.defaultInit(Loc(0));
     }
     StructLiteralExp structinit = new StructLiteralExp(loc, sym, structelems);
     // Why doesn't the StructLiteralExp constructor do this, when