Example #1
0
            public static void Free(UseAsyncAwaitWalker walker)
            {
                walker._shouldVisit = true;
                walker._usingDeclarations.Clear();
                walker.ReturnStatement   = null;
                walker.SemanticModel     = null;
                walker.CancellationToken = default;

                _cachedInstance = walker;
            }
        private static bool IsFixable(BlockSyntax body)
        {
            UseAsyncAwaitWalker walker = UseAsyncAwaitWalker.GetInstance();

            walker.VisitBlock(body);

            ReturnStatementSyntax returnStatement = walker.ReturnStatement;

            UseAsyncAwaitWalker.Free(walker);

            return(returnStatement != null);
        }
Example #3
0
            public static UseAsyncAwaitWalker GetInstance()
            {
                UseAsyncAwaitWalker walker = _cachedInstance;

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

                return(new UseAsyncAwaitWalker());
            }
            public static UseAsyncAwaitWalker GetInstance()
            {
                UseAsyncAwaitWalker walker = _cachedInstance;

                if (walker != null)
                {
                    Debug.Assert(walker.ReturnStatement == null);

                    _cachedInstance = null;
                    return(walker);
                }

                return(new UseAsyncAwaitWalker());
            }
Example #5
0
            public static UseAsyncAwaitWalker GetInstance(SemanticModel semanticModel, CancellationToken cancellationToken)
            {
                UseAsyncAwaitWalker walker = _cachedInstance;

                if (walker != null)
                {
                    _cachedInstance = null;
                }
                else
                {
                    walker = new UseAsyncAwaitWalker();
                }

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

                return(walker);
            }
Example #6
0
        private static bool IsFixable(BlockSyntax body, SyntaxNodeAnalysisContext context)
        {
            UseAsyncAwaitWalker walker = null;

            try
            {
                walker = UseAsyncAwaitWalker.GetInstance(context.SemanticModel, context.CancellationToken);

                walker.VisitBlock(body);

                return(walker.ReturnStatement != null);
            }
            finally
            {
                if (walker != null)
                {
                    UseAsyncAwaitWalker.Free(walker);
                }
            }
        }
 public static void Free(UseAsyncAwaitWalker walker)
 {
     walker.Reset();
     _cachedInstance = walker;
 }