Add builders to ConstNumber and ConstString
Change-Id: I77244b6d18f4d1b73a156a4624c4afa06b6a3ea0
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
index cae2002..00b983b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
@@ -54,6 +54,10 @@
return instruction.asConstNumber();
}
+ public static Builder builder() {
+ return new Builder();
+ }
+
@Override
public int opcode() {
return Opcodes.CONST_NUMBER;
@@ -349,4 +353,24 @@
public void buildLir(LirBuilder<Value, ?> builder) {
builder.addConstNumber(outType(), value);
}
+
+ public static class Builder extends BuilderBase<Builder, ConstNumber> {
+
+ private long value;
+
+ public Builder setValue(long value) {
+ this.value = value;
+ return this;
+ }
+
+ @Override
+ public ConstNumber build() {
+ return amend(new ConstNumber(outValue, value));
+ }
+
+ @Override
+ public Builder self() {
+ return this;
+ }
+ }
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstString.java b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
index e2ce753..803223f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
@@ -34,6 +34,10 @@
this.value = value;
}
+ public static Builder builder() {
+ return new Builder();
+ }
+
@Override
public int opcode() {
return Opcodes.CONST_STRING;
@@ -185,4 +189,24 @@
public void buildLir(LirBuilder<Value, ?> builder) {
builder.addConstString(value);
}
+
+ public static class Builder extends BuilderBase<Builder, ConstString> {
+
+ private DexString value;
+
+ public Builder setValue(DexString value) {
+ this.value = value;
+ return this;
+ }
+
+ @Override
+ public ConstString build() {
+ return amend(new ConstString(outValue, value));
+ }
+
+ @Override
+ public Builder self() {
+ return this;
+ }
+ }
}