public static void AnalyzeTypeParameterList(SyntaxNodeAnalysisContext context) { var typeParameterList = (TypeParameterListSyntax)context.Node; SeparatedSyntaxList <TypeParameterSyntax> typeParameters = typeParameterList.Parameters; if (!typeParameters.Any()) { return; } SyntaxList <TypeParameterConstraintClauseSyntax> constraintClauses = GetConstraintClauses(typeParameterList.Parent); if (!constraintClauses.Any()) { return; } if (constraintClauses.SpanContainsDirectives()) { return; } if (!IsFixable(typeParameters, constraintClauses)) { return; } context.ReportDiagnostic( DiagnosticDescriptors.ReorderTypeParameterConstraints, constraintClauses.First()); }