diff dmd/ReturnStatement.d @ 63:cab4c37afb89

A bunch of implementations
author korDen
date Mon, 23 Aug 2010 16:52:24 +0400
parents 10317f0c89a5
children f708f0452e81
line wrap: on
line diff
--- a/dmd/ReturnStatement.d	Mon Aug 23 03:21:32 2010 +0400
+++ b/dmd/ReturnStatement.d	Mon Aug 23 16:52:24 2010 +0400
@@ -32,6 +32,7 @@
 import dmd.WANT;
 import dmd.VarExp;
 import dmd.VarDeclaration;
+import dmd.GlobalExpressions;
 import dmd.BE;
 import dmd.codegen.Util;
 
@@ -351,9 +352,21 @@
 		return result;
 	}
 	
-    Expression interpret(InterState* istate)
+    Expression interpret(InterState istate)
 	{
-		assert(false);
+version (LOG) {
+		printf("ReturnStatement.interpret(%s)\n", exp ? exp.toChars() : "");
+}
+		mixin(START!());
+		if (!exp)
+			return EXP_VOID_INTERPRET;
+version (LOG) {
+		Expression e = exp.interpret(istate);
+		printf("e = %p\n", e);
+		return e;
+} else {
+		return exp.interpret(istate);
+}
 	}
 
     int inlineCost(InlineCostState* ics)