コード例 #1
0
 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);
 }
コード例 #2
0
 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()));
 }