Generated\BoundNodes.xml.Generated.cs (10)
4429public BoundLocal Update(LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type)
4433var result = new BoundLocal(this.Syntax, localSymbol, declarationKind, constantValueOpt, isNullableUnknown, type, this.HasErrors);
8743return VisitLocal((BoundLocal)node, arg);
9084public virtual R VisitLocal(BoundLocal node, A arg) => this.DefaultVisit(node, arg);
9312public virtual BoundNode? VisitLocal(BoundLocal node) => this.DefaultVisit(node);
9876public override BoundNode? VisitLocal(BoundLocal node) => null;
11076public override BoundNode? VisitLocal(BoundLocal node)
13077public override BoundNode? VisitLocal(BoundLocal node)
13080BoundLocal updatedNode;
15426public override TreeDumperNode VisitLocal(BoundLocal node, object? arg) => new TreeDumperNode("local", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (13)
83var boundTemp = _factory.StoreToTemp(loweredLeft, out tempAssignment);
649BoundLocal? temp;
653var local = _factory.StoreToTemp(loweredLeft, out assignment);
976BoundLocal boundTempX = _factory.StoreToTemp(xNonNull ?? loweredLeft, out BoundAssignmentOperator tempAssignmentX);
977BoundLocal boundTempY = _factory.StoreToTemp(yNonNull ?? loweredRight, out BoundAssignmentOperator tempAssignmentY);
1129BoundLocal boundTempX = _factory.StoreToTemp(xNonNull ?? loweredLeft, out tempAssignmentX);
1131BoundLocal boundTempY = _factory.StoreToTemp(yNonNull ?? loweredRight, out tempAssignmentY);
1414var tempAccess = _factory.StoreToTemp(operand, out tempAssignment, kind: kind);
1639BoundLocal boundTemp = _factory.StoreToTemp(notAlwaysNull, out tempAssignment);
1696BoundLocal boundTempX = _factory.StoreToTemp(leftNonNull ?? left, out tempAssignmentX);
1698BoundLocal boundTempY = _factory.StoreToTemp(rightNonNull ?? right, out tempAssignmentY);
1750BoundLocal boundTempX = _factory.StoreToTemp(loweredLeft, out tempAssignmentX);
1752BoundLocal boundTempY = _factory.StoreToTemp(loweredRight, out tempAssignmentY);
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (17)
65var isEvent = _factory.StoreToTemp(_dynamicFactory.MakeDynamicIsEventTest(memberAccess.Name, memberAccess.Receiver).ToExpression(), out BoundAssignmentOperator isEventAssignment);
71eventTemps.Add(((BoundLocal)lhsRead).LocalSymbol);
72var storeNonEvent = _factory.StoreToTemp(_factory.Conditional(_factory.Not(isEvent), receiverAssignment, _factory.Null(receiverAssignment.Type), receiverAssignment.Type), out BoundAssignmentOperator nonEventStore);
80eventTemps.Add(((BoundLocal)loweredRight).LocalSymbol);
204var receiverTemp = _factory.StoreToTemp(rewrittenReceiver, out assignmentToTemp, refKind: variableRepresentsLocation ? RefKind.Ref : RefKind.None);
236var receiverTemp = _factory.StoreToTemp(rewrittenReceiver, out assignmentToTemp);
352var boundTemp = _factory.StoreToTemp(array, out storeToTemp);
376temps.Add(((BoundLocal)tempAssignment.Left).LocalSymbol);
440var variableTemp = _factory.StoreToTemp(arrayAccess, out assignmentToTemp, refKind: RefKind.Ref);
487var receiverTemp = _factory.StoreToTemp(rewrittenReceiver, out assignmentToTemp);
500var temp = _factory.StoreToTemp(VisitExpression(indexerAccess.Receiver), out assignmentToTemp);
518var temp = _factory.StoreToTemp(VisitExpression(arguments[i]), out assignmentToTemp, indexerAccess.ArgumentRefKindsOpt.RefKinds(i) != RefKind.None ? RefKind.Ref : RefKind.None);
742var variableTemp = _factory.StoreToTemp(rewrittenVariable, out assignmentToTemp2, refKind: RefKind.Ref);
771var arrayTemp = _factory.StoreToTemp(loweredExpression, out assignmentToArrayTemp);
774var boundTempArray = arrayTemp;
782var temp = _factory.StoreToTemp(loweredIndices[i], out assignmentToTemp);
842return localsMayBeAssignedOrCaptured || ((BoundLocal)expression).LocalSymbol.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (14)
126BoundLocal boundEnumeratorVar = MakeBoundLocal(forEachSyntax, enumeratorVar, enumeratorType);
252BoundLocal boundEnumeratorVar,
363BoundLocal boundDisposableVar = MakeBoundLocal(forEachSyntax, disposableVar, idisposableTypeSymbol);
545BoundLocal boundArrayVar = MakeBoundLocal(forEachSyntax, collectionTemp, collectionType);
551BoundLocal boundPositionVar = MakeBoundLocal(forEachSyntax, positionVar, intType);
724BoundLocal boundArrayVar = MakeBoundLocal(forEachSyntax, arrayVar, arrayType);
730BoundLocal boundPositionVar = MakeBoundLocal(forEachSyntax, positionVar, intType);
848BoundLocal boundArrayVar = MakeBoundLocal(forEachSyntax, arrayVar, arrayType);
862BoundLocal[] boundUpperVar = new BoundLocal[rank];
884BoundLocal[] boundPositionVar = new BoundLocal[rank];
1007private static BoundLocal MakeBoundLocal(CSharpSyntaxNode syntax, LocalSymbol local, TypeSymbol type)
1027private BoundStatement MakePositionIncrement(CSharpSyntaxNode syntax, BoundLocal boundPositionVar, TypeSymbol intType)
Lowering\SpillSequenceSpiller.cs (14)
211public override BoundNode VisitLocal(BoundLocal node)
360out BoundLocal valueTypeReceiver,
361out BoundLocal referenceTypeReceiver))
397var local = (BoundLocal)expression;
442var replacement = _F.StoreToTemp(
461out BoundLocal outValueTypeReceiver,
462out BoundLocal outReferenceTypeReceiver)
467Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } receiverRefLocal },
470ValueTypeReceiver: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } } valueTypeReceiver,
479Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.None } referenceTypeClone },
480Right: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } originalReceiverReference }
483Value: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.None } } referenceTypeReceiver
985var cache = _F.Local(_F.SynthesizedLocal(receiverType));