public static ImmutableArray <ExpressionSyntax> GetExpressionsAndFree(ReturnTaskInsteadOfNullWalker walker) { List <ExpressionSyntax> expressions = walker.Expressions; Free(walker); return((expressions == null) ? ImmutableArray <ExpressionSyntax> .Empty : ImmutableArray.CreateRange(expressions)); }
public static ReturnTaskInsteadOfNullWalker GetInstance() { ReturnTaskInsteadOfNullWalker walker = _cachedInstance; if (walker != null) { _cachedInstance = null; walker.Clear(); return(walker); } return(new ReturnTaskInsteadOfNullWalker()); }
public static ReturnTaskInsteadOfNullWalker GetInstance() { ReturnTaskInsteadOfNullWalker walker = _cachedInstance; if (walker != null) { Debug.Assert(walker.Expressions == null || walker.Expressions.Count == 0); _cachedInstance = null; return(walker); } return(new ReturnTaskInsteadOfNullWalker()); }
private static void AnalyzeBlock(SyntaxNodeAnalysisContext context, BlockSyntax body) { if (body == null) { return; } ReturnTaskInsteadOfNullWalker walker = ReturnTaskInsteadOfNullWalkerCache.GetInstance(); walker.VisitBlock(body); foreach (ExpressionSyntax expression in ReturnTaskInsteadOfNullWalkerCache.GetExpressionsAndFree(walker)) { ReportDiagnostic(context, expression); } }
public static void Free(ReturnTaskInsteadOfNullWalker walker) { _cachedInstance = walker; }
public static void Free(ReturnTaskInsteadOfNullWalker walker) { walker.Expressions?.Clear(); _cachedInstance = walker; }