From 99a30431af485adb4df2f8aa29d344813a31100e Mon Sep 17 00:00:00 2001 From: Scott Murphy <scott@alwaysvip.com> Date: Wed, 18 Sep 2024 11:39:11 -0700 Subject: [PATCH] Revert "Working on #13486" --- .../compiler/web/ControllerActionTransformer.java | 15 ++++++++++----- .../web/commandobjects/CommandObjectsSpec.groovy | 7 ------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java b/grails-plugin-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java index 096547ad9e6..3cbc4ecd8a7 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java +++ b/grails-plugin-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java @@ -29,6 +29,7 @@ import grails.web.controllers.ControllerMethod; import groovy.lang.Closure; import groovy.transform.CompilationUnitAware; +import org.apache.groovy.ast.tools.AnnotatedNodeUtils; import org.apache.groovy.ast.tools.ClassNodeUtils; import org.codehaus.groovy.ast.ASTNode; import org.codehaus.groovy.ast.AnnotationNode; @@ -97,7 +98,6 @@ import java.util.Map; import java.util.regex.Pattern; -import static org.codehaus.groovy.ast.tools.GeneralUtils.*; import static org.grails.compiler.injection.GrailsASTUtils.applyDefaultMethodTarget; import static org.grails.compiler.injection.GrailsASTUtils.applyMethodTarget; import static org.grails.compiler.injection.GrailsASTUtils.buildGetMapExpression; @@ -843,11 +843,16 @@ protected void initializeAndValidateCommandObjectParameter(final BlockStatement protected void initializeCommandObjectParameter(final BlockStatement wrapper, final ClassNode commandObjectNode, final String paramName, SourceUnit source) { - final ArgumentListExpression initializeCommandObjectArguments = args(classX(commandObjectNode), constX(paramName)); - final MethodCallExpression initializeCommandObjectMethodCall = callThisX("initializeCommandObject", initializeCommandObjectArguments); + + final ArgumentListExpression initializeCommandObjectArguments = new ArgumentListExpression(); + initializeCommandObjectArguments.addExpression(new ClassExpression(commandObjectNode)); + initializeCommandObjectArguments.addExpression(new ConstantExpression(paramName)); + final MethodCallExpression initializeCommandObjectMethodCall = new MethodCallExpression(new VariableExpression("this"), "initializeCommandObject", initializeCommandObjectArguments); applyDefaultMethodTarget(initializeCommandObjectMethodCall, commandObjectNode); - final Expression assignCommandObjectToParameter = declX(localVarX(paramName), initializeCommandObjectMethodCall); - wrapper.addStatement(stmt(assignCommandObjectToParameter)); + + final Expression assignCommandObjectToParameter = new BinaryExpression(new VariableExpression(paramName), Token.newSymbol(Types.EQUALS, 0, 0), initializeCommandObjectMethodCall); + + wrapper.addStatement(new ExpressionStatement(assignCommandObjectToParameter)); } /** diff --git a/grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/CommandObjectsSpec.groovy b/grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/CommandObjectsSpec.groovy index f65f884d599..a7c14fe59c7 100644 --- a/grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/CommandObjectsSpec.groovy +++ b/grails-test-suite-web/src/test/groovy/org/grails/web/commandobjects/CommandObjectsSpec.groovy @@ -316,13 +316,6 @@ class TestController { [command: co] } - private seeIssue13486() { - // the presence of this local variable could break - // the compile-time generated no-arg methodActionWithDate() - // see https://github.com/grails/grails-core/issues/13486 - String co - } - def methodActionWithArtist(Artist a) { [artist: a] }