1 implementation of IBinaryOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
5678internal sealed partial class BinaryOperation : Operation, IBinaryOperation
275 references to IBinaryOperation
GenerateDocumentationAndConfigFiles (7)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
ILLink.RoslynAnalyzer (2)
DataFlow\FeatureChecksVisitor.cs (1)
97public override FeatureChecksValue VisitBinaryOperator(IBinaryOperation operation, StateValue state)
TrimAnalysis\TrimAnalysisVisitor.cs (1)
192public override MultiValue VisitBinaryOperator(IBinaryOperation operation, StateValue argument)
Metrics (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Metrics.Legacy (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Microsoft.AspNetCore.Mvc.Api.Analyzers (2)
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (2)
138var binaryOperation = (IBinaryOperation)condition;
Microsoft.CodeAnalysis (27)
Generated\OperationKind.Generated.cs (2)
83/// <summary>Indicates an <see cref="IBinaryOperation"/>.</summary> 85/// <summary>Indicates an <see cref="IBinaryOperation"/>. Use <see cref="Binary"/> instead.</summary>
Generated\Operations.Generated.cs (3)
11016public override IOperation VisitBinaryOperator(IBinaryOperation operation, object? argument) 11521public virtual void VisitBinaryOperator(IBinaryOperation operation) => DefaultVisit(operation); 11661public virtual TResult? VisitBinaryOperator(IBinaryOperation operation, TArgument argument) => DefaultVisit(operation, argument);
Operations\ControlFlowGraphBuilder.cs (16)
2154private static bool IsConditional(IBinaryOperation operation) 2166public override IOperation VisitBinaryOperator(IBinaryOperation operation, int? captureIdForResult) 2206var stack = ArrayBuilder<(IBinaryOperation, EvalStackFrame)>.GetInstance(); 2214if (leftOperand is not IBinaryOperation binary || IsConditional(binary)) 2271private static bool CalculateAndOrSense(IBinaryOperation binOp, bool sense) 2287private IOperation VisitBinaryConditionalOperator(IBinaryOperation binOp, bool sense, int? captureIdForResult, 2303private IOperation VisitNullableBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2409private IOperation VisitObjectBinaryConditionalOperator(IBinaryOperation binOp) 2464private IOperation VisitDynamicBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2564private IOperation VisitUserDefinedBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2653private IOperation VisitShortCircuitingOperator(IBinaryOperation condition, bool sense, bool stopSense, bool stopValue, 2729var binOp = (IBinaryOperation)condition; 2751private static bool IsBooleanConditionalOperator(IBinaryOperation binOp) 2793if (IsBooleanConditionalOperator((IBinaryOperation)condition)) 2808else if (top.condition is IBinaryOperation binOp && IsBooleanConditionalOperator(binOp))
Operations\Loops\ForToLoopOperationInfo.cs (4)
11public readonly IBinaryOperation Addition; 12public readonly IBinaryOperation Subtraction; 16public ForToLoopOperationUserDefinedInfo(IBinaryOperation addition, IBinaryOperation subtraction, IOperation lessThanOrEqual, IOperation greaterThanOrEqual)
Operations\OperationMapBuilder.cs (2)
35public override object? VisitBinaryOperator([DisallowNull] IBinaryOperation? operation, Dictionary<SyntaxNode, IOperation> argument) 43if (operation.LeftOperand is IBinaryOperation nested)
Microsoft.CodeAnalysis.Analyzers (17)
MetaAnalyzers\CompareSymbolsCorrectlyAnalyzer.cs (2)
127var binary = (IBinaryOperation)context.Operation;
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (2)
74IBinaryOperation binaryOperation => await ConvertToEqualsAsync(document, semanticModel, binaryOperation, cancellationToken).ConfigureAwait(false), 257private static async Task<Document> ConvertToEqualsAsync(Document document, SemanticModel semanticModel, IBinaryOperation binaryOperation, CancellationToken cancellationToken)
MetaAnalyzers\PreferIsKindAnalyzer.cs (2)
72var operation = (IBinaryOperation)context.Operation;
src\RoslynAnalyzers\Microsoft.CodeAnalysis.BannedApiAnalyzers\Core\SymbolIsBannedAnalyzerBase.cs (1)
118case IBinaryOperation binary:
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.Analyzers.UnitTests (2)
MetaAnalyzers\DoNotStorePerCompilationDataOntoFieldsRuleTests.cs (2)
32GetCSharpExpectedDiagnostic(23, 29, violatingTypeName: typeof(IBinaryOperation).FullName), 88GetBasicExpectedDiagnostic(23, 35, violatingTypeName: typeof(IBinaryOperation).FullName),
Microsoft.CodeAnalysis.AnalyzerUtilities (15)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
436public override DisposeAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
381public override ParameterValidationAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
903public override PointsToAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (1)
224public override ValueContentAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (4)
1648case IBinaryOperation binaryOperation: 1850protected virtual PredicateValueKind SetValueForComparisonOperator(IBinaryOperation operation, TAnalysisData targetAnalysisData) 3721public virtual TAbstractAnalysisValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument) 3726public sealed override TAbstractAnalysisValue VisitBinaryOperator(IBinaryOperation operation, object? argument)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Microsoft.CodeAnalysis.BannedApiAnalyzers (12)
RestrictedInternalsVisibleToAnalyzer.cs (1)
96IBinaryOperation binary => binary.OperatorMethod,
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
SymbolIsBannedAnalyzerBase.cs (1)
118case IBinaryOperation binary:
Microsoft.CodeAnalysis.CodeStyle (15)
src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (3)
50case IBinaryOperation topBinary: 56topBinary.LeftOperand is IBinaryOperation leftBinary && 95if (conditional.Condition is IBinaryOperation binary &&
src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
61var operation = (IBinaryOperation)context.Operation;
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
353if (operation.Parent is IBinaryOperation)
src\Analyzers\Core\Analyzers\UseCompoundAssignment\AbstractUseCompoundAssignmentDiagnosticAnalyzer.cs (4)
151var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken); 171var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken);
src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (1)
163if (current is IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals } binaryOperation)
src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
214if (condition is not IBinaryOperation binaryOperator)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Microsoft.CodeAnalysis.CodeStyle.Fixes (3)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.CSharp (3)
Operations\CSharpOperationFactory.cs (3)
1533IBinaryOperation createBoundUserDefinedConditionalLogicalOperator(BoundUserDefinedConditionalLogicalOperator boundBinaryOperator, IOperation left, IOperation right) 1557private IBinaryOperation CreateBoundBinaryOperatorOperation(BoundBinaryOperator boundBinaryOperator, IOperation left, IOperation right) 1594static IBinaryOperation createBoundBinaryOperatorOperation(
Microsoft.CodeAnalysis.CSharp.CodeStyle (16)
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
170!IsSubtraction(argumentValue, out var subtraction))
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
185if (IsSubtraction(startOperation, out var subtraction)) 232if (!IsSubtraction(invocation.Arguments[1].Value, out var subtraction) ||
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\Helpers.cs (2)
53public static bool IsSubtraction(IOperation operation, [NotNullWhen(true)] out IBinaryOperation? subtraction) 55if (operation is IBinaryOperation { OperatorKind: BinaryOperatorKind.Subtract } binaryOperation)
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (9)
43case IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals } op: 46case IBinaryOperation { OperatorKind: NotEquals } op: 49case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 52case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 55case IBinaryOperation op when IsRelationalOperator(op.OperatorKind): 74private static AnalyzedPattern? ParseBinaryPattern(IBinaryOperation op, bool isDisjunctive, SyntaxToken token) 87private static ConstantResult DetermineConstant(IBinaryOperation op) 97private static AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op) 112private static AnalyzedPattern? ParseConstantPattern(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1049if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1545if (operation is IBinaryOperation { OperatorMethod: not null })
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (11)
src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (8)
156if (operand is not IBinaryOperation 659if (operation is IBinaryOperation binOp) 738(true, IBinaryOperation { OperatorKind: BinaryOperatorKind.ConditionalAnd } andOp) 745(false, IBinaryOperation { OperatorKind: BinaryOperatorKind.ConditionalOr } orOp) 750(true, IBinaryOperation 758(false, IBinaryOperation 802(true, IBinaryOperation 814(false, IBinaryOperation
src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (3)
161if (IsSubtraction(result.InvocationOperation.Arguments[0].Value, out var subtraction) && 175if (IsSubtraction(result.InvocationOperation.Arguments[1].Value, out var subtraction) && 279if (IsSubtraction(rangeOperation, out var subtraction) &&
Microsoft.CodeAnalysis.CSharp.Features (25)
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
170!IsSubtraction(argumentValue, out var subtraction))
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
185if (IsSubtraction(startOperation, out var subtraction)) 232if (!IsSubtraction(invocation.Arguments[1].Value, out var subtraction) ||
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\Helpers.cs (2)
53public static bool IsSubtraction(IOperation operation, [NotNullWhen(true)] out IBinaryOperation? subtraction) 55if (operation is IBinaryOperation { OperatorKind: BinaryOperatorKind.Subtract } binaryOperation)
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (9)
43case IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals } op: 46case IBinaryOperation { OperatorKind: NotEquals } op: 49case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 52case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 55case IBinaryOperation op when IsRelationalOperator(op.OperatorKind): 74private static AnalyzedPattern? ParseBinaryPattern(IBinaryOperation op, bool isDisjunctive, SyntaxToken token) 87private static ConstantResult DetermineConstant(IBinaryOperation op) 97private static AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op) 112private static AnalyzedPattern? ParseConstantPattern(IBinaryOperation op)
src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (8)
156if (operand is not IBinaryOperation 659if (operation is IBinaryOperation binOp) 738(true, IBinaryOperation { OperatorKind: BinaryOperatorKind.ConditionalAnd } andOp) 745(false, IBinaryOperation { OperatorKind: BinaryOperatorKind.ConditionalOr } orOp) 750(true, IBinaryOperation 758(false, IBinaryOperation 802(true, IBinaryOperation 814(false, IBinaryOperation
src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (3)
161if (IsSubtraction(result.InvocationOperation.Arguments[0].Value, out var subtraction) && 175if (IsSubtraction(result.InvocationOperation.Arguments[1].Value, out var subtraction) && 279if (IsSubtraction(rangeOperation, out var subtraction) &&
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1049if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1545if (operation is IBinaryOperation { OperatorMethod: not null })
Microsoft.CodeAnalysis.Features (27)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (12)
209if (operation is IBinaryOperation { OperatorKind: ConditionalOr } op) 255private ConstantResult DetermineConstant(IBinaryOperation op) 282case IBinaryOperation { OperatorKind: ConditionalAnd } op 286case IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals } op: 296case IBinaryOperation { OperatorKind: NotEquals } op 300case IBinaryOperation op 306case IBinaryOperation { OperatorKind: ConditionalAnd } op 348private AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op) 376private (SyntaxNode Lower, SyntaxNode Higher) GetRangeBounds(IBinaryOperation op) 379{ LeftOperand: IBinaryOperation left, RightOperand: IBinaryOperation right }) 397private static (BoundKind Kind, IOperation Expression, IOperation Value) GetRangeBound(IBinaryOperation op)
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (2)
267if (condition is IBinaryOperation binaryOperator) 307if (condition is IBinaryOperation { OperatorKind: BinaryOperatorKind.LessThan or BinaryOperatorKind.LessThanOrEqual or BinaryOperatorKind.GreaterThan or BinaryOperatorKind.GreaterThanOrEqual } binaryOperator &&
src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (3)
50case IBinaryOperation topBinary: 56topBinary.LeftOperand is IBinaryOperation leftBinary && 95if (conditional.Condition is IBinaryOperation binary &&
src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
61var operation = (IBinaryOperation)context.Operation;
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
353if (operation.Parent is IBinaryOperation)
src\Analyzers\Core\Analyzers\UseCompoundAssignment\AbstractUseCompoundAssignmentDiagnosticAnalyzer.cs (4)
151var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken); 171var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken);
src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (1)
163if (current is IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals } binaryOperation)
src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
214if (condition is not IBinaryOperation binaryOperator)
ValueTracking\ValueTracker.OperationCollector.cs (1)
240or IBinaryOperation
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (10)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.PublicApiAnalyzers (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Microsoft.CodeAnalysis.ResxSourceGenerator (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Microsoft.CodeAnalysis.Test.Utilities (18)
Compilation\ControlFlowGraphVerifier.cs (3)
944if (reference.Parent is IBinaryOperation binOp) 1875var binary = (IBinaryOperation)n;
Compilation\OperationTreeVerifier.cs (2)
1174public override void VisitBinaryOperator(IBinaryOperation operation) 1176LogString(nameof(IBinaryOperation));
Compilation\TestOperationVisitor.cs (1)
767public override void VisitBinaryOperator(IBinaryOperation operation)
Diagnostics\OperationTestAnalyzer.cs (12)
154IBinaryOperation condition = (IBinaryOperation)forCondition; 245IBinaryOperation advanceOperation = (IBinaryOperation)advanceAssignment.Value; 1515IBinaryOperation binary = (IBinaryOperation)operationContext.Operation; 1569var binary = (IBinaryOperation)operationContext.Operation; 1608var binary = (IBinaryOperation)operationContext.Operation; 1788var binary = (IBinaryOperation)operation;
Microsoft.CodeAnalysis.Workspaces (6)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Roslyn.Diagnostics.Analyzers (11)
AbstractDoNotCopyValue.cs (1)
436public override void VisitBinaryOperator(IBinaryOperation operation)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Roslyn.Diagnostics.CSharp.Analyzers (2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1049if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1545if (operation is IBinaryOperation { OperatorMethod: not null })
Test.Utilities (4)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
Text.Analyzers (10)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFactsExtensions.cs (3)
70if (semanticModel.GetOperation(parentBinary) is IBinaryOperation parentBinaryOp && 71semanticModel.GetOperation(innerBinary) is IBinaryOperation innerBinaryOp) 84static bool IsArithmetic(IBinaryOperation op)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,