Mercurial > projects > ddmd
diff dmd/BoolExp.d @ 141:7171e6ea651d
+ Expression.toElem
+ Expression.toDt
+ Expression.isBit
+ BoolExp.optimize
author | Trass3r |
---|---|
date | Tue, 14 Sep 2010 02:38:37 +0200 |
parents | e28b18c23469 |
children | 3685b521ed05 |
line wrap: on
line diff
--- a/dmd/BoolExp.d Tue Sep 14 01:54:48 2010 +0200 +++ b/dmd/BoolExp.d Tue Sep 14 02:38:37 2010 +0200 @@ -24,7 +24,7 @@ override Expression semantic(Scope sc) { - UnaExp.semantic(sc); + super.semantic(sc); e1 = resolveProperties(sc, e1); e1 = e1.checkToBoolean(); type = Type.tboolean; @@ -33,7 +33,16 @@ override Expression optimize(int result) { - assert(false); + Expression e; + + e1 = e1.optimize(result); + if (e1.isConst() == 1) + { + e = Bool(type, e1); + } + else + e = this; + return e; } override Expression interpret(InterState istate)