Add FieldReferences to FieldSubject

Change-Id: I99ae2c110d851f117f4bcf670209865b60a4655d
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
index ceafd09..6d7067a 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
@@ -9,6 +9,7 @@
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexValue;
 import com.android.tools.r8.naming.MemberNaming.Signature;
+import com.android.tools.r8.references.FieldReference;
 
 public class AbsentFieldSubject extends FieldSubject {
 
@@ -68,6 +69,16 @@
   }
 
   @Override
+  public FieldReference getOriginalReference() {
+    return null;
+  }
+
+  @Override
+  public FieldReference getFinalReference() {
+    return null;
+  }
+
+  @Override
   public AccessFlags<?> getAccessFlags() {
     throw new Unreachable("Absent field has no access flags");
   }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
index 0a4f65a..452669a 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
@@ -193,6 +193,7 @@
 
   public abstract AnnotationSubject annotation(String name);
 
+  @Override
   public abstract String getOriginalName();
 
   public abstract String getOriginalDescriptor();
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
index aae1912..9b9d373 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
@@ -7,6 +7,7 @@
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.graph.DexValue;
+import com.android.tools.r8.references.FieldReference;
 
 public abstract class FieldSubject extends MemberSubject {
 
@@ -43,4 +44,8 @@
   }
 
   public abstract String getJvmFieldSignatureAsString();
+
+  public abstract FieldReference getOriginalReference();
+
+  public abstract FieldReference getFinalReference();
 }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
index 26466c1..023c088 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
@@ -13,6 +13,8 @@
 import com.android.tools.r8.naming.MemberNaming;
 import com.android.tools.r8.naming.MemberNaming.FieldSignature;
 import com.android.tools.r8.naming.signature.GenericSignatureParser;
+import com.android.tools.r8.references.FieldReference;
+import com.android.tools.r8.references.Reference;
 
 public class FoundFieldSubject extends FieldSubject {
 
@@ -130,6 +132,23 @@
   }
 
   @Override
+  public FieldReference getOriginalReference() {
+    DexField originalDexField = getOriginalDexField(codeInspector.getFactory());
+    return Reference.field(
+        Reference.classFromDescriptor(originalDexField.holder.toDescriptorString()),
+        getOriginalName(),
+        Reference.typeFromDescriptor(originalDexField.type.toDescriptorString()));
+  }
+
+  @Override
+  public FieldReference getFinalReference() {
+    return Reference.field(
+        Reference.classFromDescriptor(getField().getHolderType().toDescriptorString()),
+        getOriginalName(),
+        Reference.typeFromDescriptor(getField().getType().toDescriptorString()));
+  }
+
+  @Override
   public AccessFlags<?> getAccessFlags() {
     return getField().getAccessFlags();
   }