Change TreeFixerBase to take AppView<?> after synthetics use it
Change-Id: Ife9b003e829e2c931cec4cfe785425e3d47f1026
diff --git a/src/main/java/com/android/tools/r8/graph/TreeFixerBase.java b/src/main/java/com/android/tools/r8/graph/TreeFixerBase.java
index bfc685f..89d0bd7 100644
--- a/src/main/java/com/android/tools/r8/graph/TreeFixerBase.java
+++ b/src/main/java/com/android/tools/r8/graph/TreeFixerBase.java
@@ -13,14 +13,14 @@
public abstract class TreeFixerBase {
- private final AppView<AppInfoWithLiveness> appView;
+ private final AppView<?> appView;
private final DexItemFactory dexItemFactory;
private final Map<DexType, DexProgramClass> programClassCache = new IdentityHashMap<>();
private final Map<DexType, DexProgramClass> synthesizedFromClasses = new IdentityHashMap<>();
private final Map<DexProto, DexProto> protoFixupCache = new IdentityHashMap<>();
- public TreeFixerBase(AppView<AppInfoWithLiveness> appView) {
+ public TreeFixerBase(AppView<?> appView) {
this.appView = appView;
this.dexItemFactory = appView.dexItemFactory();
}
@@ -51,8 +51,11 @@
public void recordFailedResolutionChanges() {
// In order for optimizations to correctly rewrite field and method references that do not
// resolve, we create a mapping from each failed resolution target to its reference reference.
- appView
- .appInfo()
+ if (!appView.appInfo().hasLiveness()) {
+ return;
+ }
+ AppInfoWithLiveness appInfoWithLiveness = appView.appInfo().withLiveness();
+ appInfoWithLiveness
.getFailedFieldResolutionTargets()
.forEach(
field -> {
@@ -61,8 +64,7 @@
recordFieldChange(field, fixedUpField);
}
});
- appView
- .appInfo()
+ appInfoWithLiveness
.getFailedMethodResolutionTargets()
.forEach(
method -> {