Add CfInstruction instance and casting methods
Bug: b/247076137
Change-Id: Ia9eaa8c5c4a2cb93f6d0414d8a6a45b11c717957
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java b/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
index 6ade9b2..4284a5c 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
@@ -98,6 +98,16 @@
}
@Override
+ public CfConstClass asConstClass() {
+ return this;
+ }
+
+ @Override
+ public boolean isConstClass() {
+ return true;
+ }
+
+ @Override
public void write(
AppView<?> appView,
ProgramMethod context,
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInstanceFieldRead.java b/src/main/java/com/android/tools/r8/cf/code/CfInstanceFieldRead.java
index 5384772..41ce9c9 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInstanceFieldRead.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInstanceFieldRead.java
@@ -47,6 +47,10 @@
return true;
}
+ public CfInstanceFieldRead asInstanceFieldGet() {
+ return this;
+ }
+
@Override
public CfFieldInstruction createWithField(DexField otherField) {
return new CfInstanceFieldRead(otherField);
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInstruction.java b/src/main/java/com/android/tools/r8/cf/code/CfInstruction.java
index 9230c60..526b4af 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInstruction.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInstruction.java
@@ -174,6 +174,22 @@
return false;
}
+ public CfNew asNew() {
+ return null;
+ }
+
+ public boolean isNew() {
+ return false;
+ }
+
+ public CfConstClass asConstClass() {
+ return null;
+ }
+
+ public boolean isConstClass() {
+ return false;
+ }
+
public CfConstString asConstString() {
return null;
}
@@ -206,6 +222,10 @@
return false;
}
+ public CfInstanceFieldRead asInstanceFieldGet() {
+ return null;
+ }
+
public boolean isStaticFieldGet() {
return false;
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfNew.java b/src/main/java/com/android/tools/r8/cf/code/CfNew.java
index bbefd75..4ec3b43 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfNew.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfNew.java
@@ -56,6 +56,16 @@
}
@Override
+ public CfNew asNew() {
+ return this;
+ }
+
+ @Override
+ public boolean isNew() {
+ return true;
+ }
+
+ @Override
public CfTypeInstruction asTypeInstruction() {
return this;
}