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; }