Mercurial > projects > ddmd
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)