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);
424 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 (62)
_generated\0\Syntax.xml.Main.Generated.cs (6)
113public virtual TResult? VisitBinaryExpression(BinaryExpressionSyntax node) => this.DefaultVisit(node); 869public virtual void VisitBinaryExpression(BinaryExpressionSyntax node) => this.DefaultVisit(node); 1624public override SyntaxNode? VisitBinaryExpression(BinaryExpressionSyntax node) 2783public static BinaryExpressionSyntax BinaryExpression(SyntaxKind kind, ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 2839return (BinaryExpressionSyntax)Syntax.InternalSyntax.SyntaxFactory.BinaryExpression(kind, (Syntax.InternalSyntax.ExpressionSyntax)left.Green, (Syntax.InternalSyntax.SyntaxToken)operatorToken.Node!, (Syntax.InternalSyntax.ExpressionSyntax)right.Green).CreateRed(); 2843public 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_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); 946var binaryParent = (BinaryExpressionSyntax)parent;
Binder\Binder_Operators.cs (22)
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) 4821private BoundExpression BindIsOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 4955BoundExpression tryAsConstantPattern(BinaryExpressionSyntax node, BoundExpression operand, bool operandHasErrors, TypeSymbol inputType, BindingDiagnosticBag diagnostics) 5391private BoundExpression BindAsOperator(BinaryExpressionSyntax node, BindingDiagnosticBag diagnostics) 5676private BoundExpression GenerateNullCoalescingBadBinaryOpsError(BinaryExpressionSyntax node, BoundExpression leftOperand, BoundExpression rightOperand, BindingDiagnosticBag diagnostics) 5686private 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\Binder.IdentifierUsedAsValueFinder.cs (2)
77!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 164!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression &&
Binder\Binder.OperatorResolutionForReporting.cs (1)
237BinaryExpressionSyntax binary => binary.OperatorToken,
Binder\Binder.ValueChecks.cs (1)
1293return parenthesized.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.SubtractExpression } binary &&
Binder\ExpressionVariableFinder.cs (4)
316public override void VisitBinaryExpression(BinaryExpressionSyntax node) 327var binOp = (BinaryExpressionSyntax)current; 331while (current is BinaryExpressionSyntax);
Binder\LocalBinderFactory.cs (3)
992public override void VisitBinaryExpression(BinaryExpressionSyntax node) 1003var binOp = node.Left as BinaryExpressionSyntax;
Compiler\MethodCompiler.cs (3)
2217!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2257!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2304if (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\4a7f0d7dc40edd75\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax,
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\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, 281[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\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
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)
1533if (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\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\4a7f0d7dc40edd75\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
20BinaryExpressionSyntax,
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\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, 281[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\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
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)
1533if (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\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\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (1)
103var replacementNode = BinaryExpression(
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)
1533if (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\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)