Also test for DexItemBasedConstString in IdentifierNameStringMarker, follow up
Change-Id: I7d1141610a7a87d855f1d9bea49dda733491d357
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 291be66..4b072806 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringUtils.java
@@ -280,10 +280,19 @@
public static DexType inferTypeFromConstStringValue(
DexDefinitionSupplier definitions, Value value) {
- assert value.definition != null;
- assert value.getAliasedValue().isConstString();
- return inferTypeFromNameString(
- definitions, value.getAliasedValue().definition.asConstString().getValue());
+ Value root = value.getAliasedValue();
+ assert !root.isPhi();
+ assert root.isConstString() || root.isDexItemBasedConstString();
+ if (root.isConstString()) {
+ return inferTypeFromNameString(definitions, root.definition.asConstString().getValue());
+ }
+ if (root.isDexItemBasedConstString()) {
+ DexReference reference = root.definition.asDexItemBasedConstString().getItem();
+ if (reference.isDexType()) {
+ return reference.asDexType();
+ }
+ }
+ return null;
}
private static DexReference inferMemberFromNameString(