1 write to Left
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1650this.Left = left;
124 references to Left
Microsoft.CodeAnalysis.CSharp (124)
Binder\Binder.ValueChecks.cs (8)
4416argsOpt: [binary.Left, binary.Right], 4423return GetValEscape(binary.Left, localScopeDepth) 4440argsOpt: [uo.Left, uo.Right], 5213argsOpt: [binary.Left, binary.Right], 5223return CheckValEscape(binary.Left.Syntax, binary.Left, escapeFrom, escapeTo, checkingReceiver: false, diagnostics: diagnostics) && 5245argsOpt: [uo.Left, uo.Right], 5631expression = binary.Left;
Binder\Binder_Operators.cs (2)
772current = current.Left as BoundBinaryOperator; 786left = BindSimpleBinaryOperator((BinaryExpressionSyntax)current.Syntax, diagnostics, left ?? current.Left, right, leaveUnconvertedIfInterpolatedString: false);
Binder\Binder_TupleOperators.cs (1)
111return new TupleBinaryOperatorInfo.Single(binary.Left.Type, binary.Right.Type, binary.OperatorKind, binary.Method, binary.ConstrainedToType,
BoundTree\BoundNode_Source.cs (1)
354appendSource(binary.Left);
BoundTree\BoundNodeExtensions.cs (4)
120switch (current.Left) 131throw ExceptionUtilities.UnexpectedValue(current.Left.Kind); 162current = current.Left as BoundBinaryOperator; 244current = current.Left as BoundBinaryOperator;
BoundTree\BoundTreeRewriter.cs (2)
111BoundExpression child = node.Left; 126child = binary.Left;
BoundTree\BoundTreeWalker.cs (3)
107if (node.Left is not BoundBinaryOperator binary) 119BoundExpression? current = binary.Left; 126current = binary.Left;
BoundTree\Constructors.cs (1)
480return Update(OperatorKind, uncommonData, ResultKind, Left, Right, Type);
BoundTree\NullabilityRewriter.cs (1)
83currentBinary = currentBinary.Left as BoundBinaryOperatorBase;
CodeGen\EmitExpression.cs (1)
2161current = b.Left;
CodeGen\EmitOperators.cs (21)
72EmitExpression(expression.Left, false); 92BoundExpression child = expression.Left; 116child = binary.Left; 159EmitExpression(expression.Left, true); 266EmitCondBranch(condition.Left, ref lazyFallThrough, stopSense); 305Debug.Assert(binOp.Left.Type.SpecialType == SpecialType.System_Boolean); 314Debug.Assert(binOp.Left.Type.SpecialType == SpecialType.System_Boolean); 331Debug.Assert(binOp.Left.Type.SpecialType == SpecialType.System_Boolean); 333EmitBinaryCondOperatorHelper(ILOpCode.And, binOp.Left, binOp.Right, sense); 337Debug.Assert(binOp.Left.Type.SpecialType == SpecialType.System_Boolean); 339EmitBinaryCondOperatorHelper(ILOpCode.Or, binOp.Left, binOp.Right, sense); 343Debug.Assert(binOp.Left.Type.SpecialType == SpecialType.System_Boolean); 348EmitBinaryCondOperatorHelper(ILOpCode.Xor, binOp.Left, binOp.Right, true); 350EmitBinaryCondOperatorHelper(ILOpCode.Ceq, binOp.Left, binOp.Right, true); 360var constant = binOp.Left.ConstantValueOpt; 366comparand = binOp.Left; 416EmitBinaryCondOperatorHelper(ILOpCode.Ceq, binOp.Left, binOp.Right, sense); 450EmitBinaryCondOperatorHelper(s_compOpCodes[opIdx], binOp.Left, binOp.Right, sense); 654enumType = expression.Left.Type; 659Debug.Assert(TypeSymbol.Equals(expression.Left.Type, expression.Right.Type, TypeCompareKind.ConsiderEverything2)); 786return IsUnsigned(Binder.GetEnumPromotedType(op.Left.Type.GetEnumUnderlyingType().SpecialType));
CodeGen\EmitStatement.cs (6)
236BoundExpression constOp = (condition.Left.ConstantValueOpt != null) ? condition.Left : null; 249nonConstOp = condition.Left; 458stack.Push((binary.Left, fallThrough, !top.sense)); 467stack.Push((binary.Left, top.destBox, top.sense)); 513EmitExpression(binOp.Left, true);
CodeGen\Optimizer.cs (5)
1475BoundExpression child = node.Left; 1491child = binary.Left; 1552BoundExpression left = (BoundExpression)this.Visit(node.Left); 2069BoundExpression child = node.Left; 2085child = binary.Left;
Compilation\CSharpSemanticModel.cs (3)
3859((binaryOperator.Left.IsLiteralNull() && binaryOperator.Right.Type.IsNullableType()) || 3860(binaryOperator.Right.IsLiteralNull() && binaryOperator.Left.Type.IsNullableType())) && 3874binaryOperator.Left.Type,
Compilation\MemberSemanticModel.NodeMapBuilder.cs (2)
199current = binOp.Left; 210current = binOp.Left;
FlowAnalysis\AbstractFlowPass.cs (6)
2432child = binOp.Left; 2437child = ((BoundUserDefinedConditionalLogicalOperator)binary).Left; 2545binary = binary.Left as BoundBinaryOperator; 2646if (isKnownNullOrNotNull(binary.Left) && TryVisitConditionalAccess(binary.Right, out var stateWhenNotNull)) 2648var isNullConstant = binary.Left.ConstantValueOpt?.IsNull == true; 2668else if (binary.Left.ConstantValueOpt is { IsBoolean: true } leftConstant)
FlowAnalysis\NullableWalker.cs (5)
5128var inferredResult = ReinferAndVisitBinaryOperator(binary, binary.OperatorKind, binary.Method, binary.Type, binary.Left, leftOperand, leftConversion, leftType, binary.Right, rightOperand, rightConversion, rightType); 5289operandComparedToNull = binary.Left; 5291else if (binary.Left.ConstantValueOpt?.IsNull == true) 5316operandComparedToNonNull = binary.Left; 11432left = binary.Left;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
310if (!(node.Left is BoundBinaryOperatorBase child)) 312Visit(node.Left);
Generated\BoundNodes.xml.Generated.cs (8)
1683if (operatorKind != this.OperatorKind || data != this.Data || resultKind != this.ResultKind || left != this.Left || right != this.Right || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 1766if (operatorKind != this.OperatorKind || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(logicalOperator, this.LogicalOperator) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(trueOperator, this.TrueOperator) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(falseOperator, this.FalseOperator) || !TypeSymbol.Equals(constrainedToTypeOpt, this.ConstrainedToTypeOpt, TypeCompareKind.ConsiderEverything) || resultKind != this.ResultKind || originalUserDefinedOperatorsOpt != this.OriginalUserDefinedOperatorsOpt || left != this.Left || right != this.Right || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 9945this.Visit(node.Left); 9957this.Visit(node.Left); 11055BoundExpression left = (BoundExpression)this.Visit(node.Left); 11069BoundExpression left = (BoundExpression)this.Visit(node.Left); 15332new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.Left, null) }), 15359new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.Left, null) }),
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
195return VisitBinaryOperator(binOp.OperatorKind, binOp.Method, binOp.Type, binOp.Left, binOp.Right); 198return VisitBinaryOperator(userDefCondLogOp.OperatorKind, userDefCondLogOp.LogicalOperator, userDefCondLogOp.Type, userDefCondLogOp.Left, userDefCondLogOp.Right);
Lowering\DiagnosticsPass_ExpressionTrees.cs (3)
665if (current.Left.Kind == BoundKind.BinaryOperator) 667current = (BoundBinaryOperator)current.Left; 671Visit(current.Left);
Lowering\DiagnosticsPass_Warnings.cs (27)
268CheckUnsafeType(node.Left); 272CheckForBitwiseOrSignExtend(node, node.OperatorKind, node.Left, node.Right); 317if (node.Left.ConstantValueOpt != null && node.Right.ConstantValueOpt == null && node.Right.Kind == BoundKind.Conversion) 319CheckVacuousComparisons(node, node.Left.ConstantValueOpt, node.Right); 322if (node.Right.ConstantValueOpt != null && node.Left.ConstantValueOpt == null && node.Left.Kind == BoundKind.Conversion) 324CheckVacuousComparisons(node, node.Right.ConstantValueOpt, node.Left); 330if (node.Left.Type.SpecialType == SpecialType.System_Object && !IsExplicitCast(node.Left) && !(node.Left.ConstantValueOpt != null && node.Left.ConstantValueOpt.IsNull) && ConvertedHasEqual(node.OperatorKind, node.Right, out t)) 335else if (node.Right.Type.SpecialType == SpecialType.System_Object && !IsExplicitCast(node.Right) && !(node.Right.ConstantValueOpt != null && node.Right.ConstantValueOpt.IsNull) && ConvertedHasEqual(node.OperatorKind, node.Left, out t)) 386if (!node.HasAnyErrors && IsSameLocalOrField(node.Left, node.Right)) 768if (node.Right.IsLiteralNull() && node.Left.NullableAlwaysHasValue()) 770Error(ErrorCode.WRN_NubExprIsConstBool, node, always, node.Left.Type.GetNullableUnderlyingType(), node.Left.Type); 772else if (node.Left.IsLiteralNull() && node.Right.NullableAlwaysHasValue()) 802else if (node.Left.NullableNeverHasValue()) 804Error(ErrorCode.WRN_CmpAlwaysFalse, node, GetTypeForLiftedComparisonWarning(node.Left)); 816if (node.Right.NullableNeverHasValue() && node.Left.NullableAlwaysHasValue()) 818Error(node.OperatorKind.IsUserDefined() ? ErrorCode.WRN_NubExprIsConstBool2 : ErrorCode.WRN_NubExprIsConstBool, node, always, node.Left.Type.GetNullableUnderlyingType(), GetTypeForLiftedComparisonWarning(node.Right)); 820else if (node.Left.NullableNeverHasValue() && node.Right.NullableAlwaysHasValue()) 822Error(node.OperatorKind.IsUserDefined() ? ErrorCode.WRN_NubExprIsConstBool2 : ErrorCode.WRN_NubExprIsConstBool, node, always, node.Right.Type.GetNullableUnderlyingType(), GetTypeForLiftedComparisonWarning(node.Left)); 828if ((node.Left.NullableNeverHasValue() && node.Right.IsNullableNonBoolean()) || 829(node.Left.IsNullableNonBoolean() && node.Right.NullableNeverHasValue())) 834if (node.Right.NullableNeverHasValue() || node.Left.NullableNeverHasValue()) 845if (node.Right.NullableNeverHasValue() || node.Left.NullableNeverHasValue())
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (2)
75BoundExpression loweredLeft = VisitExpression(node.Left); 135for (BoundBinaryOperator? current = node; current != null && current.ConstantValueOpt == null; current = current.Left as BoundBinaryOperator)
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (1)
198stack.Push(utf8Addition.Left);
Lowering\MethodToClassRewriter.cs (2)
276(BoundExpression)Visit(node.Left), 319(BoundExpression)Visit(node.Left),
Lowering\SpillSequenceSpiller.cs (2)
987left = VisitExpression(ref builder, node.Left); 992left = VisitExpression(ref leftBuilder, node.Left);
Operations\CSharpOperationFactory.cs (3)
1461currentBinary = currentBinary.Left as BoundBinaryOperatorBase; 1469left ??= Create(currentBinary.Left); 2440var left = createContent(binaryOperator.Left);