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); }
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()); }
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); }
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; }