public static bool NeedsHiddenMethodInfo(MethodReference method, MethodCallType callType, bool isConstructor) { if (IntrinsicRemap.ShouldRemap(method)) { return(false); } if (method.DeclaringType.IsArray && ((isConstructor || (method.Name == "Set")) || ((method.Name == "Get") || (method.Name == "Address")))) { return(false); } if (method.DeclaringType.IsSystemArray() && ((method.Name == "GetGenericValueImpl") || (method.Name == "SetGenericValueImpl"))) { return(false); } if (GenericsUtilities.IsGenericInstanceOfCompareExchange(method)) { return(false); } if (GenericsUtilities.IsGenericInstanceOfExchange(method)) { return(false); } if ((callType == MethodCallType.Virtual) && !CanDevirtualizeMethodCall(method.Resolve())) { return(false); } return(true); }
private static bool MethodNeedsWritten(MethodReference method) { if (IsGetOrSetGenericValueImplOnArray(method)) { return(false); } if (GenericsUtilities.IsGenericInstanceOfCompareExchange(method)) { return(false); } if (GenericsUtilities.IsGenericInstanceOfExchange(method)) { return(false); } if (method.IsStripped()) { return(false); } return(MethodCanBeDirectlyCalled(method.Resolve())); }