Also test for DexItemBasedConstString in IdentifierNameStringMarker

Change-Id: I574496de03bdfd3fb313ddeca3fad15984609836
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 3964f76..87f4c10 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
@@ -205,6 +205,8 @@
       }
 
       int identifierPosition = getIdentifierPositionInArguments(invoke);
+      assert identifierPosition >= 0;
+
       Value in = invoke.arguments().get(identifierPosition);
       if (in.definition.isDexItemBasedConstString()) {
         return iterator;
diff --git a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java
index 37ac36b..291be66 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java
@@ -249,8 +249,8 @@
   static int getPositionOfFirstConstString(Instruction instruction) {
     List<Value> inValues = instruction.inValues();
     for (int i = 0; i < inValues.size(); i++) {
-      Value value = inValues.get(i);
-      if (value.getAliasedValue().isConstString()) {
+      Value value = inValues.get(i).getAliasedValue();
+      if (value.isConstString() || value.isDexItemBasedConstString()) {
         return i;
       }
     }
diff --git a/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java b/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
index 1f27829..565c3e0 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
@@ -33,6 +33,8 @@
         .addProgramFiles(PROTO2_EXAMPLES_JAR, PROTO2_PROTO_JAR, PROTOBUF_LITE_JAR)
         .addKeepMainRule("proto2.TestClass")
         .addKeepRules(
+            // TODO(b/112437944): Fix -identifiernamestring support.
+            "-keepnames class * extends com.google.protobuf.GeneratedMessageLite",
             // TODO(b/112437944): Use dex item based const strings for proto schema definitions.
             "-keepclassmembernames class * extends com.google.protobuf.GeneratedMessageLite {",
             "  <fields>;",