private static void AnalyzeLogicalAndLogicalOr( SyntaxNodeAnalysisContext context, BinaryExpressionSyntax binaryExpression, ExpressionSyntax left, ExpressionSyntax right, SyntaxKind kind) { if (left.IsKind(kind) || right.IsKind(kind)) { RemoveRedundantBooleanLiteralRefactoring.ReportDiagnostic(context, binaryExpression, left, right); } }
private static void AnalyzeEqualsNotEquals( SyntaxNodeAnalysisContext context, BinaryExpressionSyntax binaryExpression, ExpressionSyntax left, ExpressionSyntax right, SyntaxKind kind, SyntaxKind kind2) { SyntaxKind leftKind = left.Kind(); if (leftKind == kind) { if (IsBooleanExpressionButNotBooleanLiteral(context, right)) { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression); } } else if (leftKind == kind2) { if (IsBooleanExpressionButNotBooleanLiteral(context, right)) { RemoveRedundantBooleanLiteralRefactoring.ReportDiagnostic(context, binaryExpression, left); } } else { SyntaxKind rightKind = right.Kind(); if (rightKind == kind) { if (IsBooleanExpressionButNotBooleanLiteral(context, left)) { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression); } } else if (rightKind == kind2) { if (IsBooleanExpressionButNotBooleanLiteral(context, left)) { RemoveRedundantBooleanLiteralRefactoring.ReportDiagnostic(context, binaryExpression, right); } } } }
private static void AnalyzeEqualsNotEquals( SyntaxNodeAnalysisContext context, BinaryExpressionSyntax binaryExpression, ExpressionSyntax left, ExpressionSyntax right, SyntaxKind kind, SyntaxKind kind2) { SyntaxKind leftKind = left.Kind(); if (leftKind == kind) { switch (AnalyzeExpression(right, context.SemanticModel, context.CancellationToken)) { case AnalysisResult.Boolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: true); break; } case AnalysisResult.LogicalNotWithNullableBoolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: false); break; } } } else if (leftKind == kind2) { switch (AnalyzeExpression(right, context.SemanticModel, context.CancellationToken)) { case AnalysisResult.Boolean: { RemoveRedundantBooleanLiteralRefactoring. ReportDiagnostic(context, binaryExpression, left, right, left); break; } case AnalysisResult.LogicalNotWithNullableBoolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: false); break; } } } else { SyntaxKind rightKind = right.Kind(); if (rightKind == kind) { switch (AnalyzeExpression(left, context.SemanticModel, context.CancellationToken)) { case AnalysisResult.Boolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: true); break; } case AnalysisResult.LogicalNotWithNullableBoolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: false); break; } } } else if (rightKind == kind2) { switch (AnalyzeExpression(left, context.SemanticModel, context.CancellationToken)) { case AnalysisResult.Boolean: { RemoveRedundantBooleanLiteralRefactoring.ReportDiagnostic(context, binaryExpression, left, right, right); break; } case AnalysisResult.LogicalNotWithNullableBoolean: { SimplifyBooleanComparisonRefactoring.ReportDiagnostic(context, binaryExpression, left, right, fadeOut: false); break; } } } } }