using FishNet.CodeGenerating.Extension; using MonoFN.Cecil; namespace FishNet.CodeGenerating.Helping.Extension { internal static class FieldReferenceExtensions { /// /// Gets a Resolve favoring cached results first. /// internal static FieldDefinition CachedResolve(this FieldReference fieldRef, CodegenSession session) { return session.GetClass().GetFieldReferenceResolve(fieldRef); } public static FieldReference MakeHostGenericIfNeeded(this FieldDefinition fd, CodegenSession session) { TypeReference declaringTr = fd.DeclaringType; if (declaringTr.HasGenericParameters) { GenericInstanceType git = declaringTr.MakeGenericInstanceType(); FieldReference result = new FieldReference(fd.Name, fd.FieldType, git); return result; } else { return session.ImportReference(fd); } } } }