Always use original type/signature when querying noObfuscation.

Bug: 130791310
Change-Id: Id3f0e517727075d5921c004683b9ea9cd1958496
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java b/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
index ad50094..7093036 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
@@ -281,7 +281,7 @@
       return null;
     }
 
-    if (appView.options().isMinifying() && !appView.rootSet().noObfuscation.contains(holder)) {
+    if (appView.options().isMinifying() && !appView.rootSet().mayBeMinified(holder, appView)) {
       if (invokedMethod == dexItemFactory.classMethods.getName) {
         return new DexItemBasedValueString(holder, new ClassNameComputationInfo(NAME));
       }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
index aca25ac..58c7270 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
@@ -275,7 +275,7 @@
       DexString name = null;
       if (invokedMethod == factory.classMethods.getName) {
         if (appView.options().isMinifying()
-            && !appView.rootSet().noObfuscation.contains(holder.type)) {
+            && !appView.rootSet().mayBeMinified(holder.type, appView)) {
           deferred =
               new DexItemBasedConstString(
                   invoke.outValue(),
@@ -300,7 +300,7 @@
             continue;
           }
           if (appView.options().isMinifying()
-              && !appView.rootSet().noObfuscation.contains(holder.type)) {
+              && !appView.rootSet().mayBeMinified(holder.type, appView)) {
             deferred =
                 new DexItemBasedConstString(
                     invoke.outValue(),
@@ -322,7 +322,7 @@
             continue;
           }
           if (appView.options().isMinifying()
-              && !appView.rootSet().noObfuscation.contains(holder.type)) {
+              && !appView.rootSet().mayBeMinified(holder.type, appView)) {
             deferred =
                 new DexItemBasedConstString(
                     invoke.outValue(),
diff --git a/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java b/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
index 991805a..3c7bd2f 100644
--- a/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
@@ -114,8 +114,7 @@
       return true;
     }
     if (!appView.options().getProguardConfiguration().hasApplyMappingFile()
-        && appView.rootSet().noObfuscation.contains(
-            appView.graphLense().getOriginalFieldSignature(field.field))) {
+        && appView.rootSet().mayBeMinified(field.field, appView)) {
       return true;
     }
     return false;
diff --git a/src/main/java/com/android/tools/r8/naming/FieldNamingState.java b/src/main/java/com/android/tools/r8/naming/FieldNamingState.java
index dce278b..9fc2b4a 100644
--- a/src/main/java/com/android/tools/r8/naming/FieldNamingState.java
+++ b/src/main/java/com/android/tools/r8/naming/FieldNamingState.java
@@ -60,7 +60,7 @@
         return field.name;
       }
       if (!appView.options().getProguardConfiguration().hasApplyMappingFile()
-          && appView.rootSet().noObfuscation.contains(encodedField.field)) {
+          && appView.rootSet().mayBeMinified(encodedField.field, appView)) {
         return field.name;
       }
     }
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index 264167e..d0fcfa1 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -106,7 +106,7 @@
 
     @Override
     public boolean noObfuscation(DexType type) {
-      return appView.rootSet().noObfuscation.contains(appView.graphLense().getOriginalType(type));
+      return appView.rootSet().mayBeMinified(type, appView);
     }
   }
 
@@ -168,14 +168,7 @@
 
     @Override
     public boolean noObfuscation(DexReference reference) {
-      if (reference.isDexField()) {
-        return appView.rootSet().noObfuscation.contains(
-            appView.graphLense().getOriginalFieldSignature(reference.asDexField()));
-      } else {
-        assert reference.isDexMethod();
-        return appView.rootSet().noObfuscation.contains(
-            appView.graphLense().getOriginalMethodSignature(reference.asDexMethod()));
-      }
+      return appView.rootSet().mayBeMinified(reference, appView);
     }
   }
 }
diff --git a/src/main/java/com/android/tools/r8/optimize/ClassAndMemberPublicizer.java b/src/main/java/com/android/tools/r8/optimize/ClassAndMemberPublicizer.java
index 7ff727e..95aaf35 100644
--- a/src/main/java/com/android/tools/r8/optimize/ClassAndMemberPublicizer.java
+++ b/src/main/java/com/android/tools/r8/optimize/ClassAndMemberPublicizer.java
@@ -111,7 +111,7 @@
       boolean wasSeen = methodPoolCollection.markIfNotSeen(holder, encodedMethod.method);
       if (wasSeen) {
         // We can't do anything further because even renaming is not allowed due to the keep rule.
-        if (appView.rootSet().noObfuscation.contains(encodedMethod.method)) {
+        if (appView.rootSet().mayBeMinified(encodedMethod.method, appView)) {
           return false;
         }
         // TODO(b/111118390): Renaming will enable more private instance methods to be publicized.
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 71c5bcd..80d34fb 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -1421,9 +1421,9 @@
     DexEncodedMethod valuesMethod = clazz.lookupMethod(generatedEnumValuesMethod(clazz));
     if (valuesMethod != null) {
       // TODO(sgjesse): Does this have to be enqueued as a root item? Right now it is done as the
-      // marking of not renaming is in the root set.
+      // marking of not renaming it in the root set.
       enqueueRootItem(valuesMethod, reason);
-      rootSet.noObfuscation.add(valuesMethod.toReference());
+      rootSet.shouldNotBeMinified(valuesMethod.toReference());
     }
   }
 
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
index a793cfb..144a463 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -1030,7 +1030,7 @@
 
     public final Map<DexReference, Set<ProguardKeepRule>> noShrinking;
     public final Set<DexReference> noOptimization;
-    public final Set<DexReference> noObfuscation;
+    private final Set<DexReference> noObfuscation;
     public final ImmutableList<DexReference> reasonAsked;
     public final Set<DexReference> checkDiscarded;
     public final Set<DexMethod> alwaysInline;
@@ -1187,6 +1187,24 @@
       prune(original);
     }
 
+    void shouldNotBeMinified(DexReference reference) {
+      noObfuscation.add(reference);
+    }
+
+    public boolean mayBeMinified(DexReference reference, AppView<?> appView) {
+      if (reference.isDexType()) {
+        return noObfuscation.contains(
+            appView.graphLense().getOriginalType(reference.asDexType()));
+      } else if (reference.isDexMethod()) {
+        return noObfuscation.contains(
+            appView.graphLense().getOriginalMethodSignature(reference.asDexMethod()));
+      } else {
+        assert reference.isDexField();
+        return noObfuscation.contains(
+            appView.graphLense().getOriginalFieldSignature(reference.asDexField()));
+      }
+    }
+
     public boolean verifyKeptFieldsAreAccessedAndLive(AppInfoWithLiveness appInfo) {
       for (DexReference reference : noShrinking.keySet()) {
         if (reference.isDexField()) {
diff --git a/src/main/java/com/android/tools/r8/shaking/TreePruner.java b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
index fe5f3e2..588b90d 100644
--- a/src/main/java/com/android/tools/r8/shaking/TreePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
@@ -121,7 +121,7 @@
         // If the class is a local class, it'll become an ordinary class by renaming.
         // Invalidate its inner-class / enclosing-method attributes early.
         if (appView.options().isMinifying()
-            && !appView.rootSet().noObfuscation.contains(clazz.type)
+            && !appView.rootSet().mayBeMinified(clazz.type, appView)
             && clazz.isLocalClass()) {
           assert clazz.getEnclosingMethod() != null;
           assert clazz.getInnerClassAttributeForThisClass() != null;