1 implementation of IBinaryOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
5640internal sealed partial class BinaryOperation : Operation, IBinaryOperation
279 references to IBinaryOperation
GenerateDocumentationAndConfigFiles (7)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,
ILLink.RoslynAnalyzer (2)
DataFlow\FeatureChecksVisitor.cs (1)
97public override FeatureChecksValue VisitBinaryOperator(IBinaryOperation operation, StateValue state)
TrimAnalysis\TrimAnalysisVisitor.cs (1)
187public override MultiValue VisitBinaryOperator(IBinaryOperation operation, StateValue argument)
Metrics (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
10946public override IOperation VisitBinaryOperator(IBinaryOperation operation, object? argument) 11446public virtual void VisitBinaryOperator(IBinaryOperation operation) => DefaultVisit(operation); 11585public virtual TResult? VisitBinaryOperator(IBinaryOperation operation, TArgument argument) => DefaultVisit(operation, argument);
Operations\ControlFlowGraphBuilder.cs (16)
2152private static bool IsConditional(IBinaryOperation operation) 2164public override IOperation VisitBinaryOperator(IBinaryOperation operation, int? captureIdForResult) 2204var stack = ArrayBuilder<(IBinaryOperation, EvalStackFrame)>.GetInstance(); 2212if (leftOperand is not IBinaryOperation binary || IsConditional(binary)) 2269private static bool CalculateAndOrSense(IBinaryOperation binOp, bool sense) 2285private IOperation VisitBinaryConditionalOperator(IBinaryOperation binOp, bool sense, int? captureIdForResult, 2301private IOperation VisitNullableBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2407private IOperation VisitObjectBinaryConditionalOperator(IBinaryOperation binOp) 2462private IOperation VisitDynamicBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2562private IOperation VisitUserDefinedBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2651private IOperation VisitShortCircuitingOperator(IBinaryOperation condition, bool sense, bool stopSense, bool stopValue, 2727var binOp = (IBinaryOperation)condition; 2749private static bool IsBooleanConditionalOperator(IBinaryOperation binOp) 2791if (IsBooleanConditionalOperator((IBinaryOperation)condition)) 2806else 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.CSharp (3)
Operations\CSharpOperationFactory.cs (3)
1483IBinaryOperation createBoundUserDefinedConditionalLogicalOperator(BoundUserDefinedConditionalLogicalOperator boundBinaryOperator, IOperation left, IOperation right) 1507private IBinaryOperation CreateBoundBinaryOperatorOperation(BoundBinaryOperator boundBinaryOperator, IOperation left, IOperation right) 1553static 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)
54public static bool IsSubtraction(IOperation operation, [NotNullWhen(true)] out IBinaryOperation? subtraction) 56if (operation is IBinaryOperation 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)
956if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1453if (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)
156if (IsSubtraction(result.InvocationOperation.Arguments[0].Value, out var subtraction) && 170if (IsSubtraction(result.InvocationOperation.Arguments[1].Value, out var subtraction) && 274if (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)
54public static bool IsSubtraction(IOperation operation, [NotNullWhen(true)] out IBinaryOperation? subtraction) 56if (operation is IBinaryOperation 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)
156if (IsSubtraction(result.InvocationOperation.Arguments[0].Value, out var subtraction) && 170if (IsSubtraction(result.InvocationOperation.Arguments[1].Value, out var subtraction) && 274if (IsSubtraction(rangeOperation, out var subtraction) &&
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
956if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1453if (operation is IBinaryOperation { OperatorMethod: not null })
Microsoft.CodeAnalysis.Features (27)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (12)
208if (operation is IBinaryOperation { OperatorKind: ConditionalOr } op) 254private ConstantResult DetermineConstant(IBinaryOperation op) 281case IBinaryOperation { OperatorKind: ConditionalAnd } op 285case IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals } op: 295case IBinaryOperation { OperatorKind: NotEquals } op 299case IBinaryOperation op 305case IBinaryOperation { OperatorKind: ConditionalAnd } op 347private AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op) 375private (SyntaxNode Lower, SyntaxNode Higher) GetRangeBounds(IBinaryOperation op) 378{ LeftOperand: IBinaryOperation left, RightOperand: IBinaryOperation right }) 396private 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)
241or IBinaryOperation
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (10)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.PublicApiAnalyzers (7)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
1168public override void VisitBinaryOperator(IBinaryOperation operation) 1170LogString(nameof(IBinaryOperation));
Compilation\TestOperationVisitor.cs (1)
761public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,
Roslyn.Compilers.VisualBasic.IOperation.UnitTests (4)
IOperation\IOperationTests.vb (4)
66Dim add1 As IBinaryOperation = DirectCast(assignment1.Value, IBinaryOperation) 99Dim add2 As IBinaryOperation = DirectCast(assignment2.Value, IBinaryOperation)
Roslyn.Diagnostics.Analyzers (11)
AbstractDoNotCopyValue.cs (1)
437public override void VisitBinaryOperator(IBinaryOperation operation)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,
Roslyn.Diagnostics.CSharp.Analyzers (2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
956if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1453if (operation is IBinaryOperation { OperatorMethod: not null })
Test.Utilities (4)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
209countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
337var binaryOperation = (IBinaryOperation)operation;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
245public 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)
149if (operation is IBinaryOperation binaryOperation) 380IBinaryOperation binaryOperation, 409IBinaryOperation binaryOperation,