Force the singleton enum utilities class to base.

Bug: 187249442
Change-Id: Ib2668d13a8e63fdc2a189f62d6c6a538daa1fe4c
diff --git a/src/main/java/com/android/tools/r8/graph/AppInfo.java b/src/main/java/com/android/tools/r8/graph/AppInfo.java
index 17f8d1b..df45e6b 100644
--- a/src/main/java/com/android/tools/r8/graph/AppInfo.java
+++ b/src/main/java/com/android/tools/r8/graph/AppInfo.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.graph;
 
-import com.android.tools.r8.features.ClassToFeatureSplitMap;
+import com.android.tools.r8.FeatureSplit;
 import com.android.tools.r8.graph.FieldResolutionResult.SuccessfulFieldResolutionResult;
 import com.android.tools.r8.ir.desugar.itf.InterfaceMethodRewriter;
 import com.android.tools.r8.origin.Origin;
@@ -131,14 +131,15 @@
   public void addSynthesizedClass(DexProgramClass clazz, ProgramDefinition context) {
     assert checkIfObsolete();
     assert context != null;
-    syntheticItems.addLegacySyntheticClass(
-        clazz, context, ClassToFeatureSplitMap.createEmptyClassToFeatureSplitMap());
+    syntheticItems.addLegacySyntheticClass(clazz, context, FeatureSplit.BASE);
   }
 
-  public void addSynthesizedClass(DexProgramClass clazz, Iterable<DexProgramClass> contexts) {
+  public void addSynthesizedClassToBase(DexProgramClass clazz, Iterable<DexProgramClass> contexts) {
     assert checkIfObsolete();
     assert !IterableUtils.isEmpty(contexts);
-    contexts.forEach(context -> addSynthesizedClass(clazz, context));
+    SyntheticItems syntheticItems = getSyntheticItems();
+    contexts.forEach(
+        context -> syntheticItems.addLegacySyntheticClass(clazz, context, FeatureSplit.BASE));
   }
 
   public List<DexProgramClass> classes() {
diff --git a/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java b/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
index 26b1f96..9b55af9 100644
--- a/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
+++ b/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
@@ -7,6 +7,7 @@
 import static com.android.tools.r8.utils.TraversalContinuation.BREAK;
 import static com.android.tools.r8.utils.TraversalContinuation.CONTINUE;
 
+import com.android.tools.r8.FeatureSplit;
 import com.android.tools.r8.features.ClassToFeatureSplitMap;
 import com.android.tools.r8.graph.FieldResolutionResult.SuccessfulFieldResolutionResult;
 import com.android.tools.r8.graph.ResolutionResult.ArrayCloneMethodResult;
@@ -160,7 +161,9 @@
   public void addSynthesizedClass(DexProgramClass clazz, ProgramDefinition context) {
     assert checkIfObsolete();
     assert context != null;
-    getSyntheticItems().addLegacySyntheticClass(clazz, context, classToFeatureSplitMap);
+    FeatureSplit featureSplit =
+        classToFeatureSplitMap.getFeatureSplit(context, getSyntheticItems());
+    getSyntheticItems().addLegacySyntheticClass(clazz, context, featureSplit);
   }
 
   /**
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
index c29dd86..54c416a 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
@@ -179,7 +179,7 @@
               appView.dexItemFactory().getSkipNameValidationForTesting(),
               DexProgramClass::checksumFromType);
       appBuilder.addSynthesizedClass(syntheticClass);
-      appView.appInfo().addSynthesizedClass(syntheticClass, contexts);
+      appView.appInfo().addSynthesizedClassToBase(syntheticClass, contexts);
       return syntheticClass;
     }
 
diff --git a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
index 1575685..f709533 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
@@ -397,11 +397,8 @@
 
   // TODO(b/158159959): Remove the usage of this direct class addition.
   public void addLegacySyntheticClass(
-      DexProgramClass clazz,
-      ProgramDefinition context,
-      ClassToFeatureSplitMap classToFeatureSplitMap) {
+      DexProgramClass clazz, ProgramDefinition context, FeatureSplit featureSplit) {
     LegacySyntheticDefinition legacyItem = internalAddLegacySyntheticClass(clazz);
-    FeatureSplit featureSplit = classToFeatureSplitMap.getFeatureSplit(context, this);
     legacyItem.addContext(context, featureSplit);
   }