You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by cc...@apache.org on 2015/09/13 11:49:07 UTC

incubator-groovy git commit: GROOVY-7387: Avoid usage of comparator to have getters first

Repository: incubator-groovy
Updated Branches:
  refs/heads/master f5923ae83 -> 0551bc423


GROOVY-7387: Avoid usage of comparator to have getters first


Project: http://git-wip-us.apache.org/repos/asf/incubator-groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-groovy/commit/0551bc42
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/0551bc42
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/0551bc42

Branch: refs/heads/master
Commit: 0551bc4239366546066c8d83f1a7dbee017b2aca
Parents: f5923ae
Author: Cedric Champeau <cc...@apache.org>
Authored: Sun Sep 13 11:48:26 2015 +0200
Committer: Cedric Champeau <cc...@apache.org>
Committed: Sun Sep 13 11:48:44 2015 +0200

----------------------------------------------------------------------
 .../groovy/transform/trait/TraitComposer.java   | 22 ++++++++------------
 1 file changed, 9 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/0551bc42/src/main/org/codehaus/groovy/transform/trait/TraitComposer.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/trait/TraitComposer.java b/src/main/org/codehaus/groovy/transform/trait/TraitComposer.java
index 7ad6369..81a5b57 100644
--- a/src/main/org/codehaus/groovy/transform/trait/TraitComposer.java
+++ b/src/main/org/codehaus/groovy/transform/trait/TraitComposer.java
@@ -62,7 +62,6 @@ import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -80,16 +79,7 @@ import static org.codehaus.groovy.ast.tools.GenericsUtils.correctToGenericsSpecR
  * @since 2.3.0
  */
 public abstract class TraitComposer {
-    /**
-     * This comparator is used to make sure that generated direct getters appear first in the list of method
-     * nodes.
-     */
-    private static final Comparator<MethodNode> GETTER_FIRST_COMPARATOR = new Comparator<MethodNode>() {
-        public int compare(final MethodNode o1, final MethodNode o2) {
-            if (o1.getName().endsWith(Traits.DIRECT_GETTER_SUFFIX)) return -1;
-            return 1;
-        }
-    };
+
     public static final ClassNode COMPILESTATIC_CLASSNODE = ClassHelper.make(CompileStatic.class);
 
     /**
@@ -201,8 +191,14 @@ public abstract class TraitComposer {
             // we should implement the field helper interface too
             cNode.addInterface(fieldHelperClassNode);
             // implementation of methods
-            List<MethodNode> declaredMethods = fieldHelperClassNode.getAllDeclaredMethods();
-            Collections.sort(declaredMethods, GETTER_FIRST_COMPARATOR);
+            List<MethodNode> declaredMethods = new LinkedList<MethodNode>();
+            for (MethodNode declaredMethod : fieldHelperClassNode.getAllDeclaredMethods()) {
+                if (declaredMethod.getName().endsWith(Traits.DIRECT_GETTER_SUFFIX)) {
+                    declaredMethods.add(0, declaredMethod);
+                } else {
+                    declaredMethods.add(declaredMethod);
+                }
+            }
             for (MethodNode methodNode : declaredMethods) {
                 String fieldName = methodNode.getName();
                 if (fieldName.endsWith(Traits.DIRECT_GETTER_SUFFIX) || fieldName.endsWith(Traits.DIRECT_SETTER_SUFFIX)) {