private async Task<int> CalculateAfferentCoupling(SyntaxNode node)
{
try
{
if (_solution == null)
{
return 0;
}
if (node.SyntaxTree != Model.SyntaxTree)
{
return 0;
}
var symbol = Model.GetDeclaredSymbol(node);
var referenceTasks = symbol == null
? Task.FromResult(0)
: _solution.FindReferences(symbol).ContinueWith(t => t.Exception != null ? 0 : t.Result.Locations.Count());
return await referenceTasks.ConfigureAwait(false);
}
catch
{
// Some types are not present in syntax tree because they have been created for metrics calculation.
return 0;
}
}