Make RootSetBuilder independent of AppInfo variant.
Bug: 132204801
Change-Id: Iee3c8d586745cd56544934d99eb41cc14b166a02
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
index 19c297c..d56efda 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -64,7 +64,7 @@
public class RootSetBuilder {
- private final AppView<?> appView;
+ private final AppView<? extends AppInfoWithSubtyping> appView;
private final DirectMappedDexApplication application;
private final Iterable<? extends ProguardConfigurationRule> rules;
private final Map<DexReference, Set<ProguardKeepRule>> noShrinking = new IdentityHashMap<>();
@@ -96,7 +96,7 @@
private final Set<ProguardIfRule> ifRules = Sets.newIdentityHashSet();
public RootSetBuilder(
- AppView<?> appView,
+ AppView<? extends AppInfoWithSubtyping> appView,
DexApplication application,
Iterable<? extends ProguardConfigurationRule> rules) {
this.appView = appView;
@@ -105,7 +105,8 @@
this.options = appView.options();
}
- RootSetBuilder(AppView<?> appView, Collection<ProguardIfRule> ifRules) {
+ RootSetBuilder(
+ AppView<? extends AppInfoWithSubtyping> appView, Collection<ProguardIfRule> ifRules) {
this(appView, appView.appInfo().app(), ifRules);
}
@@ -187,10 +188,8 @@
} else if (rule instanceof ProguardAssumeMayHaveSideEffectsRule
|| rule instanceof ProguardAssumeNoSideEffectRule) {
markMatchingVisibleMethods(clazz, memberKeepRules, rule, null, true);
- if (appView.appInfo().hasSubtyping()) {
- markMatchingOverriddenMethods(
- appView.appInfo().withSubtyping(), clazz, memberKeepRules, rule, null, true);
- }
+ markMatchingOverriddenMethods(
+ appView.appInfo(), clazz, memberKeepRules, rule, null, true);
markMatchingVisibleFields(clazz, memberKeepRules, rule, null, true);
} else if (rule instanceof ClassMergingRule) {
if (allRulesSatisfied(memberKeepRules, clazz)) {