Mercurial > projects > ddmd
diff dmd/CastExp.d @ 129:010eb8f0e18d
further work on dmd test suite
author | korDen |
---|---|
date | Sun, 05 Sep 2010 15:32:22 +0400 |
parents | 9e39c7de8438 |
children | 60bb0fe4563e |
line wrap: on
line diff
--- a/dmd/CastExp.d Sat Sep 04 01:33:05 2010 +0100 +++ b/dmd/CastExp.d Sun Sep 05 15:32:22 2010 +0400 @@ -2,6 +2,7 @@ import dmd.common; import dmd.Expression; +import dmd.GlobalExpressions; import dmd.TY; import dmd.TypeStruct; import dmd.ErrorExp; @@ -365,7 +366,22 @@ override Expression interpret(InterState istate) { - assert(false); + Expression e; + Expression e1; + +version (LOG) { + printf("CastExp.interpret() %.*s\n", toChars()); +} + e1 = this.e1.interpret(istate); + if (e1 is EXP_CANT_INTERPRET) + goto Lcant; + return Cast(type, to, e1); + + Lcant: +version (LOG) { + printf("CastExp.interpret() %.*s CANT\n", toChars()); +} + return EXP_CANT_INTERPRET; } override bool checkSideEffect(int flag)