Enable R8 partial in EnumSwitchOldSyntaxTest

Fixes: b/405902452
Change-Id: I7e3943e87a8a8199c52a134dad97c7a4407022a1
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
index 70e6ff9..474fbbf 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LirConverter.java
@@ -265,10 +265,14 @@
             GlobalSyntheticsStrategy.forNonSynthesizing(),
             appView.appInfo().getClassToFeatureSplitMap());
     AppView<AppInfo> d8AppView = AppView.createForD8(d8AppInfo);
+    d8AppView.setNamingLens(appView.getNamingLens());
     DeadCodeRemover deadCodeRemover = new DeadCodeRemover(d8AppView);
     CodeRewriterPassCollection codeRewriterPassCollection =
         new CodeRewriterPassCollection(
-            new StringSwitchRemover(d8AppView), new FilledNewArrayRewriter(d8AppView));
+            // Must run before DexItemBasedConstStringRemover.
+            new StringSwitchRemover(d8AppView),
+            new DexItemBasedConstStringRemover(d8AppView),
+            new FilledNewArrayRewriter(d8AppView));
     ThreadUtils.processItems(
         subCompilationConfiguration.getDexingOutputClasses(),
         clazz ->
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/DexItemBasedConstStringRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/DexItemBasedConstStringRemover.java
index 15a4793..3e92dbf 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/DexItemBasedConstStringRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/DexItemBasedConstStringRemover.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.ir.conversion.passes;
 
-import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
+import com.android.tools.r8.graph.AppInfo;
 import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.ir.code.DexItemBasedConstString;
@@ -12,9 +12,9 @@
 import com.android.tools.r8.ir.conversion.MethodProcessor;
 import com.android.tools.r8.ir.conversion.passes.result.CodeRewriterResult;
 
-public class DexItemBasedConstStringRemover extends CodeRewriterPass<AppInfoWithClassHierarchy> {
+public class DexItemBasedConstStringRemover extends CodeRewriterPass<AppInfo> {
 
-  public DexItemBasedConstStringRemover(AppView<? extends AppInfoWithClassHierarchy> appView) {
+  public DexItemBasedConstStringRemover(AppView<?> appView) {
     super(appView);
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java
index 2b7c39c..e30629b 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/TypeSwitchSyntheticCfCodeProvider.java
@@ -196,7 +196,8 @@
                   assert enumFieldCache != null;
                   instructions.add(new CfStaticFieldRead(enumFieldCache));
                   instructions.add(new CfConstNumber(enumIndex.getAndIncrement(), ValueType.INT));
-                  if (appView.enableWholeProgramOptimizations()) {
+                  if (appView.enableWholeProgramOptimizations()
+                      || appView.options().partialSubCompilationConfiguration != null) {
                     instructions.add(
                         new CfDexItemBasedConstString(
                             type,
diff --git a/src/main/java/com/android/tools/r8/naming/dexitembasedstring/NameComputationInfo.java b/src/main/java/com/android/tools/r8/naming/dexitembasedstring/NameComputationInfo.java
index 9e30fef..41193e8 100644
--- a/src/main/java/com/android/tools/r8/naming/dexitembasedstring/NameComputationInfo.java
+++ b/src/main/java/com/android/tools/r8/naming/dexitembasedstring/NameComputationInfo.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.r8.naming.dexitembasedstring;
 
-import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
 import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexDefinitionSupplier;
 import com.android.tools.r8.graph.DexReference;
@@ -23,8 +22,7 @@
     RECORD_MISMATCH
   }
 
-  public final DexString computeNameFor(
-      DexReference reference, AppView<? extends AppInfoWithClassHierarchy> appView) {
+  public final DexString computeNameFor(DexReference reference, AppView<?> appView) {
     return computeNameFor(reference, appView, appView.getNamingLens());
   }
 
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java b/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java
index d3e530b..2c14b4b 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java
+++ b/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java
@@ -26,8 +26,7 @@
         .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
         .withDexRuntimes()
         .withAllApiLevelsAlsoForCf()
-        // TODO(b/405902452(: Enable partial compilation.
-        //  .withPartialCompilation()
+        .withPartialCompilation()
         .build();
   }