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;
   }