diff dmd/AddAssignExp.d @ 12:832f71e6f96c

*Exp and *AssignExp arrayOp implementation added (might be a bit incomplete) Some unittest-specific functions implemented
author korDen
date Mon, 12 Apr 2010 15:13:00 +0400
parents 10317f0c89a5
children cab4c37afb89
line wrap: on
line diff
--- a/dmd/AddAssignExp.d	Wed Mar 31 16:29:36 2010 +0400
+++ b/dmd/AddAssignExp.d	Mon Apr 12 15:13:00 2010 +0400
@@ -5,6 +5,8 @@
 import dmd.Expression;
 import dmd.Scope;
 import dmd.InterState;
+import dmd.Argument;
+import dmd.STC;
 import dmd.OutBuffer;
 import dmd.ArrayTypes;
 import dmd.Identifier;
@@ -143,12 +145,19 @@
 	
     void buildArrayIdent(OutBuffer buf, Expressions arguments)
 	{
-		assert(false);
+		AssignExp_buildArrayIdent(buf, arguments, "Add");
 	}
 	
     Expression buildArrayLoop(Arguments fparams)
 	{
-		assert(false);
+		/* Evaluate assign expressions right to left		
+		 */								
+		Expression ex2 = e2.buildArrayLoop(fparams);		
+		Expression ex1 = e1.buildArrayLoop(fparams);		
+		Argument param = cast(Argument)fparams.data[0];		
+		param.storageClass = STCundefined;					
+		Expression e = new AddAssignExp(Loc(0), ex1, ex2);		
+		return e;							
 	}
 
     Identifier opId()    /* For operator overloading */