public override SyntaxNode VisitMethodDeclaration(MethodDeclarationSyntax node) { node = (MethodDeclarationSyntax)base.VisitMethodDeclaration(node); var attributes = node.AttributeLists.ToString(); if (attributes.Contains("[DllImport(")) { if (attributes.Contains("[DllImport(\"\"")) { return(null); } var methodName = node.Identifier.ValueText; if (this.parent.namesToNamespaces.TryGetValue(methodName, out var requiredNamespace)) { var currentNamespace = SyntaxUtils.GetEnclosingNamespace(node); if (requiredNamespace != currentNamespace) { if (!this.namespaceToMovedData.TryGetValue(requiredNamespace, out var movedData)) { movedData = new MovedData(); this.namespaceToMovedData[requiredNamespace] = movedData; } movedData.Methods.Add(node); return(null); } } } return(node); }
private SyntaxNode VisitDeclarationSyntax(MemberDeclarationSyntax node, string name) { if (this.parent.namesToNamespaces.TryGetValue(name, out var requiredNamespace)) { var currentNamespace = SyntaxUtils.GetEnclosingNamespace(node); if (requiredNamespace != currentNamespace) { if (!this.namespaceToMovedData.TryGetValue(requiredNamespace, out var movedData)) { movedData = new MovedData(); this.namespaceToMovedData[requiredNamespace] = movedData; } movedData.Others.Add(node); return(null); } } return(node); }