350 references to BinaryOperatorKind
ILLink.RoslynAnalyzer (3)
Microsoft.AspNetCore.Mvc.Api.Analyzers (2)
Microsoft.CodeAnalysis (46)
Generated\Operations.Generated.cs (20)
1107BinaryOperatorKind OperatorKind { get; }
1516BinaryOperatorKind OperatorKind { get; }
2773BinaryOperatorKind Relation { get; }
2976BinaryOperatorKind OperatorKind { get; }
3531/// Kind of binary pattern; either <see cref="BinaryOperatorKind.And" /> or <see cref="BinaryOperatorKind.Or" />.
3533BinaryOperatorKind OperatorKind { get; }
3589BinaryOperatorKind OperatorKind { get; }
5642internal BinaryOperation(BinaryOperatorKind operatorKind, IOperation leftOperand, IOperation rightOperand, bool isLifted, bool isChecked, bool isCompareText, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, IMethodSymbol? unaryOperatorMethod, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit)
5657public BinaryOperatorKind OperatorKind { get; }
6306internal CompoundAssignmentOperation(IConvertibleConversion inConversion, IConvertibleConversion outConversion, BinaryOperatorKind operatorKind, bool isLifted, bool isChecked, IMethodSymbol? operatorMethod, ITypeSymbol? constrainedToType, IOperation target, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit)
6322public BinaryOperatorKind OperatorKind { get; }
8275internal RelationalCaseClauseOperation(IOperation value, BinaryOperatorKind relation, ILabelSymbol? label, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
8282public BinaryOperatorKind Relation { get; }
8592internal TupleBinaryOperation(BinaryOperatorKind operatorKind, IOperation leftOperand, IOperation rightOperand, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit)
8600public BinaryOperatorKind OperatorKind { get; }
9889internal BinaryPatternOperation(BinaryOperatorKind operatorKind, IPatternOperation leftPattern, IPatternOperation rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9896public BinaryOperatorKind OperatorKind { get; }
9971internal RelationalPatternOperation(BinaryOperatorKind operatorKind, IOperation value, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9977public BinaryOperatorKind OperatorKind { get; }
Operations\ControlFlowGraphBuilder.cs (26)
2156case BinaryOperatorKind.ConditionalOr:
2157case BinaryOperatorKind.ConditionalAnd:
2273case BinaryOperatorKind.ConditionalOr:
2277case BinaryOperatorKind.ConditionalAnd:
2539new BinaryOperation(isAndAlso ? BinaryOperatorKind.And : BinaryOperatorKind.Or,
2629new BinaryOperation(isAndAlso ? BinaryOperatorKind.And : BinaryOperatorKind.Or,
4960isUp = new BinaryOperation(BinaryOperatorKind.GreaterThanOrEqual,
5080var comparisonKind = BinaryOperatorKind.None;
5085comparisonKind = BinaryOperatorKind.LessThanOrEqual;
5092comparisonKind = BinaryOperatorKind.GreaterThanOrEqual;
5096comparisonKind = BinaryOperatorKind.LessThanOrEqual;
5103if (comparisonKind == BinaryOperatorKind.None && ITypeSymbolHelpers.IsSignedIntegralType(stepEnumUnderlyingTypeOrSelf))
5105comparisonKind = BinaryOperatorKind.LessThanOrEqual;
5112if (comparisonKind != BinaryOperatorKind.None)
5151eitherLimitOrControlVariableIsNull = new BinaryOperation(BinaryOperatorKind.Or,
5192condition = new BinaryOperation(BinaryOperatorKind.LessThanOrEqual,
5212condition = new BinaryOperation(BinaryOperatorKind.GreaterThanOrEqual,
5246var shiftedStep = new BinaryOperation(BinaryOperatorKind.RightShift,
5261return new BinaryOperation(BinaryOperatorKind.ExclusiveOr,
5333IOperation condition = new BinaryOperation(BinaryOperatorKind.Or,
5385IOperation increment = new BinaryOperation(BinaryOperatorKind.Add,
5579condition = new BinaryOperation(BinaryOperatorKind.Equals,
5629if (relationalValueClause.Relation == BinaryOperatorKind.Equals)
Microsoft.CodeAnalysis.CodeStyle (13)
Microsoft.CodeAnalysis.CodeStyle.Fixes (48)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (47)
20private static readonly ImmutableDictionary<BinaryOperatorKind, BinaryOperatorKind> s_negatedBinaryMap =
21new Dictionary<BinaryOperatorKind, BinaryOperatorKind>
23{ BinaryOperatorKind.Equals, BinaryOperatorKind.NotEquals },
24{ BinaryOperatorKind.NotEquals, BinaryOperatorKind.Equals },
25{ BinaryOperatorKind.LessThan, BinaryOperatorKind.GreaterThanOrEqual },
26{ BinaryOperatorKind.GreaterThan, BinaryOperatorKind.LessThanOrEqual },
27{ BinaryOperatorKind.LessThanOrEqual, BinaryOperatorKind.GreaterThan },
28{ BinaryOperatorKind.GreaterThanOrEqual, BinaryOperatorKind.LessThan },
29{ BinaryOperatorKind.Or, BinaryOperatorKind.And },
30{ BinaryOperatorKind.And, BinaryOperatorKind.Or },
31{ BinaryOperatorKind.ConditionalOr, BinaryOperatorKind.ConditionalAnd },
32{ BinaryOperatorKind.ConditionalAnd, BinaryOperatorKind.ConditionalOr },
153if (!s_negatedBinaryMap.TryGetValue(binaryOperation.OperatorKind, out var negatedKind))
159&& binaryOperation.OperatorKind is BinaryOperatorKind.LessThan or
160BinaryOperatorKind.LessThanOrEqual or
161BinaryOperatorKind.GreaterThan or
162BinaryOperatorKind.GreaterThanOrEqual)
167if (binaryOperation.OperatorKind is BinaryOperatorKind.Or or
168BinaryOperatorKind.And or
169BinaryOperatorKind.ConditionalAnd or
170BinaryOperatorKind.ConditionalOr)
176var newBinaryExpressionSyntax = negatedKind is BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals
384BinaryOperatorKind operationKind,
389BinaryOperatorKind.LessThanOrEqual => IsSpecialCaseBinaryExpression(binaryOperation, operationKind)
392BinaryOperatorKind.GreaterThanOrEqual => IsSpecialCaseBinaryExpression(binaryOperation, operationKind)
395BinaryOperatorKind.LessThan => generator.LessThanExpression(leftOperand, rightOperand),
396BinaryOperatorKind.GreaterThan => generator.GreaterThanExpression(leftOperand, rightOperand),
397BinaryOperatorKind.Or => generator.BitwiseOrExpression(leftOperand, rightOperand),
398BinaryOperatorKind.And => generator.BitwiseAndExpression(leftOperand, rightOperand),
399BinaryOperatorKind.ConditionalOr => generator.LogicalOrExpression(leftOperand, rightOperand),
400BinaryOperatorKind.ConditionalAnd => generator.LogicalAndExpression(leftOperand, rightOperand),
412BinaryOperatorKind operationKind)
422BinaryOperatorKind.LessThanOrEqual when rightOperand.IsNumericLiteral()
424BinaryOperatorKind.GreaterThanOrEqual when leftOperand.IsNumericLiteral()
Microsoft.CodeAnalysis.CSharp (30)
Microsoft.CodeAnalysis.CSharp.CodeStyle (20)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (18)
Microsoft.CodeAnalysis.CSharp.Features (39)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (6)
23private static readonly Dictionary<BinaryOperatorKind, SyntaxKind> s_operatorMap = new Dictionary<BinaryOperatorKind, SyntaxKind>
25{ BinaryOperatorKind.LessThan, SyntaxKind.LessThanToken },
26{ BinaryOperatorKind.GreaterThan, SyntaxKind.GreaterThanToken },
27{ BinaryOperatorKind.LessThanOrEqual, SyntaxKind.LessThanEqualsToken },
28{ BinaryOperatorKind.GreaterThanOrEqual, SyntaxKind.GreaterThanEqualsToken },
Microsoft.CodeAnalysis.CSharp.Workspaces (5)
Microsoft.CodeAnalysis.Features (16)
Microsoft.CodeAnalysis.Test.Utilities (45)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (3)
Microsoft.CodeAnalysis.VisualBasic.Features (7)
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.Rewriting.vb (7)
12Private Shared ReadOnly s_operatorMap As Dictionary(Of BinaryOperatorKind, (CaseClauseKind As SyntaxKind, OperatorTokenKind As SyntaxKind)) =
13New Dictionary(Of BinaryOperatorKind, (SyntaxKind, SyntaxKind))() From
15{BinaryOperatorKind.NotEquals, (SyntaxKind.CaseNotEqualsClause, SyntaxKind.LessThanGreaterThanToken)},
16{BinaryOperatorKind.LessThan, (SyntaxKind.CaseLessThanClause, SyntaxKind.LessThanToken)},
17{BinaryOperatorKind.GreaterThan, (SyntaxKind.CaseGreaterThanClause, SyntaxKind.GreaterThanToken)},
18{BinaryOperatorKind.LessThanOrEqual, (SyntaxKind.CaseLessThanOrEqualClause, SyntaxKind.LessThanEqualsToken)},
19{BinaryOperatorKind.GreaterThanOrEqual, (SyntaxKind.CaseGreaterThanOrEqualClause, SyntaxKind.GreaterThanEqualsToken)}
Microsoft.CodeAnalysis.VisualBasic.Workspaces (3)
Microsoft.CodeAnalysis.Workspaces (52)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (47)
20private static readonly ImmutableDictionary<BinaryOperatorKind, BinaryOperatorKind> s_negatedBinaryMap =
21new Dictionary<BinaryOperatorKind, BinaryOperatorKind>
23{ BinaryOperatorKind.Equals, BinaryOperatorKind.NotEquals },
24{ BinaryOperatorKind.NotEquals, BinaryOperatorKind.Equals },
25{ BinaryOperatorKind.LessThan, BinaryOperatorKind.GreaterThanOrEqual },
26{ BinaryOperatorKind.GreaterThan, BinaryOperatorKind.LessThanOrEqual },
27{ BinaryOperatorKind.LessThanOrEqual, BinaryOperatorKind.GreaterThan },
28{ BinaryOperatorKind.GreaterThanOrEqual, BinaryOperatorKind.LessThan },
29{ BinaryOperatorKind.Or, BinaryOperatorKind.And },
30{ BinaryOperatorKind.And, BinaryOperatorKind.Or },
31{ BinaryOperatorKind.ConditionalOr, BinaryOperatorKind.ConditionalAnd },
32{ BinaryOperatorKind.ConditionalAnd, BinaryOperatorKind.ConditionalOr },
153if (!s_negatedBinaryMap.TryGetValue(binaryOperation.OperatorKind, out var negatedKind))
159&& binaryOperation.OperatorKind is BinaryOperatorKind.LessThan or
160BinaryOperatorKind.LessThanOrEqual or
161BinaryOperatorKind.GreaterThan or
162BinaryOperatorKind.GreaterThanOrEqual)
167if (binaryOperation.OperatorKind is BinaryOperatorKind.Or or
168BinaryOperatorKind.And or
169BinaryOperatorKind.ConditionalAnd or
170BinaryOperatorKind.ConditionalOr)
176var newBinaryExpressionSyntax = negatedKind is BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals
384BinaryOperatorKind operationKind,
389BinaryOperatorKind.LessThanOrEqual => IsSpecialCaseBinaryExpression(binaryOperation, operationKind)
392BinaryOperatorKind.GreaterThanOrEqual => IsSpecialCaseBinaryExpression(binaryOperation, operationKind)
395BinaryOperatorKind.LessThan => generator.LessThanExpression(leftOperand, rightOperand),
396BinaryOperatorKind.GreaterThan => generator.GreaterThanExpression(leftOperand, rightOperand),
397BinaryOperatorKind.Or => generator.BitwiseOrExpression(leftOperand, rightOperand),
398BinaryOperatorKind.And => generator.BitwiseAndExpression(leftOperand, rightOperand),
399BinaryOperatorKind.ConditionalOr => generator.LogicalOrExpression(leftOperand, rightOperand),
400BinaryOperatorKind.ConditionalAnd => generator.LogicalAndExpression(leftOperand, rightOperand),
412BinaryOperatorKind operationKind)
422BinaryOperatorKind.LessThanOrEqual when rightOperand.IsNumericLiteral()
424BinaryOperatorKind.GreaterThanOrEqual when leftOperand.IsNumericLiteral()