aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/util/GroupedList.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/util/GroupedList.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/GroupedList.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/util/GroupedList.java b/src/main/java/com/google/devtools/build/lib/util/GroupedList.java
index a6f9fbe683..9babacff2b 100644
--- a/src/main/java/com/google/devtools/build/lib/util/GroupedList.java
+++ b/src/main/java/com/google/devtools/build/lib/util/GroupedList.java
@@ -66,12 +66,14 @@ public class GroupedList<T> implements Iterable<Collection<T>> {
// Iterables.getFirst will return null, and null is not instanceof List.
Preconditions.checkState(!(Iterables.getFirst(helper.elements, null) instanceof List),
"Cannot make grouped list of lists: %s", helper);
- Set<T> uniquifier = CompactHashSet.createWithExpectedSize(helper.groupedList.size());
+ Set<T> uniquifier = CompactHashSet.createWithExpectedSize(helper.elements.size());
for (Object item : helper.groupedList) {
if (item instanceof List) {
// Optimize for the case that elements in this list are unique.
ImmutableList.Builder<T> dedupedList = null;
List<T> list = (List<T>) item;
+ Preconditions.checkState(
+ list.size() > 1, "Helper should have compressed small list %s properly", list);
for (int i = 0; i < list.size(); i++) {
T elt = list.get(i);
if (!uniquifier.add(elt)) {
@@ -87,9 +89,7 @@ public class GroupedList<T> implements Iterable<Collection<T>> {
elements.add(list);
} else {
List<T> filteredList = dedupedList.build();
- if (!filteredList.isEmpty()) {
- elements.add(filteredList);
- }
+ addItem(filteredList, elements);
}
} else if (uniquifier.add((T) item)) {
elements.add(item);