private bool AddMethodToList(MethodDefinition method, TypeReference targetType, bool isVirt) { MethodUsageInfo virualCallsList; bool found = true; if (!Methods.TryGetValue(method, out virualCallsList)) { found = false; virualCallsList = new MethodUsageInfo(method); Methods.Add(method, virualCallsList); } if (method.IsVirtual) { if (!isVirt) { virualCallsList.RegisterNonVirtualUsage(); } else { virualCallsList.AddVirtualUsageType(targetType); } } return(!found); }
private void ResolveVirtualMethod(MethodDefinition method, MethodUsageInfo usageInfo) { var overrides = new HashSet <MethodDefinition>(); GetAllOverrides(method, overrides); foreach (MethodDefinition methodDefinition in overrides) { if (IsUsed(methodDefinition.DeclaringType)) { if (usageInfo.IsIncluded(methodDefinition.DeclaringType.Resolve())) { WalkMethod(methodDefinition); } } } }
private bool AddMethodToList(MethodDefinition method, TypeReference targetType, bool isVirt) { MethodUsageInfo virualCallsList; bool found = true; if (!Methods.TryGetValue(method, out virualCallsList)) { found = false; virualCallsList = new MethodUsageInfo(method); Methods.Add(method, virualCallsList); } if (method.IsVirtual) { if (!isVirt) { virualCallsList.RegisterNonVirtualUsage(); } else { virualCallsList.AddVirtualUsageType(targetType); } } return !found; }
private void ResolveVirtualMethod(MethodDefinition method, MethodUsageInfo usageInfo) { var overrides = new HashSet<MethodDefinition>(); GetAllOverrides(method, overrides); foreach (MethodDefinition methodDefinition in overrides) { if (IsUsed(methodDefinition.DeclaringType)) { if (usageInfo.IsIncluded(methodDefinition.DeclaringType.Resolve())) { WalkMethod(methodDefinition); } } } }