private async Task<Tuple<Compilation, IEnumerable<IMemberMetric>>> CalculateMemberMetrics(Compilation compilation, TypeDeclaration typeNodes, Solution solution)
{
var comp = compilation;
var metrics = typeNodes.SyntaxNodes
.Select(async info =>
{
var tuple = await VerifyCompilation(comp, info).ConfigureAwait(false);
var semanticModel = tuple.Item2;
comp = tuple.Item1;
var calculator = new MemberMetricsCalculator(semanticModel, solution, _memberDocumentationFactory);
return await calculator.Calculate(info).ConfigureAwait(false);
});
var results = await Task.WhenAll(metrics).ConfigureAwait(false);
return new Tuple<Compilation, IEnumerable<IMemberMetric>>(comp, results.SelectMany(x => x).AsArray());
}