diff --git a/ZenScript/src/main/java/stanhebben/zenscript/expression/ExpressionJavaLambda.java b/ZenScript/src/main/java/stanhebben/zenscript/expression/ExpressionJavaLambda.java index 2b23f87..4656124 100644 --- a/ZenScript/src/main/java/stanhebben/zenscript/expression/ExpressionJavaLambda.java +++ b/ZenScript/src/main/java/stanhebben/zenscript/expression/ExpressionJavaLambda.java @@ -90,6 +90,7 @@ public class ExpressionJavaLambda extends Expression { for (Statement statement : statements) { statement.compile(environmentMethod); } + output.ret(); output.end(); environment.putClass(clsName, cw.toByteArray()); diff --git a/ZenScript/src/main/java/stanhebben/zenscript/statements/Statement.java b/ZenScript/src/main/java/stanhebben/zenscript/statements/Statement.java index 4ab266c..d78c24e 100644 --- a/ZenScript/src/main/java/stanhebben/zenscript/statements/Statement.java +++ b/ZenScript/src/main/java/stanhebben/zenscript/statements/Statement.java @@ -26,7 +26,10 @@ public abstract class Statement { } case T_RETURN: { parser.next(); - ParsedExpression expression = ParsedExpression.read(parser, environment); + ParsedExpression expression = null; + if (parser.peek() != null && !parser.isNext(T_SEMICOLON)) { + expression = ParsedExpression.read(parser, environment); + } parser.required(T_SEMICOLON, "; expected"); return new StatementReturn(next.getPosition(), returnType, expression); }