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)) {