public static bool IsAsyncEnumerator(this ITypeSymbol typeSymbol, Compilation compilation, out AsyncEnumeratorSymbols enumeratorSymbols)
        {
            if (typeSymbol is null)
            {
                throw new ArgumentNullException(nameof(typeSymbol));
            }
            if (compilation is null)
            {
                throw new ArgumentNullException(nameof(compilation));
            }

            var isAsyncEnumerator = typeSymbol.IsAsyncEnumeratorType(compilation, out var current, out var moveNext, out var dispose);

            enumeratorSymbols = new AsyncEnumeratorSymbols(current, moveNext, dispose);
            return(isAsyncEnumerator);
        }
 internal AsyncEnumerableSymbols(IMethodSymbol getAsyncEnumerator, AsyncEnumeratorSymbols enumeratorSymbols)
 {
     GetAsyncEnumerator = getAsyncEnumerator;
     EnumeratorSymbols  = enumeratorSymbols;
 }