Proguard rules should take precedence in member value propagation

Bug: 134709054
Change-Id: I76d6fc0073ec5342d207f83784be1a8bd639834a
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
index 4596f3b..b9d0990 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
@@ -344,6 +344,14 @@
       return;
     }
 
+    // Check if there is a Proguard configuration rule that specifies the value of the field.
+    ProguardMemberRuleLookup lookup = lookupMemberRule(target);
+    if (lookup != null
+        && tryConstantReplacementFromProguard(
+            code, affectedValues, blocks, iterator, current, lookup)) {
+      return;
+    }
+
     // Check if a this value is known const.
     if (!appView.appInfo().isPinned(target.field)) {
       ConstInstruction replacement = target.valueAsConstInstruction(code, current.dest(), appView);
@@ -358,12 +366,6 @@
       }
     }
 
-    ProguardMemberRuleLookup lookup = lookupMemberRule(target);
-    if (lookup != null
-        && tryConstantReplacementFromProguard(
-            code, affectedValues, blocks, iterator, current, lookup)) {
-      return;
-    }
     if (current.dest() != null) {
       // In case the class holder of this static field satisfying following criteria:
       //   -- cannot trigger other static initializer except for its own
diff --git a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
index 1197a4a..87dc516 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
@@ -152,7 +152,6 @@
             iterator.next();
           }
           if (instruction.isStaticPut()) {
-            StaticPut staticPut = instruction.asStaticPut();
             iterator.replaceCurrentInstruction(new StaticPut(newIn, field));
           } else {
             assert instruction.isInstancePut();