private static Dictionary<string, NodeSymbolInfo> FindUnusedNodes(SyntaxNodeAnalysisContext context, ParametersInfo parametersInfo, bool isIndexer = false)
        {
            UnusedParameterWalker walker = UnusedParameterWalkerCache.Acquire(context.SemanticModel, context.CancellationToken, isIndexer);

            if (parametersInfo.Parameter != null
                && !StringUtility.IsOneOrManyUnderscores(parametersInfo.Parameter.Identifier.ValueText))
            {
                walker.AddParameter(parametersInfo.Parameter);
            }
            else
            {
                foreach (ParameterSyntax parameter in parametersInfo.Parameters)
                {
                    if (!StringUtility.IsOneOrManyUnderscores(parameter.Identifier.ValueText))
                        walker.AddParameter(parameter);
                }
            }

            foreach (TypeParameterSyntax typeParameter in parametersInfo.TypeParameters)
            {
                walker.AddTypeParameter(typeParameter);
                walker.IsAnyTypeParameter = true;
            }

            if (walker.Nodes.Count == 0)
                return walker.Nodes;

            walker.Visit(parametersInfo.Node);

            return UnusedParameterWalkerCache.GetNodesAndRelease(walker);
        }
        private static Dictionary <string, NodeSymbolInfo> FindUnusedNodes(SyntaxNodeAnalysisContext context, ParametersInfo parametersInfo, bool isIndexer = false)
        {
            UnusedParameterWalker walker = UnusedParameterWalkerCache.Acquire(context.SemanticModel, context.CancellationToken, isIndexer);

            if (parametersInfo.Parameter != null)
            {
                walker.AddParameter(parametersInfo.Parameter);
            }
            else
            {
                foreach (ParameterSyntax parameter in parametersInfo.Parameters)
                {
                    walker.AddParameter(parameter);
                }
            }

            foreach (TypeParameterSyntax typeParameter in parametersInfo.TypeParameters)
            {
                walker.AddTypeParameter(typeParameter);
                walker.IsAnyTypeParameter = true;
            }

            walker.Visit(parametersInfo.Node);

            return(UnusedParameterWalkerCache.GetNodesAndRelease(walker));
        }