Disable enum unboxing in compilation-steps
Change-Id: Ieafc3ddd9b1a89d6aa2b78cab6ecfdb67f4ee11f
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 9a0e76a..555b71f 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -285,7 +285,13 @@
InterfaceMethodRewriter.checkForAssumedLibraryTypes(appView.appInfo(), options);
BackportedMethodRewriter.registerAssumedLibraryTypes(options);
if (options.enableEnumUnboxing) {
- EnumUnboxingCfMethods.registerSynthesizedCodeReferences(options.itemFactory);
+ if (application.definitionFor(options.itemFactory.enumUnboxingUtilityType) != null) {
+ // The enum unboxing utility class can be created only during cf to dex compilation.
+ // If this is true, we are recompiling the dex application with R8 (compilation-steps).
+ options.enableEnumUnboxing = false;
+ } else {
+ EnumUnboxingCfMethods.registerSynthesizedCodeReferences(options.itemFactory);
+ }
}
List<ProguardConfigurationRule> synthesizedProguardRules = new ArrayList<>();