1 implementation of IBinaryOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
5680internal sealed partial class BinaryOperation : Operation, IBinaryOperation
204 references to IBinaryOperation
GenerateDocumentationAndConfigFiles (7)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\roslyn\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\roslyn\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)
197public override MultiValue VisitBinaryOperator(IBinaryOperation operation, StateValue argument)
Microsoft.AspNetCore.Mvc.Api.Analyzers (2)
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (2)
138var binaryOperation = (IBinaryOperation)condition;
Microsoft.CodeAnalysis (27)
Generated\OperationKind.Generated.cs (2)
84/// <summary>Indicates an <see cref="IBinaryOperation"/>.</summary> 86/// <summary>Indicates an <see cref="IBinaryOperation"/>. Use <see cref="Binary"/> instead.</summary>
Generated\Operations.Generated.cs (3)
11018public override IOperation VisitBinaryOperator(IBinaryOperation operation, object? argument) 11523public virtual void VisitBinaryOperator(IBinaryOperation operation) => DefaultVisit(operation); 11664public virtual TResult? VisitBinaryOperator(IBinaryOperation operation, TArgument argument) => DefaultVisit(operation, argument);
Operations\ControlFlowGraphBuilder.cs (16)
2162private static bool IsConditional(IBinaryOperation operation) 2174public override IOperation VisitBinaryOperator(IBinaryOperation operation, int? captureIdForResult) 2214var stack = ArrayBuilder<(IBinaryOperation, EvalStackFrame)>.GetInstance(); 2222if (leftOperand is not IBinaryOperation binary || IsConditional(binary)) 2279private static bool CalculateAndOrSense(IBinaryOperation binOp, bool sense) 2295private IOperation VisitBinaryConditionalOperator(IBinaryOperation binOp, bool sense, int? captureIdForResult, 2311private IOperation VisitNullableBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2417private IOperation VisitObjectBinaryConditionalOperator(IBinaryOperation binOp) 2472private IOperation VisitDynamicBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2572private IOperation VisitUserDefinedBinaryConditionalOperator(IBinaryOperation binOp, int? captureIdForResult) 2661private IOperation VisitShortCircuitingOperator(IBinaryOperation condition, bool sense, bool stopSense, bool stopValue, 2737var binOp = (IBinaryOperation)condition; 2759private static bool IsBooleanConditionalOperator(IBinaryOperation binOp) 2801if (IsBooleanConditionalOperator((IBinaryOperation)condition)) 2816else 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\roslyn\src\RoslynAnalyzers\Microsoft.CodeAnalysis.BannedApiAnalyzers\Core\SymbolIsBannedAnalyzerBase.cs (1)
132case IBinaryOperation binary:
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\roslyn\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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
147if (operation is IBinaryOperation binaryOperation) 378IBinaryOperation binaryOperation, 407IBinaryOperation binaryOperation,
Microsoft.CodeAnalysis.AnalyzerUtilities (15)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
436public override DisposeAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
381public override ParameterValidationAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
903public override PointsToAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (1)
224public override ValueContentAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument)
src\roslyn\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\roslyn\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 (15)
src\roslyn\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\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
61var operation = (IBinaryOperation)context.Operation;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
369if (operation.Parent is IBinaryOperation)
src\roslyn\src\Analyzers\Core\Analyzers\UseCompoundAssignment\AbstractUseCompoundAssignmentDiagnosticAnalyzer.cs (4)
151var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken); 171var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (1)
163if (current is IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals } binaryOperation)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
214if (condition is not IBinaryOperation binaryOperator)
src\roslyn\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\roslyn\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)
1558IBinaryOperation createBoundUserDefinedConditionalLogicalOperator(BoundUserDefinedConditionalLogicalOperator boundBinaryOperator, IOperation left, IOperation right) 1582private IBinaryOperation CreateBoundBinaryOperatorOperation(BoundBinaryOperator boundBinaryOperator, IOperation left, IOperation right) 1619static IBinaryOperation createBoundBinaryOperatorOperation(
Microsoft.CodeAnalysis.CSharp.CodeStyle (16)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
170!IsSubtraction(argumentValue, out var subtraction))
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
185if (IsSubtraction(startOperation, out var subtraction)) 232if (!IsSubtraction(invocation.Arguments[1].Value, out var subtraction) ||
src\roslyn\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\roslyn\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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1066if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1582if (operation is IBinaryOperation { OperatorMethod: not null })
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (11)
src\roslyn\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\roslyn\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\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
170!IsSubtraction(argumentValue, out var subtraction))
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
185if (IsSubtraction(startOperation, out var subtraction)) 232if (!IsSubtraction(invocation.Arguments[1].Value, out var subtraction) ||
src\roslyn\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\roslyn\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\roslyn\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\roslyn\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.NetAnalyzers (3)
Microsoft.NetCore.Analyzers\Runtime\CSharpUseSpanBasedStringConcat.cs (3)
14private protected override bool IsTopMostConcatOperation(IBinaryOperation binaryOperation) 17(binaryOperation.Parent is not IBinaryOperation parentBinary || !IsConcatOperation(parentBinary)); 19static bool IsConcatOperation(IBinaryOperation operation)
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1066if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1582if (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\roslyn\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\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
61var operation = (IBinaryOperation)context.Operation;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
369if (operation.Parent is IBinaryOperation)
src\roslyn\src\Analyzers\Core\Analyzers\UseCompoundAssignment\AbstractUseCompoundAssignmentDiagnosticAnalyzer.cs (4)
151var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken); 171var operation = (IBinaryOperation)semanticModel.GetRequiredOperation(binaryExpression, cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (1)
163if (current is IBinaryOperation { OperatorKind: BinaryOperatorKind.Equals or BinaryOperatorKind.NotEquals } binaryOperation)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
214if (condition is not IBinaryOperation binaryOperator)
ValueTracking\ValueTracker.OperationCollector.cs (1)
240or IBinaryOperation
Microsoft.CodeAnalysis.ResxSourceGenerator (7)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\roslyn\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.VisualBasic.NetAnalyzers (3)
Microsoft.NetCore.Analyzers\Runtime\BasicUseSpanBasedStringConcat.vb (3)
13Private Protected Overrides Function IsTopMostConcatOperation(binaryOperation As IBinaryOperation) As Boolean 18Dim parentBinaryOperation = TryCast(WalkUpImplicitConversionToObject(binaryOperation.Parent), IBinaryOperation) 27Private Shared Function IsStringConcatOperation(operation As IBinaryOperation) As Boolean
Microsoft.CodeAnalysis.Workspaces (6)
src\roslyn\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\roslyn\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\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (1)
208countBinaryOperator(operation, ((IBinaryOperation)operation).OperatorKind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
336var binaryOperation = (IBinaryOperation)operation;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
244public static bool IsComparisonOperator(this IBinaryOperation binaryOperation)
src\roslyn\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\roslyn\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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (2)
1066if (operation.UnwrapImplicitConversion() is IBinaryOperation binaryOperation) 1582if (operation is IBinaryOperation { OperatorMethod: not null })