private static void AnalyzeBraces(SyntaxNodeAnalysisContext context, IfStatementSyntax ifStatement) { if (!ifStatement.IsParentKind(SyntaxKind.ElseClause) && ifStatement.Else != null) { BracesAnalysisResult result = CSharpAnalysis.AnalyzeBraces(ifStatement); if ((result & BracesAnalysisResult.AddBraces) != 0) { context.ReportDiagnostic(DiagnosticDescriptors.AddBracesToIfElse, ifStatement); } if ((result & BracesAnalysisResult.RemoveBraces) != 0) { context.ReportDiagnostic(DiagnosticDescriptors.RemoveBracesFromIfElse, ifStatement); foreach (SyntaxNode node in ifStatement.DescendantNodes()) { if (node.IsKind(SyntaxKind.Block)) { context.ReportBraces(DiagnosticDescriptors.RemoveBracesFromIfElseFadeOut, (BlockSyntax)node); } } } } }
private void AnalyzeIfStatement(SyntaxNodeAnalysisContext context) { var ifStatement = (IfStatementSyntax)context.Node; if (!ifStatement.IsParentKind(SyntaxKind.ElseClause) && ifStatement.Else != null) { BracesAnalysisResult result = CSharpAnalysis.AnalyzeBraces(ifStatement); if ((result & BracesAnalysisResult.AddBraces) != 0) { context.ReportDiagnostic(DiagnosticDescriptors.AddBracesToIfElseWhenExpressionSpansOverMultipleLines, ifStatement); } if ((result & BracesAnalysisResult.RemoveBraces) != 0) { context.ReportDiagnostic(DiagnosticDescriptors.RemoveBracesFromIfElse, ifStatement); foreach (SyntaxNode node in ifStatement.DescendantNodes()) { if (node.IsKind(SyntaxKind.Block)) { context.ReportBraces(DiagnosticDescriptors.RemoveBracesFromIfElseFadeOut, (BlockSyntax)node); } } } } }