1 write to Left
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1637this.Left = left;
135 references to Left
Microsoft.CodeAnalysis.CSharp (135)
Binder\Binder.ValueChecks.cs (7)
3734return Math.Max(GetValEscape(binary.Left, scopeOfTheContainingExpression), 3746return Math.Max(GetValEscape(uo.Left, scopeOfTheContainingExpression), 4216return CheckValEscape(binary.Left.Syntax, binary.Left, escapeFrom, escapeTo, checkingReceiver: false, diagnostics: diagnostics) && 4232return CheckValEscape(uo.Left.Syntax, uo.Left, escapeFrom, escapeTo, checkingReceiver: false, diagnostics: diagnostics) && 4517expression = binary.Left;
Binder\Binder_Operators.cs (3)
742current = current.Left as BoundBinaryOperator; 745Debug.Assert(stack.Count > 0 && stack.Peek().Left is BoundUnconvertedInterpolatedString); 756left = 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)
333appendSource(binary.Left);
BoundTree\BoundNodeExtensions.cs (7)
120switch (current.Left) 131throw ExceptionUtilities.UnexpectedValue(current.Left.Kind); 162current = current.Left as BoundBinaryOperator; 209Debug.Assert(currentBinary.Left is TInterpolatedStringType || result != null); 210TResult rewrittenLeft = currentBinary.Left switch 214_ => throw ExceptionUtilities.UnexpectedValue(currentBinary.Left.Kind) 244current = current.Left as BoundBinaryOperator;
BoundTree\BoundTreeRewriter.cs (2)
112BoundExpression child = node.Left; 127child = binary.Left;
BoundTree\BoundTreeWalker.cs (4)
106if (node.Left.Kind != BoundKind.BinaryOperator) 115var binary = (BoundBinaryOperator)node.Left; 119BoundExpression current = binary.Left; 125current = binary.Left;
BoundTree\Constructors.cs (1)
423return Update(OperatorKind, uncommonData, ResultKind, Left, Right, Type);
BoundTree\NullabilityRewriter.cs (2)
40currentBinary = currentBinary.Left as BoundBinaryOperatorBase; 45var leftChild = (BoundExpression)Visit(stack.Peek().Left);
CodeGen\EmitExpression.cs (1)
1941current = 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; 396EmitBinaryCondOperatorHelper(ILOpCode.Ceq, binOp.Left, binOp.Right, sense); 430EmitBinaryCondOperatorHelper(s_compOpCodes[opIdx], binOp.Left, binOp.Right, sense); 582enumType = expression.Left.Type; 587Debug.Assert(TypeSymbol.Equals(expression.Left.Type, expression.Right.Type, TypeCompareKind.ConsiderEverything2)); 714return 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)
1408BoundExpression child = node.Left; 1424child = binary.Left; 1485BoundExpression left = (BoundExpression)this.Visit(node.Left); 2002BoundExpression child = node.Left; 2018child = binary.Left;
Compilation\CSharpSemanticModel.cs (3)
3847((binaryOperator.Left.IsLiteralNull() && binaryOperator.Right.Type.IsNullableType()) || 3848(binaryOperator.Right.IsLiteralNull() && binaryOperator.Left.Type.IsNullableType())) && 3862binaryOperator.Left.Type,
Compilation\MemberSemanticModel.NodeMapBuilder.cs (2)
201current = binOp.Left; 212current = binOp.Left;
FlowAnalysis\AbstractFlowPass.cs (7)
2240child = binOp.Left; 2245child = ((BoundUserDefinedConditionalLogicalOperator)binary).Left; 2352binary = binary.Left as BoundBinaryOperator; 2369if (VisitPossibleConditionalAccess(binary.Left, out var stateWhenNotNull) 2450if (isKnownNullOrNotNull(binary.Left) && TryVisitConditionalAccess(binary.Right, out var stateWhenNotNull)) 2452var isNullConstant = binary.Left.ConstantValueOpt?.IsNull == true; 2472else if (binary.Left.ConstantValueOpt is { IsBoolean: true } leftConstant)
FlowAnalysis\NullableWalker.cs (9)
4457var (leftOperand, leftConversion) = RemoveConversion(binary.Left, includeExplicitConversions: false); 4609else if (binary.Left.ConstantValueOpt is { IsBoolean: true } leftConstant) 4660visitOperandConversionAndPostConditions(binary.Left, leftOperand, leftConversion, parameters[0], leftUnderlyingType); 4698visitOperandConversion(binary.Left, leftOperand, leftConversion, leftType); 4732SplitAndLearnFromNonNullTest(binary.Left, whenTrue: true); 4782operandComparedToNull = binary.Left; 4784else if (binary.Left.ConstantValueOpt?.IsNull == true) 4809operandComparedToNonNull = binary.Left; 10453left = binary.Left;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
210if (!(node.Left is BoundBinaryOperatorBase child)) 212Visit(node.Left);
Generated\BoundNodes.xml.Generated.cs (8)
1670if (operatorKind != this.OperatorKind || data != this.Data || resultKind != this.ResultKind || left != this.Left || right != this.Right || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 1753if (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)) 9558this.Visit(node.Left); 9570this.Visit(node.Left); 10639BoundExpression left = (BoundExpression)this.Visit(node.Left); 10653BoundExpression left = (BoundExpression)this.Visit(node.Left); 14758new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.Left, null) }), 14785new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.Left, null) }),
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
197return VisitBinaryOperator(binOp.OperatorKind, binOp.Method, binOp.Type, binOp.Left, binOp.Right); 200return VisitBinaryOperator(userDefCondLogOp.OperatorKind, userDefCondLogOp.LogicalOperator, userDefCondLogOp.Type, userDefCondLogOp.Left, userDefCondLogOp.Right);
Lowering\DiagnosticsPass_ExpressionTrees.cs (3)
622if (current.Left.Kind == BoundKind.BinaryOperator) 624current = (BoundBinaryOperator)current.Left; 628Visit(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 (3)
74BoundExpression loweredLeft = VisitExpression(node.Left); 133for (BoundBinaryOperator? current = node; current != null && current.ConstantValueOpt == null; current = current.Left as BoundBinaryOperator) 145BoundExpression loweredLeft = VisitExpression(stack.Peek().Left);
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (1)
191stack.Push(utf8Addition.Left);
Lowering\MethodToClassRewriter.cs (2)
271(BoundExpression)Visit(node.Left), 314(BoundExpression)Visit(node.Left),
Lowering\SpillSequenceSpiller.cs (2)
916left = VisitExpression(ref builder, node.Left); 921left = VisitExpression(ref leftBuilder, node.Left);
Operations\CSharpOperationFactory.cs (3)
1394currentBinary = currentBinary.Left as BoundBinaryOperatorBase; 1402left ??= Create(currentBinary.Left); 2323var left = createContent(binaryOperator.Left);