private void AddLinkToCallMethod(string memberName, MethodReference method) { if (method is GenericInstanceMethod genericMethod) { genericMethod.GenericArguments .ForEach(genericArg => linkHandler.AddLinkToType(memberName, genericArg)); } TypeReference declaringType = method.DeclaringType; if (IgnoredTypes.IsIgnoredSystemType(declaringType)) { // Ignore "System" and "Microsoft" namespaces for now return; } string methodName = Name.GetMethodFullName(method); if (Name.IsCompilerGenerated(methodName)) { return; } linkHandler.AddLink(memberName, methodName, NodeData.MemberType); TypeReference returnType = method.ReturnType; linkHandler.AddLinkToType(memberName, returnType); method.Parameters .Select(parameter => parameter.ParameterType) .ForEach(parameterType => linkHandler.AddLinkToType(memberName, parameterType)); }
private static bool IsIgnoredReference(TypeReference targetType) { return(targetType.FullName == "System.Void" || targetType.IsGenericParameter || IgnoredTypes.IsIgnoredSystemType(targetType) || IsGenericTypeArgument(targetType) || targetType is ByReferenceType refType && refType.ElementType.IsGenericParameter); }
private static bool IsIgnoredTargetMember(IMemberDefinition memberInfo) { return(IgnoredTypes.IsIgnoredSystemType(memberInfo.DeclaringType) || IsGenericTypeArgument(memberInfo.DeclaringType)); }