CfBuilder.resolveField: Fix NPE

Fixes test failure introduced in Icd4b41a50, commit
ec5ad962 ("CfFieldInstruction: Store declaring field to fix minification", 2018-03-27)

Several of our tests run R8 on an incomplete program where fields cannot
necessarily be resolved. In that case, simply let resolveField() return
the input (which undoes the behavior introduced in ec5ad962).

Change-Id: Ic479c4d9441d21144a9d18f96ce136fe85c717fa
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
index a8514e9..7c04392 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -16,6 +16,7 @@
 import com.android.tools.r8.graph.CfCode;
 import com.android.tools.r8.graph.CfCode.LocalVariableInfo;
 import com.android.tools.r8.graph.DebugLocalInfo;
+import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.graph.DexItemFactory;
@@ -128,7 +129,8 @@
   }
 
   public DexField resolveField(DexField field) {
-    return appInfo.resolveFieldOn(field.clazz, field).field;
+    DexEncodedField resolvedField = appInfo.resolveFieldOn(field.clazz, field);
+    return resolvedField == null ? field : resolvedField.field;
   }
 
   // Split all blocks with throwing instructions and exceptional edges such that any non-throwing