public static void ReportAmbiguousInvocation(this ICollection<Diagnostic> diagnostics, TextSpan span, InvocableSymbol symbol1, InvocableSymbol symbol2, IReadOnlyList<TypeSymbol> argumentTypes)
{
if (argumentTypes.Count > 0)
{
var displayTypes = string.Join(@", ", argumentTypes.Select(t => t.ToDisplayName()));
diagnostics.Report(span, DiagnosticId.AmbiguousInvocation, symbol1, symbol2, displayTypes);
}
else
{
var message = string.Format(CultureInfo.CurrentCulture, "Invocation is ambiguous between '{0}' and '{1}'.", symbol1, symbol2);
var diagnostic = new Diagnostic(span, DiagnosticId.AmbiguousInvocation, message);
diagnostics.Add(diagnostic);
}
}