Ejemplo n.º 1
0
        public static ImmutableArray <ExpressionSyntax> GetExpressionsAndRelease(ReturnTaskInsteadOfNullWalker walker)
        {
            List <ExpressionSyntax> expressions = walker.Expressions;

            Release(walker);

            return((expressions == null)
                ? ImmutableArray <ExpressionSyntax> .Empty
                : ImmutableArray.CreateRange(expressions));
        }
Ejemplo n.º 2
0
        public static ReturnTaskInsteadOfNullWalker Acquire()
        {
            ReturnTaskInsteadOfNullWalker walker = _cachedInstance;

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

            return(new ReturnTaskInsteadOfNullWalker());
        }
        private static void AnalyzeBlock(SyntaxNodeAnalysisContext context, BlockSyntax body)
        {
            if (body == null)
            {
                return;
            }

            ReturnTaskInsteadOfNullWalker walker = ReturnTaskInsteadOfNullWalkerCache.Acquire();

            walker.VisitBlock(body);

            foreach (ExpressionSyntax expression in ReturnTaskInsteadOfNullWalkerCache.GetExpressionsAndRelease(walker))
            {
                ReportDiagnostic(context, expression);
            }
        }
Ejemplo n.º 4
0
 public static void Release(ReturnTaskInsteadOfNullWalker walker)
 {
     _cachedInstance = walker;
 }