1 write to Left
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1637
this.
Left
= left;
135 references to Left
Microsoft.CodeAnalysis.CSharp (135)
Binder\Binder.ValueChecks.cs (7)
3734
return Math.Max(GetValEscape(binary.
Left
, scopeOfTheContainingExpression),
3746
return Math.Max(GetValEscape(uo.
Left
, scopeOfTheContainingExpression),
4216
return CheckValEscape(binary.
Left
.Syntax, binary.
Left
, escapeFrom, escapeTo, checkingReceiver: false, diagnostics: diagnostics) &&
4232
return CheckValEscape(uo.
Left
.Syntax, uo.
Left
, escapeFrom, escapeTo, checkingReceiver: false, diagnostics: diagnostics) &&
4517
expression = binary.
Left
;
Binder\Binder_Operators.cs (3)
742
current = current.
Left
as BoundBinaryOperator;
745
Debug.Assert(stack.Count > 0 && stack.Peek().
Left
is BoundUnconvertedInterpolatedString);
756
left = BindSimpleBinaryOperator((BinaryExpressionSyntax)current.Syntax, diagnostics, left ?? current.
Left
, right, leaveUnconvertedIfInterpolatedString: false);
Binder\Binder_TupleOperators.cs (1)
111
return new TupleBinaryOperatorInfo.Single(binary.
Left
.Type, binary.Right.Type, binary.OperatorKind, binary.Method, binary.ConstrainedToType,
BoundTree\BoundNode_Source.cs (1)
333
appendSource(binary.
Left
);
BoundTree\BoundNodeExtensions.cs (7)
120
switch (current.
Left
)
131
throw ExceptionUtilities.UnexpectedValue(current.
Left
.Kind);
162
current = current.
Left
as BoundBinaryOperator;
209
Debug.Assert(currentBinary.
Left
is TInterpolatedStringType || result != null);
210
TResult rewrittenLeft = currentBinary.
Left
switch
214
_ => throw ExceptionUtilities.UnexpectedValue(currentBinary.
Left
.Kind)
244
current = current.
Left
as BoundBinaryOperator;
BoundTree\BoundTreeRewriter.cs (2)
112
BoundExpression child = node.
Left
;
127
child = binary.
Left
;
BoundTree\BoundTreeWalker.cs (4)
106
if (node.
Left
.Kind != BoundKind.BinaryOperator)
115
var binary = (BoundBinaryOperator)node.
Left
;
119
BoundExpression current = binary.
Left
;
125
current = binary.
Left
;
BoundTree\Constructors.cs (1)
423
return Update(OperatorKind, uncommonData, ResultKind,
Left
, Right, Type);
BoundTree\NullabilityRewriter.cs (2)
40
currentBinary = currentBinary.
Left
as BoundBinaryOperatorBase;
45
var leftChild = (BoundExpression)Visit(stack.Peek().
Left
);
CodeGen\EmitExpression.cs (1)
1941
current = b.
Left
;
CodeGen\EmitOperators.cs (21)
72
EmitExpression(expression.
Left
, false);
92
BoundExpression child = expression.
Left
;
116
child = binary.
Left
;
159
EmitExpression(expression.
Left
, true);
266
EmitCondBranch(condition.
Left
, ref lazyFallThrough, stopSense);
305
Debug.Assert(binOp.
Left
.Type.SpecialType == SpecialType.System_Boolean);
314
Debug.Assert(binOp.
Left
.Type.SpecialType == SpecialType.System_Boolean);
331
Debug.Assert(binOp.
Left
.Type.SpecialType == SpecialType.System_Boolean);
333
EmitBinaryCondOperatorHelper(ILOpCode.And, binOp.
Left
, binOp.Right, sense);
337
Debug.Assert(binOp.
Left
.Type.SpecialType == SpecialType.System_Boolean);
339
EmitBinaryCondOperatorHelper(ILOpCode.Or, binOp.
Left
, binOp.Right, sense);
343
Debug.Assert(binOp.
Left
.Type.SpecialType == SpecialType.System_Boolean);
348
EmitBinaryCondOperatorHelper(ILOpCode.Xor, binOp.
Left
, binOp.Right, true);
350
EmitBinaryCondOperatorHelper(ILOpCode.Ceq, binOp.
Left
, binOp.Right, true);
360
var constant = binOp.
Left
.ConstantValueOpt;
366
comparand = binOp.
Left
;
396
EmitBinaryCondOperatorHelper(ILOpCode.Ceq, binOp.
Left
, binOp.Right, sense);
430
EmitBinaryCondOperatorHelper(s_compOpCodes[opIdx], binOp.
Left
, binOp.Right, sense);
582
enumType = expression.
Left
.Type;
587
Debug.Assert(TypeSymbol.Equals(expression.
Left
.Type, expression.Right.Type, TypeCompareKind.ConsiderEverything2));
714
return IsUnsigned(Binder.GetEnumPromotedType(op.
Left
.Type.GetEnumUnderlyingType().SpecialType));
CodeGen\EmitStatement.cs (6)
236
BoundExpression constOp = (condition.
Left
.ConstantValueOpt != null) ? condition.
Left
: null;
249
nonConstOp = condition.
Left
;
458
stack.Push((binary.
Left
, fallThrough, !top.sense));
467
stack.Push((binary.
Left
, top.destBox, top.sense));
513
EmitExpression(binOp.
Left
, true);
CodeGen\Optimizer.cs (5)
1408
BoundExpression child = node.
Left
;
1424
child = binary.
Left
;
1485
BoundExpression left = (BoundExpression)this.Visit(node.
Left
);
2002
BoundExpression child = node.
Left
;
2018
child = binary.
Left
;
Compilation\CSharpSemanticModel.cs (3)
3847
((binaryOperator.
Left
.IsLiteralNull() && binaryOperator.Right.Type.IsNullableType()) ||
3848
(binaryOperator.Right.IsLiteralNull() && binaryOperator.
Left
.Type.IsNullableType())) &&
3862
binaryOperator.
Left
.Type,
Compilation\MemberSemanticModel.NodeMapBuilder.cs (2)
201
current = binOp.
Left
;
212
current = binOp.
Left
;
FlowAnalysis\AbstractFlowPass.cs (7)
2240
child = binOp.
Left
;
2245
child = ((BoundUserDefinedConditionalLogicalOperator)binary).
Left
;
2352
binary = binary.
Left
as BoundBinaryOperator;
2369
if (VisitPossibleConditionalAccess(binary.
Left
, out var stateWhenNotNull)
2450
if (isKnownNullOrNotNull(binary.
Left
) && TryVisitConditionalAccess(binary.Right, out var stateWhenNotNull))
2452
var isNullConstant = binary.
Left
.ConstantValueOpt?.IsNull == true;
2472
else if (binary.
Left
.ConstantValueOpt is { IsBoolean: true } leftConstant)
FlowAnalysis\NullableWalker.cs (9)
4457
var (leftOperand, leftConversion) = RemoveConversion(binary.
Left
, includeExplicitConversions: false);
4609
else if (binary.
Left
.ConstantValueOpt is { IsBoolean: true } leftConstant)
4660
visitOperandConversionAndPostConditions(binary.
Left
, leftOperand, leftConversion, parameters[0], leftUnderlyingType);
4698
visitOperandConversion(binary.
Left
, leftOperand, leftConversion, leftType);
4732
SplitAndLearnFromNonNullTest(binary.
Left
, whenTrue: true);
4782
operandComparedToNull = binary.
Left
;
4784
else if (binary.
Left
.ConstantValueOpt?.IsNull == true)
4809
operandComparedToNonNull = binary.
Left
;
10453
left = binary.
Left
;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
210
if (!(node.
Left
is BoundBinaryOperatorBase child))
212
Visit(node.
Left
);
Generated\BoundNodes.xml.Generated.cs (8)
1670
if (operatorKind != this.OperatorKind || data != this.Data || resultKind != this.ResultKind || left != this.
Left
|| right != this.Right || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything))
1753
if (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))
9558
this.Visit(node.
Left
);
9570
this.Visit(node.
Left
);
10639
BoundExpression left = (BoundExpression)this.Visit(node.
Left
);
10653
BoundExpression left = (BoundExpression)this.Visit(node.
Left
);
14758
new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.
Left
, null) }),
14785
new TreeDumperNode("left", null, new TreeDumperNode[] { Visit(node.
Left
, null) }),
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
197
return VisitBinaryOperator(binOp.OperatorKind, binOp.Method, binOp.Type, binOp.
Left
, binOp.Right);
200
return VisitBinaryOperator(userDefCondLogOp.OperatorKind, userDefCondLogOp.LogicalOperator, userDefCondLogOp.Type, userDefCondLogOp.
Left
, userDefCondLogOp.Right);
Lowering\DiagnosticsPass_ExpressionTrees.cs (3)
622
if (current.
Left
.Kind == BoundKind.BinaryOperator)
624
current = (BoundBinaryOperator)current.
Left
;
628
Visit(current.
Left
);
Lowering\DiagnosticsPass_Warnings.cs (27)
268
CheckUnsafeType(node.
Left
);
272
CheckForBitwiseOrSignExtend(node, node.OperatorKind, node.
Left
, node.Right);
317
if (node.
Left
.ConstantValueOpt != null && node.Right.ConstantValueOpt == null && node.Right.Kind == BoundKind.Conversion)
319
CheckVacuousComparisons(node, node.
Left
.ConstantValueOpt, node.Right);
322
if (node.Right.ConstantValueOpt != null && node.
Left
.ConstantValueOpt == null && node.
Left
.Kind == BoundKind.Conversion)
324
CheckVacuousComparisons(node, node.Right.ConstantValueOpt, node.
Left
);
330
if (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))
335
else 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))
386
if (!node.HasAnyErrors && IsSameLocalOrField(node.
Left
, node.Right))
768
if (node.Right.IsLiteralNull() && node.
Left
.NullableAlwaysHasValue())
770
Error(ErrorCode.WRN_NubExprIsConstBool, node, always, node.
Left
.Type.GetNullableUnderlyingType(), node.
Left
.Type);
772
else if (node.
Left
.IsLiteralNull() && node.Right.NullableAlwaysHasValue())
802
else if (node.
Left
.NullableNeverHasValue())
804
Error(ErrorCode.WRN_CmpAlwaysFalse, node, GetTypeForLiftedComparisonWarning(node.
Left
));
816
if (node.Right.NullableNeverHasValue() && node.
Left
.NullableAlwaysHasValue())
818
Error(node.OperatorKind.IsUserDefined() ? ErrorCode.WRN_NubExprIsConstBool2 : ErrorCode.WRN_NubExprIsConstBool, node, always, node.
Left
.Type.GetNullableUnderlyingType(), GetTypeForLiftedComparisonWarning(node.Right));
820
else if (node.
Left
.NullableNeverHasValue() && node.Right.NullableAlwaysHasValue())
822
Error(node.OperatorKind.IsUserDefined() ? ErrorCode.WRN_NubExprIsConstBool2 : ErrorCode.WRN_NubExprIsConstBool, node, always, node.Right.Type.GetNullableUnderlyingType(), GetTypeForLiftedComparisonWarning(node.
Left
));
828
if ((node.
Left
.NullableNeverHasValue() && node.Right.IsNullableNonBoolean()) ||
829
(node.
Left
.IsNullableNonBoolean() && node.Right.NullableNeverHasValue()))
834
if (node.Right.NullableNeverHasValue() || node.
Left
.NullableNeverHasValue())
845
if (node.Right.NullableNeverHasValue() || node.
Left
.NullableNeverHasValue())
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (3)
74
BoundExpression loweredLeft = VisitExpression(node.
Left
);
133
for (BoundBinaryOperator? current = node; current != null && current.ConstantValueOpt == null; current = current.
Left
as BoundBinaryOperator)
145
BoundExpression loweredLeft = VisitExpression(stack.Peek().
Left
);
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (1)
191
stack.Push(utf8Addition.
Left
);
Lowering\MethodToClassRewriter.cs (2)
271
(BoundExpression)Visit(node.
Left
),
314
(BoundExpression)Visit(node.
Left
),
Lowering\SpillSequenceSpiller.cs (2)
916
left = VisitExpression(ref builder, node.
Left
);
921
left = VisitExpression(ref leftBuilder, node.
Left
);
Operations\CSharpOperationFactory.cs (3)
1394
currentBinary = currentBinary.
Left
as BoundBinaryOperatorBase;
1402
left ??= Create(currentBinary.
Left
);
2323
var left = createContent(binaryOperator.
Left
);