private static void AnalyzeConditionalExpression(SyntaxNodeAnalysisContext context) { var conditionalExpression = (ConditionalExpressionSyntax)context.Node; if (conditionalExpression.ContainsDiagnostics) { return; } ExpressionSyntax condition = conditionalExpression.Condition; if (condition == null) { return; } ConditionalExpressionParenthesesStyle style = context.GetConditionalExpressionParenthesesStyle(); if (style == ConditionalExpressionParenthesesStyle.None) { return; } SyntaxKind kind = condition.Kind(); if (kind == SyntaxKind.ParenthesizedExpression) { var parenthesizedExpression = (ParenthesizedExpressionSyntax)condition; ExpressionSyntax expression = parenthesizedExpression.Expression; if (!expression.IsMissing) { if (style == ConditionalExpressionParenthesesStyle.Omit || (style == ConditionalExpressionParenthesesStyle.OmitWhenConditionIsSingleToken && CSharpFacts.IsSingleTokenExpression(expression.Kind()))) { DiagnosticHelpers.ReportDiagnostic(context, DiagnosticRules.AddOrRemoveParenthesesFromConditionInConditionalOperator, condition, "Remove", "from"); } } } else if (style == ConditionalExpressionParenthesesStyle.Include || (style == ConditionalExpressionParenthesesStyle.OmitWhenConditionIsSingleToken && !CSharpFacts.IsSingleTokenExpression(kind))) { DiagnosticHelpers.ReportDiagnostic(context, DiagnosticRules.AddOrRemoveParenthesesFromConditionInConditionalOperator, condition, "Add", "to"); } }