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)