public FieldInfo GetMetaInfo ()
{
if ((state & StateFlags.PendingMetaInflate) != 0) {
var decl_meta = DeclaringType.GetMetaInfo ();
if (DeclaringType.IsTypeBuilder) {
metaInfo = TypeBuilder.GetField (decl_meta, metaInfo);
} else {
var orig_token = metaInfo.MetadataToken;
metaInfo = decl_meta.GetField (Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
if (metaInfo.MetadataToken != orig_token)
throw new NotImplementedException ("Resolved to wrong meta token");
// What a stupid API, does not work because field handle is imported
// metaInfo = FieldInfo.GetFieldFromHandle (metaInfo.FieldHandle, DeclaringType.MetaInfo.TypeHandle);
}
state &= ~StateFlags.PendingMetaInflate;
}
return metaInfo;
}