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());
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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;
 }
Esempio n. 6
0
        public static void Free(ReturnTaskInsteadOfNullWalker walker)
        {
            walker.Expressions?.Clear();

            _cachedInstance = walker;
        }