1 instantiation of BinaryExpressionSyntax
Microsoft.CodeAnalysis.CSharp (1)
_generated\1\Syntax.xml.Internal.Generated.cs (1)
2768internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.BinaryExpressionSyntax(this, parent, position);
423 references to BinaryExpressionSyntax
Microsoft.Analyzers.Local (1)
CallAnalysis\Throws.cs (1)
49if (throwExpression.Parent is BinaryExpressionSyntax binaryExpression)
Microsoft.AspNetCore.App.Analyzers (1)
RouteEmbeddedLanguage\Infrastructure\SyntaxNodeExtensions.cs (1)
41=> node is BinaryExpressionSyntax;
Microsoft.CodeAnalysis.CSharp (61)
_generated\0\Syntax.xml.Main.Generated.cs (6)
112public virtual TResult? VisitBinaryExpression(BinaryExpressionSyntax node) => this.DefaultVisit(node); 860public virtual void VisitBinaryExpression(BinaryExpressionSyntax node) => this.DefaultVisit(node); 1607public override SyntaxNode? VisitBinaryExpression(BinaryExpressionSyntax node) 2758public static BinaryExpressionSyntax BinaryExpression(SyntaxKind kind, ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 2814return (BinaryExpressionSyntax)Syntax.InternalSyntax.SyntaxFactory.BinaryExpression(kind, (Syntax.InternalSyntax.ExpressionSyntax)left.Green, (Syntax.InternalSyntax.SyntaxToken)operatorToken.Node!, (Syntax.InternalSyntax.ExpressionSyntax)right.Green).CreateRed(); 2818public static BinaryExpressionSyntax BinaryExpression(SyntaxKind kind, ExpressionSyntax left, ExpressionSyntax right)
_generated\2\Syntax.xml.Syntax.Generated.cs (5)
1734public BinaryExpressionSyntax Update(ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 1738var newNode = SyntaxFactory.BinaryExpression(this.Kind(), left, operatorToken, right); 1746public BinaryExpressionSyntax WithLeft(ExpressionSyntax left) => Update(left, this.OperatorToken, this.Right); 1747public BinaryExpressionSyntax WithOperatorToken(SyntaxToken operatorToken) => Update(this.Left, operatorToken, this.Right); 1748public BinaryExpressionSyntax WithRight(ExpressionSyntax right) => Update(this.Left, this.OperatorToken, right);
Binder\Binder.IdentifierUsedAsValueFinder.cs (2)
77!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 157!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression &&
Binder\Binder.OperatorResolutionForReporting.cs (1)
237BinaryExpressionSyntax binary => binary.OperatorToken,
Binder\Binder.ValueChecks.cs (1)
1297return parenthesized.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.SubtractExpression } binary &&
Binder\Binder_Expressions.cs (7)
687return BindSimpleBinaryOperator((BinaryExpressionSyntax)node, diagnostics); 691return BindConditionalLogicalOperator((BinaryExpressionSyntax)node, diagnostics); 693return BindNullCoalescingOperator((BinaryExpressionSyntax)node, diagnostics); 704return BindIsOperator((BinaryExpressionSyntax)node, diagnostics); 707return BindAsOperator((BinaryExpressionSyntax)node, diagnostics); 943var binaryParent = (BinaryExpressionSyntax)parent;
Binder\Binder_Operators.cs (21)
800BinaryExpressionSyntax node, 883private BoundExpression BindSimpleBinaryOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 892var syntaxNodes = ArrayBuilder<BinaryExpressionSyntax>.GetInstance(); 897var binOp = (BinaryExpressionSyntax)current; 924BinaryExpressionSyntax syntaxNode = syntaxNodes.Pop(); 936private BoundExpression BindSimpleBinaryOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics, 1134private bool BindSimpleBinaryOperatorParts(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics, BoundExpression left, BoundExpression right, BinaryOperatorKind kind, 1154BinaryExpressionSyntax node, 1274left = BindSimpleBinaryOperator((BinaryExpressionSyntax)current.Syntax, diagnostics, left ?? current.Left, right, leaveUnconvertedIfInterpolatedString: false); 1387private BoundExpression BindConditionalLogicalOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 1393BinaryExpressionSyntax binary = node; 1399var childAsBinary = child as BinaryExpressionSyntax; 1414binary = (BinaryExpressionSyntax)child.Parent; 1424private BoundExpression BindConditionalLogicalOperator(BinaryExpressionSyntax node, BoundExpression left, BoundExpression right, BindingDiagnosticBag diagnostics) 1431BoundExpression bindConditionalLogicalOperator(BinaryExpressionSyntax node, BoundExpression left, BoundExpression right, ref OperatorResolutionForReporting operatorResolutionForReporting, BindingDiagnosticBag diagnostics) 4820private BoundExpression BindIsOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 5341private BoundExpression BindAsOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 5623private BoundExpression GenerateNullCoalescingBadBinaryOpsError(BinaryExpressionSyntax node, BoundExpression leftOperand, BoundExpression rightOperand, BindingDiagnosticBag diagnostics) 5633private BoundExpression BindNullCoalescingOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics)
Binder\Binder_TupleOperators.cs (5)
25private BoundTupleBinaryOperator BindTupleBinaryOperator(BinaryExpressionSyntax node, BinaryOperatorKind kind, 82private TupleBinaryOperatorInfo BindTupleBinaryOperatorInfo(BinaryExpressionSyntax node, BinaryOperatorKind kind, 126private void PrepareBoolConversionAndTruthOperator(TypeSymbol type, BinaryExpressionSyntax node, BinaryOperatorKind binaryOperator, BindingDiagnosticBag diagnostics, 183private TupleBinaryOperatorInfo BindTupleDynamicBinaryOperatorSingleInfo(BinaryExpressionSyntax node, BinaryOperatorKind kind, 206private TupleBinaryOperatorInfo.Multiple BindTupleBinaryOperatorNestedInfo(BinaryExpressionSyntax node, BinaryOperatorKind kind,
Binder\ExpressionVariableFinder.cs (4)
316public override void VisitBinaryExpression(BinaryExpressionSyntax node) 327var binOp = (BinaryExpressionSyntax)current; 331while (current is BinaryExpressionSyntax);
Binder\LocalBinderFactory.cs (3)
978public override void VisitBinaryExpression(BinaryExpressionSyntax node) 989var binOp = node.Left as BinaryExpressionSyntax;
Compiler\MethodCompiler.cs (3)
2205!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2245!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2292if (parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && isExpression.Right == child)
Syntax\SyntaxFacts.cs (1)
139return ((BinaryExpressionSyntax)parent).Right == node;
Syntax\SyntaxNormalizer.cs (2)
659(token.Parent is BinaryExpressionSyntax && BinaryTokenNeedsSeparator(token.Kind())) || 660(next.Parent is BinaryExpressionSyntax && BinaryTokenNeedsSeparator(next.Kind())))
Microsoft.CodeAnalysis.CSharp.Analyzers (4)
MetaAnalyzers\Fixers\CSharpPreferIsKindFix.cs (4)
24var binaryExpression = root.FindNode(span, getInnermostNodeForTie: true).FirstAncestorOrSelf<BinaryExpressionSyntax>(); 43var binaryExpression = (BinaryExpressionSyntax)nodeToFix;
Microsoft.CodeAnalysis.CSharp.CodeStyle (74)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (2)
53=> node is BinaryExpressionSyntax || 64BinaryExpressionSyntax binaryExpression => (binaryExpression.Left, binaryExpression.OperatorToken, binaryExpression.Right),
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (4)
95var condition = (BinaryExpressionSyntax)ifStatement.Condition; 113BinaryExpressionSyntax condition, 219BinaryExpressionSyntax condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionDiagnosticAnalyzer.cs (1)
33BinaryExpressionSyntax binary => binary.Left,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastDiagnosticAnalyzer.cs (1)
32BinaryExpressionSyntax binary => TextSpan.FromBounds(binary.OperatorToken.SpanStart, node.Span.End),
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (1)
73case BinaryExpressionSyntax binaryExpression:
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (1)
72if (whereLambda.Body is not BinaryExpressionSyntax(kind: SyntaxKind.IsExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForIfNullStatementCheckDiagnosticAnalyzer.cs (1)
42if (condition is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) { Right: LiteralExpressionSyntax(SyntaxKind.NullLiteralExpression) } binary)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (1)
199if (currentArgumentExpression is BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundAssignmentDiagnosticAnalyzer.cs (1)
15: AbstractUseCompoundAssignmentDiagnosticAnalyzer<SyntaxKind, AssignmentExpressionSyntax, BinaryExpressionSyntax>(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentDiagnosticAnalyzer.cs (3)
54var coalesceExpression = (BinaryExpressionSyntax)context.Node; 179if (condition is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) { Right: LiteralExpressionSyntax(SyntaxKind.NullLiteralExpression) } binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
175if (subtraction.Syntax is not BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorDiagnosticAnalyzer.cs (2)
52var binaryExpression = (BinaryExpressionSyntax)context.Node;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (1)
92if (!ShouldAnalyze(context, out var notificationOption) || syntax is not BinaryExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (1)
272if (nodeToCheck.Parent is BinaryExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
23BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (1)
31public static Type? TryCreate(BinaryExpressionSyntax binaryExpression, IIsTypeOperation operation)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (3)
49case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 52case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 61case IIsTypeOperation { Syntax: BinaryExpressionSyntax binaryExpression } op:
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndMemberAccessDiagnosticAnalyzer.cs (3)
63var asExpression = (BinaryExpressionSyntax)context.Node; 66asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out var requiredLanguageVersion))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (3)
74BinaryExpressionSyntax binaryExpression => (binaryExpression.Left, (SyntaxNode)binaryExpression.Right), 98out var asExpression, 272[NotNullWhen(true)] out BinaryExpressionSyntax? asExpression,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
73var isExpression = (BinaryExpressionSyntax)syntaxContext.Node; 162BinaryExpressionSyntax isExpression,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (1)
81BinaryExpressionSyntax(SyntaxKind.IsExpression) { Right: TypeSyntax type } isExpression
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (4)
15BinaryExpressionSyntax asExpression, 17out BinaryExpressionSyntax? binaryExpression, 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 64BinaryExpressionSyntax(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (5)
560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 621BinaryExpressionSyntax or 925BinaryExpressionSyntax binaryExpression => GetTargetTypeForBinaryExpression(binaryExpression, topExpression), 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (8)
272nodeParent is BinaryExpressionSyntax(SyntaxKind.CoalesceExpression) binary && 353current = current is BinaryExpressionSyntax binaryExpression 457if (expression is not (BinaryExpressionSyntax or AssignmentExpressionSyntax)) 463if (parentExpression is BinaryExpressionSyntax parentBinaryExpression) 481node.Expression.IsKind(parentBinaryExpression.Kind(), out BinaryExpressionSyntax? nodeBinary)) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 681previousExpression is not BinaryExpressionSyntax(SyntaxKind.LessThanExpression) lessThanExpression) 716nextExpression is not BinaryExpressionSyntax(SyntaxKind.GreaterThanExpression) greaterThanExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SpacingFormattingRule.cs (2)
334if (currentToken.Parent is BinaryExpressionSyntax || 335previousToken.Parent is BinaryExpressionSyntax ||
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (6)
115(SyntaxFacts.IsBinaryExpression(kind) && (token.Parent is BinaryExpressionSyntax or OperatorDeclarationSyntax or RelationalPatternSyntax)) || 1358var isPatternExpression = (BinaryExpressionSyntax)node; 1461=> node is BinaryExpressionSyntax; 1529var binaryExpression = (BinaryExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (5)
50BinaryExpressionSyntax binaryExpression => IsUnnecessaryAsCast(binaryExpression, semanticModel, cancellationToken), 54public static bool IsUnnecessaryAsCast(BinaryExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 1063is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) parentBinary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
310if (currentOriginalNode is BinaryExpressionSyntax binaryExpression) 313return ReplacementBreaksBinaryExpression(binaryExpression, (BinaryExpressionSyntax)currentReplacedNode); 671private bool ReplacementBreaksBinaryExpression(BinaryExpressionSyntax binaryExpression, BinaryExpressionSyntax newBinaryExpression) 692private bool ReplacementBreaksIsOrAsExpression(BinaryExpressionSyntax originalIsOrAsExpression, BinaryExpressionSyntax newIsOrAsExpression)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (35)
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
64BinaryExpressionSyntax binary => (binary.Left, binary.Right, CSharpCodeFixesResources.Compare_to_0),
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionCodeFixProvider.cs (1)
78BinaryExpressionSyntax binary => binary.Left,
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastCodeFixProvider.cs (1)
74else if (old is BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentCodeFixProvider.cs (2)
101var currentCoalesce = (BinaryExpressionSyntax)currentCoalesceNode;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseIndexOperatorCodeFixProvider.cs (1)
45(currentNode, _) => IndexExpression(((BinaryExpressionSyntax)currentNode).Right));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorCodeFixProvider.cs (6)
57var binary = (BinaryExpressionSyntax)diagnostic.Location.FindNode(getInnermostNodeForTie: true, cancellationToken: cancellationToken); 61(current, g) => Rewrite((BinaryExpressionSyntax)current)); 65private static ExpressionSyntax Rewrite(BinaryExpressionSyntax binary) 87private static IsPatternExpressionSyntax RewriteWorker(BinaryExpressionSyntax binary) 93BinaryExpressionSyntax binary, ExpressionSyntax expr, ExpressionSyntax nullLiteral)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckCodeFixProvider.cs (1)
46BinaryExpressionSyntax binary =>
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
25BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (3)
49if (node is not BinaryExpressionSyntax asExpression) 53asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out _)) 115BinaryExpressionSyntax? binaryExpression, IsPatternExpressionSyntax? isPatternExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
95var asExpression = (BinaryExpressionSyntax)asExpressionLocation.FindNode(cancellationToken); 97var rightSideOfComparison = comparison is BinaryExpressionSyntax binaryExpression 162BinaryExpressionSyntax asExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpIsAndCastCheckCodeFixProvider.cs (2)
56var isExpression = (BinaryExpressionSyntax)ifStatement.Condition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (2)
121var binaryExpression = (BinaryExpressionSyntax)lastExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
347if (targetToken.Parent is BinaryExpressionSyntax binary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (3)
1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 2308if (token.Parent is BinaryExpressionSyntax binary) 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (5)
54if (node is BinaryExpressionSyntax binaryExpression) 148BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, expression), 218BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, previousToken: token), 956return InferTypeInCoalesceExpression((BinaryExpressionSyntax)binop, expressionOpt, previousToken); 1114BinaryExpressionSyntax coalesceExpression,
Microsoft.CodeAnalysis.CSharp.Features (126)
BraceCompletion\LessAndGreaterThanBraceCompletionService.cs (1)
52if (token.Parent is not BinaryExpressionSyntax(SyntaxKind.LessThanExpression) node || node.OperatorToken != token)
CodeRefactorings\InlineMethod\CSharpInlineMethodRefactoringProvider.cs (1)
112BinaryExpressionSyntax(kind: SyntaxKind.CoalesceExpression) binaryExpressionSyntax
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (15)
75BinaryExpressionSyntax(LogicalAndExpression) logicalAnd => CombineLogicalAndOperands(logicalAnd, model), 86BinaryExpressionSyntax(LogicalAndExpression) => true, 94private static Func<SyntaxNode, SyntaxNode>? CombineLogicalAndOperands(BinaryExpressionSyntax logicalAnd, SemanticModel model) 151static SyntaxNode AdjustBinaryExpressionOperands(BinaryExpressionSyntax logicalAnd, ExpressionSyntax replacement) 156if (logicalAnd.Left is BinaryExpressionSyntax(LogicalAndExpression) leftExpression) 177case BinaryExpressionSyntax(LogicalAndExpression) logicalAnd: 278BinaryExpressionSyntax(EqualsExpression) => ConstantPattern(constant), 279BinaryExpressionSyntax(NotEqualsExpression) => UnaryPattern(ConstantPattern(constant)), 280BinaryExpressionSyntax(GreaterThanExpression or 337BinaryExpressionSyntax(EqualsExpression or 356BinaryExpressionSyntax(LogicalAndExpression) expr => TryDetermineReceiver(inWhenClause ? expr.Left : expr.Right, model, inWhenClause), 359BinaryExpressionSyntax(IsExpression) { Right: NullableTypeSyntax type } expr => (expr.Left, type.ElementType, Flipped: false), 360BinaryExpressionSyntax(IsExpression) { Right: TypeSyntax type } expr => (expr.Left, type, Flipped: false), 369static (ExpressionSyntax Expression, ExpressionSyntax Constant, bool Flipped)? TryDetermineConstant(BinaryExpressionSyntax node, SemanticModel model) 505if (exp is BinaryExpressionSyntax(NotEqualsExpression) binaryExpression)
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (1)
117if (token.Kind() == SyntaxKind.LessThanToken && token.Parent is BinaryExpressionSyntax)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (1)
559result = IsLastTokenOfType<BinaryExpressionSyntax>(
ConvertCast\CSharpConvertDirectCastToTryCastCodeRefactoringProvider.cs (2)
30: AbstractConvertCastCodeRefactoringProvider<TypeSyntax, CastExpressionSyntax, BinaryExpressionSyntax> 40protected override BinaryExpressionSyntax ConvertExpression(CastExpressionSyntax castExpression, NullableContext nullableContext, bool isReferenceType)
ConvertCast\CSharpConvertTryCastToDirectCastCodeRefactoringProvider.cs (3)
26: AbstractConvertCastCodeRefactoringProvider<TypeSyntax, BinaryExpressionSyntax, CastExpressionSyntax> 39protected override TypeSyntax GetTypeNode(BinaryExpressionSyntax expression) 42protected override CastExpressionSyntax ConvertExpression(BinaryExpressionSyntax asExpression, NullableContext nullableContext, bool isReferenceType)
ConvertForToForEach\CSharpConvertForToForEachCodeRefactoringProvider.cs (2)
57var binaryExpression = (BinaryExpressionSyntax)forStatement.Condition;
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (1)
20: AbstractConvertIfToSwitchCodeRefactoringProvider<IfStatementSyntax, ExpressionSyntax, BinaryExpressionSyntax, PatternSyntax>
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (1)
99if (feature.HasFlag(Feature.TypePattern) && label.Pattern is AnalyzedPattern.Type { IsExpressionSyntax: BinaryExpressionSyntax { Right: IdentifierNameSyntax name } })
Debugging\CSharpProximityExpressionsService_ExpressionTermCollector.cs (1)
132if (expression is BinaryExpressionSyntax binaryExpression)
InitializeParameter\CSharpAddParameterCheckCodeRefactoringProvider.cs (1)
28BinaryExpressionSyntax,
InvertLogical\CSharpInvertLogicalCodeRefactoringProvider.cs (1)
16AbstractInvertLogicalCodeRefactoringProvider<SyntaxKind, ExpressionSyntax, BinaryExpressionSyntax>
ReverseForStatement\CSharpReverseForStatementCodeRefactoringProvider.cs (13)
62if (forStatement.Condition is not BinaryExpressionSyntax condition) 111VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax after, 122VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax after, 138VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, 206VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, 266var condition = (BinaryExpressionSyntax)forStatement.Condition!; 310if (expr is BinaryExpressionSyntax outerBinary) 318if (reducedLeft is BinaryExpressionSyntax innerLeft && 334reducedRight is BinaryExpressionSyntax innerRight && 344reducedLeft is BinaryExpressionSyntax innerLeft && 358private static BinaryExpressionSyntax Invert( 359VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax operand)
SimplifyTypeNames\SimplifyTypeNamesCodeFixProvider.cs (1)
54var right = ((BinaryExpressionSyntax)annotatedexpressionSyntax).Right;
Snippets\AbstractCSharpForLoopSnippetProvider.cs (2)
124var conditionExpression = (BinaryExpressionSyntax)condition!;
Snippets\CSharpReversedForLoopSnippetProvider.cs (2)
42var binaryInitializer = (BinaryExpressionSyntax)initializer;
SplitStringLiteral\InterpolatedStringSplitter.cs (1)
36protected override BinaryExpressionSyntax CreateSplitString()
SplitStringLiteral\SimpleStringSplitter.cs (1)
38protected override BinaryExpressionSyntax CreateSplitString()
SplitStringLiteral\StringSplitter.cs (2)
83protected abstract BinaryExpressionSyntax CreateSplitString(); 109var splitString = CreateSplitString();
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (2)
53=> node is BinaryExpressionSyntax || 64BinaryExpressionSyntax binaryExpression => (binaryExpression.Left, binaryExpression.OperatorToken, binaryExpression.Right),
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (4)
95var condition = (BinaryExpressionSyntax)ifStatement.Condition; 113BinaryExpressionSyntax condition, 219BinaryExpressionSyntax condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionDiagnosticAnalyzer.cs (1)
33BinaryExpressionSyntax binary => binary.Left,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastDiagnosticAnalyzer.cs (1)
32BinaryExpressionSyntax binary => TextSpan.FromBounds(binary.OperatorToken.SpanStart, node.Span.End),
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (1)
73case BinaryExpressionSyntax binaryExpression:
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (1)
72if (whereLambda.Body is not BinaryExpressionSyntax(kind: SyntaxKind.IsExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForIfNullStatementCheckDiagnosticAnalyzer.cs (1)
42if (condition is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) { Right: LiteralExpressionSyntax(SyntaxKind.NullLiteralExpression) } binary)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (1)
199if (currentArgumentExpression is BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundAssignmentDiagnosticAnalyzer.cs (1)
15: AbstractUseCompoundAssignmentDiagnosticAnalyzer<SyntaxKind, AssignmentExpressionSyntax, BinaryExpressionSyntax>(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentDiagnosticAnalyzer.cs (3)
54var coalesceExpression = (BinaryExpressionSyntax)context.Node; 179if (condition is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) { Right: LiteralExpressionSyntax(SyntaxKind.NullLiteralExpression) } binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
175if (subtraction.Syntax is not BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorDiagnosticAnalyzer.cs (2)
52var binaryExpression = (BinaryExpressionSyntax)context.Node;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (1)
92if (!ShouldAnalyze(context, out var notificationOption) || syntax is not BinaryExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (1)
272if (nodeToCheck.Parent is BinaryExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
23BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (1)
31public static Type? TryCreate(BinaryExpressionSyntax binaryExpression, IIsTypeOperation operation)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (3)
49case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 52case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 61case IIsTypeOperation { Syntax: BinaryExpressionSyntax binaryExpression } op:
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndMemberAccessDiagnosticAnalyzer.cs (3)
63var asExpression = (BinaryExpressionSyntax)context.Node; 66asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out var requiredLanguageVersion))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (3)
74BinaryExpressionSyntax binaryExpression => (binaryExpression.Left, (SyntaxNode)binaryExpression.Right), 98out var asExpression, 272[NotNullWhen(true)] out BinaryExpressionSyntax? asExpression,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
73var isExpression = (BinaryExpressionSyntax)syntaxContext.Node; 162BinaryExpressionSyntax isExpression,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (1)
81BinaryExpressionSyntax(SyntaxKind.IsExpression) { Right: TypeSyntax type } isExpression
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (4)
15BinaryExpressionSyntax asExpression, 17out BinaryExpressionSyntax? binaryExpression, 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 64BinaryExpressionSyntax(
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
64BinaryExpressionSyntax binary => (binary.Left, binary.Right, CSharpCodeFixesResources.Compare_to_0),
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionCodeFixProvider.cs (1)
78BinaryExpressionSyntax binary => binary.Left,
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastCodeFixProvider.cs (1)
74else if (old is BinaryExpressionSyntax binaryExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentCodeFixProvider.cs (2)
101var currentCoalesce = (BinaryExpressionSyntax)currentCoalesceNode;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseIndexOperatorCodeFixProvider.cs (1)
45(currentNode, _) => IndexExpression(((BinaryExpressionSyntax)currentNode).Right));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorCodeFixProvider.cs (6)
57var binary = (BinaryExpressionSyntax)diagnostic.Location.FindNode(getInnermostNodeForTie: true, cancellationToken: cancellationToken); 61(current, g) => Rewrite((BinaryExpressionSyntax)current)); 65private static ExpressionSyntax Rewrite(BinaryExpressionSyntax binary) 87private static IsPatternExpressionSyntax RewriteWorker(BinaryExpressionSyntax binary) 93BinaryExpressionSyntax binary, ExpressionSyntax expr, ExpressionSyntax nullLiteral)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckCodeFixProvider.cs (1)
46BinaryExpressionSyntax binary =>
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
25BinaryExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (3)
49if (node is not BinaryExpressionSyntax asExpression) 53asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out _)) 115BinaryExpressionSyntax? binaryExpression, IsPatternExpressionSyntax? isPatternExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
95var asExpression = (BinaryExpressionSyntax)asExpressionLocation.FindNode(cancellationToken); 97var rightSideOfComparison = comparison is BinaryExpressionSyntax binaryExpression 162BinaryExpressionSyntax asExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpIsAndCastCheckCodeFixProvider.cs (2)
56var isExpression = (BinaryExpressionSyntax)ifStatement.Condition;
UsePatternMatching\CSharpIsAndCastCheckWithoutNameCodeFixProvider.cs (2)
42var isExpression = (BinaryExpressionSyntax)location.FindNode(
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (5)
81var isExpression = (BinaryExpressionSyntax)context.Node; 110BinaryExpressionSyntax isExpression, 211SemanticModel semanticModel, BinaryExpressionSyntax isExpression, 252private static SyntaxNode? GetContainer(BinaryExpressionSyntax isExpression)
Wrapping\BinaryExpression\CSharpBinaryExpressionWrapper.cs (1)
15internal sealed class CSharpBinaryExpressionWrapper : AbstractBinaryExpressionWrapper<BinaryExpressionSyntax>
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (14)
Microsoft.NetCore.Analyzers\Performance\CSharpDoNotUseCountWhenAnyCanBeUsed.Fixer.cs (2)
71if (node is BinaryExpressionSyntax binary && 85if (node is BinaryExpressionSyntax binary &&
Microsoft.NetCore.Analyzers\Performance\CSharpPreferIsEmptyOverCount.Fixer.cs (2)
25if (node is BinaryExpressionSyntax binaryExpression) 32if (node is BinaryExpressionSyntax binaryExpression2)
Microsoft.NetCore.Analyzers\Performance\CSharpPreferLengthCountIsEmptyOverAny.Fixer.cs (2)
72static BinaryExpressionSyntax GetBinaryExpression(ExpressionSyntax expression, string member, SyntaxKind expressionKind) 90var binaryExpression = GetBinaryExpression(expression, propertyName, SyntaxKind.EqualsExpression);
Microsoft.NetCore.Analyzers\Runtime\CSharpTestForEmptyStringsUsingStringLength.Fixer.cs (3)
34return ((BinaryExpressionSyntax)binaryExpressionSyntax).Left; 39return ((BinaryExpressionSyntax)binaryExpressionSyntax).Right; 44return (node is BinaryExpressionSyntax) && (IsEqualsOperator(node) || IsNotEqualsOperator(node));
Microsoft.NetCore.Analyzers\Runtime\CSharpTestForNaNCorrectly.Fixer.cs (2)
36return ((BinaryExpressionSyntax)binaryExpressionSyntax).Left; 41return ((BinaryExpressionSyntax)binaryExpressionSyntax).Right;
Microsoft.NetCore.Analyzers\Usage\CSharpDoNotCompareSpanToNull.Fixer.cs (3)
24if (condition is not BinaryExpressionSyntax binaryExpression) 37private static SyntaxNode MakeIsEmptyCheck(BinaryExpressionSyntax binaryExpression) 48private static ExpressionSyntax GetComparatorExpression(BinaryExpressionSyntax binaryExpression)
Microsoft.CodeAnalysis.CSharp.Workspaces (55)
Classification\SyntaxClassification\OperatorOverloadSyntaxClassifier.cs (2)
21typeof(BinaryExpressionSyntax), 58BinaryExpressionSyntax binaryExpression => binaryExpression.OperatorToken.Span,
Classification\Worker_Preprocesser.cs (1)
146else if (node is BinaryExpressionSyntax binaryExpression)
Recommendations\CSharpRecommendationServiceRunner.cs (1)
188if (current is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression &&
Simplification\CSharpSimplificationService.Expander.cs (3)
344public override SyntaxNode VisitBinaryExpression(BinaryExpressionSyntax node) 360var result = (BinaryExpressionSyntax)base.VisitBinaryExpression(node);
Simplification\Reducers\CSharpCastReducer.Rewriter.cs (3)
31public override SyntaxNode VisitBinaryExpression(BinaryExpressionSyntax node) 34var reducedNode = result as BinaryExpressionSyntax;
Simplification\Reducers\CSharpNameReducer.Rewriter.cs (1)
204public override SyntaxNode VisitBinaryExpression(BinaryExpressionSyntax node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (5)
560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 621BinaryExpressionSyntax or 925BinaryExpressionSyntax binaryExpression => GetTargetTypeForBinaryExpression(binaryExpression, topExpression), 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (8)
272nodeParent is BinaryExpressionSyntax(SyntaxKind.CoalesceExpression) binary && 353current = current is BinaryExpressionSyntax binaryExpression 457if (expression is not (BinaryExpressionSyntax or AssignmentExpressionSyntax)) 463if (parentExpression is BinaryExpressionSyntax parentBinaryExpression) 481node.Expression.IsKind(parentBinaryExpression.Kind(), out BinaryExpressionSyntax? nodeBinary)) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 681previousExpression is not BinaryExpressionSyntax(SyntaxKind.LessThanExpression) lessThanExpression) 716nextExpression is not BinaryExpressionSyntax(SyntaxKind.GreaterThanExpression) greaterThanExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SpacingFormattingRule.cs (2)
334if (currentToken.Parent is BinaryExpressionSyntax || 335previousToken.Parent is BinaryExpressionSyntax ||
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (6)
115(SyntaxFacts.IsBinaryExpression(kind) && (token.Parent is BinaryExpressionSyntax or OperatorDeclarationSyntax or RelationalPatternSyntax)) || 1358var isPatternExpression = (BinaryExpressionSyntax)node; 1461=> node is BinaryExpressionSyntax; 1529var binaryExpression = (BinaryExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (5)
50BinaryExpressionSyntax binaryExpression => IsUnnecessaryAsCast(binaryExpression, semanticModel, cancellationToken), 54public static bool IsUnnecessaryAsCast(BinaryExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 1063is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) parentBinary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
310if (currentOriginalNode is BinaryExpressionSyntax binaryExpression) 313return ReplacementBreaksBinaryExpression(binaryExpression, (BinaryExpressionSyntax)currentReplacedNode); 671private bool ReplacementBreaksBinaryExpression(BinaryExpressionSyntax binaryExpression, BinaryExpressionSyntax newBinaryExpression) 692private bool ReplacementBreaksIsOrAsExpression(BinaryExpressionSyntax originalIsOrAsExpression, BinaryExpressionSyntax newIsOrAsExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (2)
121var binaryExpression = (BinaryExpressionSyntax)lastExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
347if (targetToken.Parent is BinaryExpressionSyntax binary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (3)
1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 2308if (token.Parent is BinaryExpressionSyntax binary) 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (5)
54if (node is BinaryExpressionSyntax binaryExpression) 148BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, expression), 218BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, previousToken: token), 956return InferTypeInCoalesceExpression((BinaryExpressionSyntax)binop, expressionOpt, previousToken); 1114BinaryExpressionSyntax coalesceExpression,
Microsoft.Maui.Controls.BindingSourceGen (3)
BindingSourceGenerator.cs (1)
254 BinaryExpressionSyntax binary when binary.Kind() == SyntaxKind.AsExpression => binary.Left,
PathParser.cs (2)
29 BinaryExpressionSyntax asExpression when asExpression.Kind() == SyntaxKind.AsExpression => HandleBinaryExpression(asExpression), 132 private Result<List<IPathPart>> HandleBinaryExpression(BinaryExpressionSyntax asExpression)
Microsoft.ML.AutoML (1)
Utils\Entity.cs (1)
143else if (exp is BinaryExpressionSyntax b)
Microsoft.ML.InternalCodeAnalyzer (2)
ContractsCheckAnalyzer.cs (2)
145var binExp = (BinaryExpressionSyntax)exp;
Roslyn.Diagnostics.CSharp.Analyzers (44)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (5)
560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 621BinaryExpressionSyntax or 925BinaryExpressionSyntax binaryExpression => GetTargetTypeForBinaryExpression(binaryExpression, topExpression), 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (8)
272nodeParent is BinaryExpressionSyntax(SyntaxKind.CoalesceExpression) binary && 353current = current is BinaryExpressionSyntax binaryExpression 457if (expression is not (BinaryExpressionSyntax or AssignmentExpressionSyntax)) 463if (parentExpression is BinaryExpressionSyntax parentBinaryExpression) 481node.Expression.IsKind(parentBinaryExpression.Kind(), out BinaryExpressionSyntax? nodeBinary)) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 681previousExpression is not BinaryExpressionSyntax(SyntaxKind.LessThanExpression) lessThanExpression) 716nextExpression is not BinaryExpressionSyntax(SyntaxKind.GreaterThanExpression) greaterThanExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SpacingFormattingRule.cs (2)
334if (currentToken.Parent is BinaryExpressionSyntax || 335previousToken.Parent is BinaryExpressionSyntax ||
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (6)
115(SyntaxFacts.IsBinaryExpression(kind) && (token.Parent is BinaryExpressionSyntax or OperatorDeclarationSyntax or RelationalPatternSyntax)) || 1358var isPatternExpression = (BinaryExpressionSyntax)node; 1461=> node is BinaryExpressionSyntax; 1529var binaryExpression = (BinaryExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (5)
50BinaryExpressionSyntax binaryExpression => IsUnnecessaryAsCast(binaryExpression, semanticModel, cancellationToken), 54public static bool IsUnnecessaryAsCast(BinaryExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 1063is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) parentBinary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
310if (currentOriginalNode is BinaryExpressionSyntax binaryExpression) 313return ReplacementBreaksBinaryExpression(binaryExpression, (BinaryExpressionSyntax)currentReplacedNode); 671private bool ReplacementBreaksBinaryExpression(BinaryExpressionSyntax binaryExpression, BinaryExpressionSyntax newBinaryExpression) 692private bool ReplacementBreaksIsOrAsExpression(BinaryExpressionSyntax originalIsOrAsExpression, BinaryExpressionSyntax newIsOrAsExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (2)
121var binaryExpression = (BinaryExpressionSyntax)lastExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
347if (targetToken.Parent is BinaryExpressionSyntax binary)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (3)
1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 2308if (token.Parent is BinaryExpressionSyntax binary) 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (5)
54if (node is BinaryExpressionSyntax binaryExpression) 148BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, expression), 218BinaryExpressionSyntax binaryExpression => InferTypeInBinaryOrAssignmentExpression(binaryExpression, binaryExpression.OperatorToken, binaryExpression.Left, binaryExpression.Right, previousToken: token), 956return InferTypeInCoalesceExpression((BinaryExpressionSyntax)binop, expressionOpt, previousToken); 1114BinaryExpressionSyntax coalesceExpression,
System.Private.CoreLib.Generators (2)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (2)
248else if (expressionToDecompose is BinaryExpressionSyntax binaryExpression) 319else if (expressionToDecompose is BinaryExpressionSyntax binaryExpression)