Fixed expression statement reduction in closure attr and body text closures.
This commit is contained in:
parent
2fabe1765a
commit
9c21fb9a83
@ -80,8 +80,9 @@ public class DefaultGroovyBodyNodeTranspiler implements GroovyBodyNodeTranspiler
|
|||||||
if (cl.getParameters() == null) {
|
if (cl.getParameters() == null) {
|
||||||
toLeftShift = cl;
|
toLeftShift = cl;
|
||||||
} else {
|
} else {
|
||||||
final Statement stmt = cl.getCode();
|
final BlockStatement blockStatement = (BlockStatement) cl.getCode();
|
||||||
if (stmt instanceof ExpressionStatement exprStmt) {
|
final List<Statement> statements = blockStatement.getStatements();
|
||||||
|
if (statements.size() == 1 && statements.getFirst() instanceof ExpressionStatement exprStmt) {
|
||||||
toLeftShift = exprStmt.getExpression();
|
toLeftShift = exprStmt.getExpression();
|
||||||
} else {
|
} else {
|
||||||
toLeftShift = cl;
|
toLeftShift = cl;
|
||||||
|
@ -10,8 +10,11 @@ import org.codehaus.groovy.ast.expr.Expression;
|
|||||||
import org.codehaus.groovy.ast.stmt.BlockStatement;
|
import org.codehaus.groovy.ast.stmt.BlockStatement;
|
||||||
import org.codehaus.groovy.ast.stmt.EmptyStatement;
|
import org.codehaus.groovy.ast.stmt.EmptyStatement;
|
||||||
import org.codehaus.groovy.ast.stmt.ExpressionStatement;
|
import org.codehaus.groovy.ast.stmt.ExpressionStatement;
|
||||||
|
import org.codehaus.groovy.ast.stmt.Statement;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static groowt.view.component.web.transpile.TranspilerUtil.getStringLiteral;
|
import static groowt.view.component.web.transpile.TranspilerUtil.getStringLiteral;
|
||||||
|
|
||||||
public class DefaultValueNodeTranspiler implements ValueNodeTranspiler {
|
public class DefaultValueNodeTranspiler implements ValueNodeTranspiler {
|
||||||
@ -35,8 +38,8 @@ public class DefaultValueNodeTranspiler implements ValueNodeTranspiler {
|
|||||||
convertedClosure.visit(positionVisitor);
|
convertedClosure.visit(positionVisitor);
|
||||||
|
|
||||||
final BlockStatement closureCode = (BlockStatement) convertedClosure.getCode();
|
final BlockStatement closureCode = (BlockStatement) convertedClosure.getCode();
|
||||||
if (!closureCode.isEmpty()
|
final List<Statement> statements = closureCode.getStatements();
|
||||||
&& closureCode.getStatements().getFirst() instanceof ExpressionStatement expressionStatement) {
|
if (statements.size() == 1 && statements.getFirst() instanceof ExpressionStatement expressionStatement) {
|
||||||
return expressionStatement.getExpression();
|
return expressionStatement.getExpression();
|
||||||
}
|
}
|
||||||
return convertedClosure;
|
return convertedClosure;
|
||||||
|
Loading…
Reference in New Issue
Block a user