Only use DexItemBasedConstString in proto shrinker when minification is enabled
Change-Id: I4173ad7914b84c29b15f3d506f1d748b366c4b50
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/proto/schema/ProtoFieldObject.java b/src/main/java/com/android/tools/r8/ir/analysis/proto/schema/ProtoFieldObject.java
index c3f7795..809791f 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/proto/schema/ProtoFieldObject.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/proto/schema/ProtoFieldObject.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.ir.analysis.type.Nullability;
import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
import com.android.tools.r8.ir.code.BasicBlock.ThrowingInfo;
+import com.android.tools.r8.ir.code.ConstString;
import com.android.tools.r8.ir.code.DexItemBasedConstString;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.Instruction;
@@ -28,10 +29,11 @@
Value value =
code.createValue(
TypeLatticeElement.stringClassType(appView, Nullability.definitelyNotNull()));
- return new DexItemBasedConstString(
- value,
- field,
- FieldNameComputationInfo.forFieldName(),
- ThrowingInfo.defaultForConstString(appView.options()));
+ ThrowingInfo throwingInfo = ThrowingInfo.defaultForConstString(appView.options());
+ if (appView.options().isMinifying()) {
+ return new DexItemBasedConstString(
+ value, field, FieldNameComputationInfo.forFieldName(), throwingInfo);
+ }
+ return new ConstString(value, field.name, throwingInfo);
}
}