You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2023/05/09 03:18:59 UTC
[groovy] branch GROOVY_4_0_X updated: GROOVY-11048: Optimisations for bytecode for record generated methods (missing case)
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
new 73e865e494 GROOVY-11048: Optimisations for bytecode for record generated methods (missing case)
73e865e494 is described below
commit 73e865e494b53acfb5c796b9bea791f04d3b28e9
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue May 9 13:18:49 2023 +1000
GROOVY-11048: Optimisations for bytecode for record generated methods (missing case)
---
src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java | 4 ++++
.../codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
index ba10197726..bd726edc21 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -148,6 +148,10 @@ public class GeneralUtils {
return new AttributeExpression(oe, prop);
}
+ public static Expression attrX(final Expression oe, final String propName) {
+ return new AttributeExpression(oe, constX(propName));
+ }
+
public static BinaryExpression binX(final Expression left, final Token token, final Expression right) {
return new BinaryExpression(left, token, right);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
index 0d5bd80d67..679badb958 100644
--- a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
@@ -54,6 +54,7 @@ import static org.codehaus.groovy.ast.ClassHelper.make;
import static org.codehaus.groovy.ast.tools.GeneralUtils.andX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.args;
import static org.codehaus.groovy.ast.tools.GeneralUtils.assignS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.attrX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.callSuperX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.callThisX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.callX;
@@ -363,7 +364,7 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
pNode.getOriginType(), cNode
);
Expression thisX = useGetter ? getterThisX(originType, pNode) : propX(varX("this"), pNode.getName());
- Expression otherX = useGetter ? getterX(originType, otherTyped, pNode) : propX(otherTyped, pNode.getName());
+ Expression otherX = useGetter ? getterX(originType, otherTyped, pNode) : attrX(otherTyped, pNode.getName());
Expression propsEqual = pojo
? callX(OBJECTS_TYPE, EQUALS, args(thisX, otherX))
: hasEqualPropertyX(originType, pNode, otherTyped);