Mercurial > projects > ddmd
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 */