Mercurial > projects > ddmd
comparison dmd/IdentityExp.d @ 135:af1bebfd96a4 dmd2037
dmd 2.038
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Mon, 13 Sep 2010 22:19:42 +0100 |
parents | 6caaf0256da1 |
children | e3afd1303184 |
comparison
equal
deleted
inserted
replaced
134:4251f96733f4 | 135:af1bebfd96a4 |
---|---|
51 assert(false); | 51 assert(false); |
52 } | 52 } |
53 | 53 |
54 override Expression optimize(int result) | 54 override Expression optimize(int result) |
55 { | 55 { |
56 Expression e; | |
57 | |
58 //printf("IdentityExp.optimize(result = %d) %s\n", result, toChars()); | 56 //printf("IdentityExp.optimize(result = %d) %s\n", result, toChars()); |
59 e1 = e1.optimize(WANT.WANTvalue | (result & WANT.WANTinterpret)); | 57 e1 = e1.optimize(WANT.WANTvalue | (result & WANT.WANTinterpret)); |
60 e2 = e2.optimize(WANT.WANTvalue | (result & WANT.WANTinterpret)); | 58 e2 = e2.optimize(WANT.WANTvalue | (result & WANT.WANTinterpret)); |
61 e = this; | 59 Expression e = this; |
62 | 60 |
63 if ((this.e1.isConst() && this.e2.isConst()) || (this.e1.op == TOK.TOKnull && this.e2.op == TOK.TOKnull)) | 61 if ((this.e1.isConst() && this.e2.isConst()) || (this.e1.op == TOK.TOKnull && this.e2.op == TOK.TOKnull)) |
64 { | 62 { |
65 e = Identity(op, type, this.e1, this.e2); | 63 e = Identity(op, type, this.e1, this.e2); |
66 if (e is EXP_CANT_INTERPRET) | 64 if (e is EXP_CANT_INTERPRET) |