Make ResolveField not rely on Field::GetType resolution

Change-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce
diff --git a/src/utils.h b/src/utils.h
index 53a0378..66cda54 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -5,6 +5,7 @@
 
 #include "globals.h"
 #include "logging.h"
+#include "primitive.h"
 #include "stringpiece.h"
 #include "stringprintf.h"
 
@@ -156,6 +157,7 @@
 // "java.lang.String[]", and so forth.
 std::string PrettyDescriptor(const String* descriptor);
 std::string PrettyDescriptor(const std::string& descriptor);
+std::string PrettyDescriptor(Primitive::Type type);
 
 // Returns a human-readable signature for 'f'. Something like "a.b.C.f" or
 // "int a.b.C.f" (depending on the value of 'with_type').