Disallow minification of referenced types from unresolvable methods
Change-Id: I3574ab55206430555f92e4e31a4e2658a0315300
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index 40a566f..1df8107 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -3437,16 +3437,16 @@
}
});
- // Disallow optimization of types referenced from unresolvable methods. The graph lenses created
- // by various optimizations only store mappings for method definitions, thus no lenses contain
- // mappings for unresolvable methods. This can be problematic if an unresolvable method refers
- // to a class that no longer exists as a result of an optimization.
+ // Disallow minification and optimization of types referenced from unresolvable methods. The
+ // graph lenses created by various optimizations only store mappings for method definitions,
+ // thus no lenses contain mappings for unresolvable methods. This can be problematic if an
+ // unresolvable method refers to a class that no longer exists as a result of an optimization.
for (DexType referencedType : symbolicMethod.getReferencedBaseTypes(appView.dexItemFactory())) {
if (referencedType.isClassType()) {
DexProgramClass clazz = asProgramClassOrNull(definitionFor(referencedType, context));
if (clazz != null) {
applyMinimumKeepInfoWhenLive(
- clazz, KeepClassInfo.newEmptyJoiner().disallowOptimization());
+ clazz, KeepClassInfo.newEmptyJoiner().disallowMinification().disallowOptimization());
}
}
}
diff --git a/src/test/java/com/android/tools/r8/classmerging/horizontal/UnresolvableMethodWithClassMergingTest.java b/src/test/java/com/android/tools/r8/classmerging/horizontal/UnresolvableMethodWithClassMergingTest.java
index bfa57f9..c8a33ee 100644
--- a/src/test/java/com/android/tools/r8/classmerging/horizontal/UnresolvableMethodWithClassMergingTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/horizontal/UnresolvableMethodWithClassMergingTest.java
@@ -22,7 +22,6 @@
.addDontWarn(Missing.class)
.addHorizontallyMergedClassesInspector(
HorizontallyMergedClassesInspector::assertNoOtherClassesMerged)
- .noMinification()
.setMinApi(parameters.getApiLevel())
.compile()
.addRunClasspathFiles(buildOnDexRuntime(parameters, Missing.class))