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);
                     }