// Create one diagnostic for each unnecessary span that will be classified as Unnecessary private IEnumerable<Diagnostic> CreateClassificationDiagnostics(IEnumerable<TextSpan> contiguousSpans, SyntaxTree tree, CancellationToken cancellationToken = default(CancellationToken)) { foreach (var span in contiguousSpans) { if (tree.OverlapsHiddenPosition(span, cancellationToken)) { continue; } yield return Diagnostic.Create(GetClassificationIdDescriptor(), tree.GetLocation(span)); } }