Enable unboxing enums with subtypes
Fixes: b/271385332
Change-Id: I15030f0d2963bcad657909e3e41006b213b72106
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index d256489..615c439 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2176,7 +2176,7 @@
public boolean enableSwitchToIfRewriting = true;
public boolean enableEnumUnboxingDebugLogs =
System.getProperty("com.android.tools.r8.enableEnumUnboxingDebugLogs") != null;
- public boolean enableEnumWithSubtypesUnboxing = false;
+ public boolean enableEnumWithSubtypesUnboxing = true;
public boolean forceRedundantConstNumberRemoval = false;
public boolean enableExperimentalDesugaredLibraryKeepRuleGenerator = false;
public boolean invertConditionals = false;
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/ToStringOverrideEnumUnboxingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/ToStringOverrideEnumUnboxingTest.java
index fe19063..99c92ec 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/ToStringOverrideEnumUnboxingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/ToStringOverrideEnumUnboxingTest.java
@@ -39,7 +39,6 @@
.addKeepMainRule(EnumNameToString.class)
.enableNeverClassInliningAnnotations()
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addOptionsModification(opt -> enableEnumOptions(opt, enumValueOptimization))
.addEnumUnboxingInspector(
inspector -> inspector.assertUnboxed(EnumNameToString.MyEnum.class))
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/AbstractEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/AbstractEnumMergingTest.java
index 9335996..be3e6b3 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/AbstractEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/AbstractEnumMergingTest.java
@@ -37,7 +37,6 @@
.addInnerClasses(getClass())
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(MyEnum.class))
.enableInliningAnnotations()
.addOptionsModification(opt -> enableEnumOptions(opt, enumValueOptimization))
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/BasicEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/BasicEnumMergingTest.java
index 0eb13fb..cd6339b 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/BasicEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/BasicEnumMergingTest.java
@@ -37,7 +37,6 @@
.addInnerClasses(BasicEnumMergingTest.class)
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(
inspector ->
inspector
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/DeterministicEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/DeterministicEnumMergingTest.java
index 00bb1cf..0eca471 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/DeterministicEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/DeterministicEnumMergingTest.java
@@ -39,7 +39,6 @@
.addInnerClasses(getClass())
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(MyEnum.class))
.enableInliningAnnotations()
.addOptionsModification(opt -> enableEnumOptions(opt, enumValueOptimization))
@@ -50,7 +49,6 @@
.addInnerClasses(getClass())
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(MyEnum.class))
.enableInliningAnnotations()
.addOptionsModification(opt -> enableEnumOptions(opt, enumValueOptimization))
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/EnumMergingInstantiatingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/EnumMergingInstantiatingTest.java
index 074e0e9..07c72a2 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/EnumMergingInstantiatingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/EnumMergingInstantiatingTest.java
@@ -55,7 +55,6 @@
.addProgramClassFileData(PROGRAM_CLASSES_DATA)
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(InstantiatingEnum.class))
.enableInliningAnnotations()
.enableAlwaysInliningAnnotations()
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/StaticEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/StaticEnumMergingTest.java
index 1c1b779..4c5e8bc 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/StaticEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/StaticEnumMergingTest.java
@@ -47,7 +47,6 @@
.addProgramFiles(JDK17_JAR)
.addKeepMainRule(MAIN)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addOptionsModification(opt -> enableEnumOptions(opt, enumValueOptimization))
.addOptionsModification(opt -> opt.testing.enableEnumUnboxingDebugLogs = true)
.setMinApi(parameters)
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperEnumMergingTest.java
index 7a2b509..1bb41ca 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperEnumMergingTest.java
@@ -43,7 +43,6 @@
.addInnerClasses(SuperEnumMergingTest.class)
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(EnumWithSuper.class))
.enableInliningAnnotations()
.enableMemberValuePropagationAnnotations()
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperToStringEnumMergingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperToStringEnumMergingTest.java
index a88db9a..7d7fbfe 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperToStringEnumMergingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/enummerging/SuperToStringEnumMergingTest.java
@@ -41,7 +41,6 @@
.addInnerClasses(SuperToStringEnumMergingTest.class)
.addKeepMainRule(Main.class)
.addKeepRules(enumKeepRules.getKeepRules())
- .addOptionsModification(opt -> opt.testing.enableEnumWithSubtypesUnboxing = true)
.addEnumUnboxingInspector(
inspector -> inspector.assertUnboxed(EnumToString.class, EnumToStringOverride.class))
.enableInliningAnnotations()