public override void VisitMethodDeclaration(MethodDeclarationSyntax node) { var parameterTokens = node.ParameterList.Parameters.Select(p => p.Identifier); tracker.AddIdentifiers(parameterTokens); Visit(node.Body); tracker.RemoveIdentifiers(parameterTokens); }
public override void VisitBlock(BlockSyntax node) { var tokens = new List <SyntaxToken>(); // We want to collect any labels and add them all at once for this scope foreach (var statement in node.Statements) { if (statement.IsKind(SyntaxKind.LabeledStatement, out LabeledStatementSyntax declarationStatement)) { tokens.Add(declarationStatement.Identifier); } } _tracker.AddIdentifiers(tokens); DefaultVisit(node); _tracker.RemoveIdentifiers(tokens); }