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));
        }
Exemple #3
0
        public static Dictionary <string, NodeSymbolInfo> GetNodesAndRelease(UnusedParameterWalker walker)
        {
            Dictionary <string, NodeSymbolInfo> nodes = walker.Nodes;

            Release(walker);

            return(nodes);
        }
Exemple #4
0
        public static UnusedParameterWalker Acquire(SemanticModel semanticModel, CancellationToken cancellationToken, bool isIndexer = false)
        {
            UnusedParameterWalker walker = _cachedInstance;

            if (walker != null)
            {
                _cachedInstance = null;
                walker.Reset();
            }
            else
            {
                walker = new UnusedParameterWalker();
            }

            walker.SemanticModel     = semanticModel;
            walker.CancellationToken = cancellationToken;
            walker.IsIndexer         = isIndexer;

            return(walker);
        }
Exemple #5
0
 public static void Release(UnusedParameterWalker walker)
 {
     _cachedInstance = walker;
 }