diff --git a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyBodyNodeTranspiler.java b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyBodyNodeTranspiler.java index d25bc6a..50d6f89 100644 --- a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyBodyNodeTranspiler.java +++ b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyBodyNodeTranspiler.java @@ -80,8 +80,9 @@ public class DefaultGroovyBodyNodeTranspiler implements GroovyBodyNodeTranspiler if (cl.getParameters() == null) { toLeftShift = cl; } else { - final Statement stmt = cl.getCode(); - if (stmt instanceof ExpressionStatement exprStmt) { + final BlockStatement blockStatement = (BlockStatement) cl.getCode(); + final List statements = blockStatement.getStatements(); + if (statements.size() == 1 && statements.getFirst() instanceof ExpressionStatement exprStmt) { toLeftShift = exprStmt.getExpression(); } else { toLeftShift = cl; diff --git a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultValueNodeTranspiler.java b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultValueNodeTranspiler.java index 60be4bc..9743d55 100644 --- a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultValueNodeTranspiler.java +++ b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultValueNodeTranspiler.java @@ -10,8 +10,11 @@ import org.codehaus.groovy.ast.expr.Expression; import org.codehaus.groovy.ast.stmt.BlockStatement; import org.codehaus.groovy.ast.stmt.EmptyStatement; import org.codehaus.groovy.ast.stmt.ExpressionStatement; +import org.codehaus.groovy.ast.stmt.Statement; import org.jetbrains.annotations.Nullable; +import java.util.List; + import static groowt.view.component.web.transpile.TranspilerUtil.getStringLiteral; public class DefaultValueNodeTranspiler implements ValueNodeTranspiler { @@ -35,8 +38,8 @@ public class DefaultValueNodeTranspiler implements ValueNodeTranspiler { convertedClosure.visit(positionVisitor); final BlockStatement closureCode = (BlockStatement) convertedClosure.getCode(); - if (!closureCode.isEmpty() - && closureCode.getStatements().getFirst() instanceof ExpressionStatement expressionStatement) { + final List statements = closureCode.getStatements(); + if (statements.size() == 1 && statements.getFirst() instanceof ExpressionStatement expressionStatement) { return expressionStatement.getExpression(); } return convertedClosure;