comparison dmd/MinAssignExp.d @ 130:60bb0fe4563e

dmdfe 2.037 first main iteration
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Thu, 09 Sep 2010 22:51:44 +0100
parents 9e39c7de8438
children e3afd1303184
comparison
equal deleted inserted replaced
129:010eb8f0e18d 130:60bb0fe4563e
12 import dmd.Identifier; 12 import dmd.Identifier;
13 import dmd.IRState; 13 import dmd.IRState;
14 import dmd.TY; 14 import dmd.TY;
15 import dmd.TOK; 15 import dmd.TOK;
16 import dmd.Id; 16 import dmd.Id;
17 import dmd.ArrayLengthExp;
17 18
18 import dmd.backend.elem; 19 import dmd.backend.elem;
19 import dmd.backend.Util; 20 import dmd.backend.Util;
20 import dmd.backend.OPER; 21 import dmd.backend.OPER;
21 22
37 e2 = resolveProperties(sc, e2); 38 e2 = resolveProperties(sc, e2);
38 39
39 e = op_overload(sc); 40 e = op_overload(sc);
40 if (e) 41 if (e)
41 return e; 42 return e;
43
44 if (e1.op == TOKarraylength)
45 {
46 e = ArrayLengthExp.rewriteOpAssign(this);
47 e = e.semantic(sc);
48 return e;
49 }
42 50
43 if (e1.op == TOKslice) 51 if (e1.op == TOKslice)
44 { // T[] -= ... 52 { // T[] -= ...
45 typeCombine(sc); 53 typeCombine(sc);
46 type = e1.type; 54 type = e1.type;
77 override void buildArrayIdent(OutBuffer buf, Expressions arguments) 85 override void buildArrayIdent(OutBuffer buf, Expressions arguments)
78 { 86 {
79 AssignExp_buildArrayIdent(buf, arguments, "Min"); 87 AssignExp_buildArrayIdent(buf, arguments, "Min");
80 } 88 }
81 89
82 override Expression buildArrayLoop(Arguments fparams) 90 override Expression buildArrayLoop(Parameters fparams)
83 { 91 {
84 return AssignExp_buildArrayLoop!(typeof(this))(fparams); 92 return AssignExp_buildArrayLoop!(typeof(this))(fparams);
85 } 93 }
86 94
87 override Identifier opId() /* For operator overloading */ 95 override Identifier opId() /* For operator overloading */