private static bool IsFixable(
            SyntaxNode node,
            IdentifierNameSyntax identifierName,
            SemanticModel semanticModel,
            CancellationToken cancellationToken)
        {
            bool isFixable;
            UsePatternMatchingWalker walker = null;

            try
            {
                walker = UsePatternMatchingWalker.GetInstance();

                walker.SetValues(identifierName, semanticModel, cancellationToken);

                walker.Visit(node);

                isFixable = walker.IsFixable.GetValueOrDefault();
            }
            finally
            {
                if (walker != null)
                {
                    UsePatternMatchingWalker.Free(walker);
                }
            }

            return(isFixable);
        }
        public static bool GetIsFixableAndFree(UsePatternMatchingWalker walker)
        {
            bool?isFixable = walker.IsFixable;

            Free(walker);

            return(isFixable == true);
        }
        public static UsePatternMatchingWalker GetInstance()
        {
            UsePatternMatchingWalker walker = _cachedInstance;

            if (walker != null)
            {
                _cachedInstance = null;
                walker.Clear();
                return(walker);
            }

            return(new UsePatternMatchingWalker());
        }
Example #4
0
        private static bool IsFixable(
            SyntaxNode node,
            IdentifierNameSyntax identifierName,
            SemanticModel semanticModel,
            CancellationToken cancellationToken)
        {
            UsePatternMatchingWalker walker = UsePatternMatchingWalkerCache.GetInstance();

            walker.SetValues(identifierName, semanticModel, cancellationToken);

            walker.Visit(node);

            return(UsePatternMatchingWalkerCache.GetIsFixableAndFree(walker));
        }
Example #5
0
        public static UsePatternMatchingWalker GetInstance()
        {
            UsePatternMatchingWalker walker = _cachedInstance;

            if (walker != null)
            {
                Debug.Assert(walker._symbol == null);
                Debug.Assert(walker._identifierName == null);
                Debug.Assert(walker._semanticModel == null);
                Debug.Assert(walker._cancellationToken == default);

                _cachedInstance = null;
                return(walker);
            }

            return(new UsePatternMatchingWalker());
        }
Example #6
0
        public static void Free(UsePatternMatchingWalker walker)
        {
            walker.SetValues(default(IdentifierNameSyntax), default(SemanticModel), default(CancellationToken));

            _cachedInstance = walker;
        }
 public static void Free(UsePatternMatchingWalker walker)
 {
     walker.Clear();
     _cachedInstance = walker;
 }