public static void Analyze(SyntaxNodeAnalysisContext context, SwitchSectionSyntax switchSection) { SyntaxList <SwitchLabelSyntax> labels = switchSection.Labels; for (int i = 0; i < labels.Count - 1; i++) { SwitchLabelSyntax label = labels[i]; if (label.IsKind(SyntaxKind.DefaultSwitchLabel)) { TextSpan span = TextSpan.FromBounds(label.Span.End, labels.Last().Span.Start); if (!switchSection.ContainsDirectives(span)) { context.ReportDiagnostic( DiagnosticDescriptors.DefaultLabelShouldBeLastLabelInSwitchSection, label); } } } }