diff options
author | dmarting <dmarting@google.com> | 2017-10-05 03:07:12 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-10-06 19:46:13 +0200 |
commit | 9ae2adc3e756ceab641930e79518b40364cb0bc3 (patch) | |
tree | a65191aa2cb4dfb067e93e5086b89b6c09f4cda3 /src/main/java | |
parent | e7af2092ab8f75d314e272a686e9181130f3b22f (diff) |
Skylark Documentation: sort methods by method signature
getMethods ordering is not guaranteed and actually change
depending on minor difference in the class path.
PiperOrigin-RevId: 171093246
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java index de65acefd1..133cc00fda 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java @@ -21,6 +21,7 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.devtools.build.lib.events.Location; @@ -39,6 +40,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -138,7 +140,8 @@ public final class FuncallExpression extends Expression { */ public static ImmutableMap<Method, SkylarkCallable> collectSkylarkMethodsWithAnnotation( Class<?> classObj) { - ImmutableMap.Builder<Method, SkylarkCallable> methodMap = ImmutableMap.builder(); + ImmutableSortedMap.Builder<Method, SkylarkCallable> methodMap + = ImmutableSortedMap.orderedBy(Comparator.comparing(Object::toString)); for (Method method : classObj.getMethods()) { // Synthetic methods lead to false multiple matches if (!method.isSynthetic()) { |