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 2022/07/27 04:09:03 UTC
[groovy] 02/02: GROOVY-10704: retain order of field-related methods
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit de3baef1d35b350672d97226180527471fa05163
Author: Paul King <pa...@asert.com.au>
AuthorDate: Wed Jul 27 14:08:49 2022 +1000
GROOVY-10704: retain order of field-related methods
---
src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
index 135e82e31e..e13142502e 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
@@ -179,9 +179,10 @@ public abstract class TraitComposer {
cNode.addInterface(fieldHelperClassNode);
// implementation of methods
List<MethodNode> declaredMethods = new LinkedList<>();
+ int pos = 0; // keep direct getters at start but in declaration order
for (MethodNode declaredMethod : fieldHelperClassNode.getAllDeclaredMethods()) {
if (declaredMethod.getName().endsWith(Traits.DIRECT_GETTER_SUFFIX)) {
- declaredMethods.add(0, declaredMethod);
+ declaredMethods.add(pos++, declaredMethod);
} else {
declaredMethods.add(declaredMethod);
}
@@ -190,7 +191,7 @@ public abstract class TraitComposer {
if (staticFieldHelperClassNode != null) {
for (MethodNode declaredMethod : staticFieldHelperClassNode.getAllDeclaredMethods()) {
if (declaredMethod.getName().endsWith(Traits.DIRECT_GETTER_SUFFIX)) {
- declaredMethods.add(0, declaredMethod);
+ declaredMethods.add(pos++, declaredMethod);
} else {
declaredMethods.add(declaredMethod);
}