Make rule.getLabels deterministic.
HashMultimap provides no guarantee on the iteration order.
--
MOS_MIGRATED_REVID=90153110
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
index 0b6c0ea..c303541 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
@@ -22,6 +22,7 @@
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
@@ -438,7 +439,7 @@
* result iff (the predicate returned {@code true} and the labels are not outputs)
*/
public Collection<Label> getLabels(final BinaryPredicate<Rule, Attribute> predicate) {
- return getTransitions(predicate).values();
+ return ImmutableSortedSet.copyOf(getTransitions(predicate).values());
}
/**