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); } /// /// Makes a FieldReference generic if it has generic parameters. /// public static FieldReference TryMakeGenericInstance(this FieldReference fr) { TypeReference declaringTr = fr.DeclaringType; if (declaringTr.HasGenericParameters) { GenericInstanceType git = declaringTr.MakeGenericInstanceType(); FieldReference result = new(fr.Name, fr.FieldType, git); return result; } else { return fr; } } } }