Disable state pruning when using legacy modifier
Change-Id: I6fadbf7afb9b00d93f54c09197001f33b1d42603
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index 5b459c3..8f6b03f 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -497,18 +497,21 @@
@Override
public void notifyHorizontalClassMergerFinished(
HorizontalClassMerger.Mode horizontalClassMergerMode) {
- if (horizontalClassMergerMode.isInitial()) {
- methodAccessInfoCollection.destroy();
+ if (horizontalClassMergerMode.isInitial()
+ && !options().getAccessModifierOptions().isLegacyAccessModifierEnabled()) {
+ getMethodAccessInfoCollection().destroy();
}
}
public void notifyMemberRebindingFinished(AppView<AppInfoWithLiveness> appView) {
getFieldAccessInfoCollection().restrictToProgram(appView);
- getMethodAccessInfoCollection().destroyNonDirectNonSuperInvokes();
+ if (!options().getAccessModifierOptions().isLegacyAccessModifierEnabled()) {
+ getMethodAccessInfoCollection().destroyNonDirectNonSuperInvokes();
+ }
}
public void notifyRedundantBridgeRemoverFinished(boolean initial) {
- if (initial) {
+ if (initial && !options().getAccessModifierOptions().isLegacyAccessModifierEnabled()) {
getMethodAccessInfoCollection().destroySuperInvokes();
}
}
@@ -516,7 +519,9 @@
@Override
public void notifyMinifierFinished() {
liveMethods = ThrowingSet.get();
- methodAccessInfoCollection.destroy();
+ if (!options().getAccessModifierOptions().isLegacyAccessModifierEnabled()) {
+ getMethodAccessInfoCollection().destroy();
+ }
}
public void notifyTreePrunerFinished(Enqueuer.Mode mode) {