Example #1
0
        public static bool IsReferencedAsMethodGroup(
            SyntaxNode node,
            IMethodSymbol methodSymbol,
            SemanticModel semanticModel,
            CancellationToken cancellationToken)
        {
            bool result = false;

            MethodReferencedAsMethodGroupWalker walker = null;

            try
            {
                walker = GetInstance();

                Debug.Assert(walker.Symbol == null, "");
                Debug.Assert(walker.SemanticModel == null, "");

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

                walker.Visit(node);
            }
            finally
            {
                if (walker != null)
                {
                    result = walker.Result;

                    Free(walker);
                }
            }

            return(result);
        }
Example #2
0
        private static void Free(MethodReferencedAsMethodGroupWalker walker)
        {
            walker.Result            = false;
            walker.Symbol            = null;
            walker.SemanticModel     = null;
            walker.CancellationToken = default;

            _cachedInstance = walker;
        }
            public static MethodReferencedAsMethodGroupWalker GetInstance()
            {
                MethodReferencedAsMethodGroupWalker walker = _cachedInstance;

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

                return(new MethodReferencedAsMethodGroupWalker());
            }
Example #4
0
        private static MethodReferencedAsMethodGroupWalker GetInstance()
        {
            MethodReferencedAsMethodGroupWalker walker = _cachedInstance;

            if (walker != null)
            {
                Debug.Assert(walker.Symbol == null);
                Debug.Assert(walker.SemanticModel == null);
                Debug.Assert(walker.CancellationToken == default);

                _cachedInstance = null;
                return(walker);
            }

            return(new MethodReferencedAsMethodGroupWalker());
        }