aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
diff options
context:
space:
mode:
authorGravatar dmarting <dmarting@google.com>2017-10-05 03:07:12 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-10-06 19:46:13 +0200
commit9ae2adc3e756ceab641930e79518b40364cb0bc3 (patch)
treea65191aa2cb4dfb067e93e5086b89b6c09f4cda3 /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
parente7af2092ab8f75d314e272a686e9181130f3b22f (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/com/google/devtools/build/lib/syntax/FuncallExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java5
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()) {