Fix inconsistent overload in TypeLatticeElement
Bug: 72693244
Change-Id: Id22a4e66903125063218434158c6126029bd5157
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
index e0a5707..b63dbb2 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.Value;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Streams;
import java.util.ArrayDeque;
import java.util.HashSet;
import java.util.IdentityHashMap;
@@ -264,9 +265,9 @@
return types.reduce(BottomTypeLatticeElement.getInstance(), joiner, joiner);
}
- public static TypeLatticeElement join(
- Stream<DexType> types, boolean isNullable, AppInfo appInfo) {
- return join(types.map(t -> fromDexType(t, isNullable, appInfo)), appInfo);
+ public static TypeLatticeElement joinTypes(
+ Iterable<DexType> types, boolean isNullable, AppInfo appInfo) {
+ return join(Streams.stream(types).map(t -> fromDexType(t, isNullable, appInfo)), appInfo);
}
/**
diff --git a/src/main/java/com/android/tools/r8/ir/code/MoveException.java b/src/main/java/com/android/tools/r8/ir/code/MoveException.java
index 15ab6b0..8166f6e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/MoveException.java
+++ b/src/main/java/com/android/tools/r8/ir/code/MoveException.java
@@ -122,6 +122,6 @@
@Override
public TypeLatticeElement evaluate(AppInfo appInfo) {
Set<DexType> exceptionTypes = collectExceptionTypes(getBlock(), appInfo.dexItemFactory);
- return TypeLatticeElement.join(exceptionTypes.stream(), false, appInfo);
+ return TypeLatticeElement.joinTypes(exceptionTypes, false, appInfo);
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
index a643947..1853e8b 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
@@ -680,8 +680,7 @@
Position position = source.getCanonicalDebugPositionAtOffset(moveExceptionItem.targetOffset);
if (moveExceptionDest >= 0) {
Set<DexType> exceptionTypes = MoveException.collectExceptionTypes(currentBlock, getFactory());
- TypeLatticeElement typeLattice =
- TypeLatticeElement.join(exceptionTypes.stream(), false, appInfo);
+ TypeLatticeElement typeLattice = TypeLatticeElement.joinTypes(exceptionTypes, false, appInfo);
Value out = writeRegister(moveExceptionDest, typeLattice, ThrowingInfo.NO_THROW, null);
MoveException moveException = new MoveException(out);
moveException.setPosition(position);