5 instantiations of LocalDefinition
Microsoft.CodeAnalysis (2)
CodeGen\LocalSlotManager.cs (1)
227local = new LocalDefinition(
Emit\EditAndContinue\EncVariableSlotAllocator.cs (1)
182return new LocalDefinition(
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (1)
EEAssemblyBuilder.cs (1)
111return new LocalDefinition(
Microsoft.CodeAnalysis.VisualBasic (1)
CodeGen\EmitStatement.vb (1)
1451_builder.AddLocalToScope(New LocalDefinition(
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler (1)
EEAssemblyBuilder.vb (1)
111Return New LocalDefinition(
137 references to LocalDefinition
Microsoft.CodeAnalysis (35)
CodeGen\ILBuilder.cs (2)
1146internal bool PossiblyDefinedOutsideOfTry(LocalDefinition local) 1180internal void AddLocalToScope(LocalDefinition local)
CodeGen\ILBuilderEmit.cs (4)
233LocalDefinition? keyHash, 441internal void EmitLocalLoad(LocalDefinition local) 466internal void EmitLocalStore(LocalDefinition local) 490internal void EmitLocalAddress(LocalDefinition local)
CodeGen\LocalOrParameter.cs (3)
12public readonly LocalDefinition? Local; 15private LocalOrParameter(LocalDefinition? local, int parameterIndex) 21public static implicit operator LocalOrParameter(LocalDefinition? local)
CodeGen\LocalScopeManager.cs (7)
105internal void AddLocal(LocalDefinition variable) 174internal bool PossiblyDefinedOutsideOfTry(LocalDefinition local) 305internal virtual bool ContainsLocal(LocalDefinition local) => false; 314private ImmutableArray<LocalDefinition>.Builder _localVariables; 339internal void AddLocal(LocalDefinition variable) 343_localVariables = ImmutableArray.CreateBuilder<LocalDefinition>(1); 374internal override bool ContainsLocal(LocalDefinition local)
CodeGen\LocalSlotManager.cs (15)
65private Dictionary<ILocalSymbolInternal, LocalDefinition>? _localMap; 68private KeyedStack<LocalSignature, LocalDefinition>? _freeSlots; 90private Dictionary<ILocalSymbolInternal, LocalDefinition> LocalMap 97map = new Dictionary<ILocalSymbolInternal, LocalDefinition>(ReferenceEqualityComparer.Instance); 105private KeyedStack<LocalSignature, LocalDefinition> FreeSlots 112slots = new KeyedStack<LocalSignature, LocalDefinition>(); 120internal LocalDefinition DeclareLocal( 132LocalDefinition? local; 146internal LocalDefinition GetLocal(ILocalSymbolInternal symbol) 157var slot = GetLocal(symbol); 165internal LocalDefinition AllocateSlot( 171if (!FreeSlots.TryPop(new LocalSignature(type, constraints), out LocalDefinition? local)) 188private LocalDefinition DeclareLocalImpl( 204LocalDefinition? local; 246internal void FreeSlot(LocalDefinition slot)
CodeGen\SwitchStringJumpTableEmitter.cs (2)
64private readonly LocalDefinition? _keyHash; 71LocalDefinition? keyHash,
CodeGen\VariableSlotAllocator.cs (1)
17public abstract LocalDefinition? GetPreviousLocal(
Emit\EditAndContinue\EncVariableSlotAllocator.cs (1)
146public override LocalDefinition? GetPreviousLocal(
Microsoft.CodeAnalysis.CSharp (66)
CodeGen\CodeGenerator.cs (8)
41private ArrayBuilder<LocalDefinition> _expressionTemps; 74private LocalDefinition _returnTemp; 161private LocalDefinition LazyReturnTemp 165var result = _returnTemp; 505private void AddExpressionTemp(LocalDefinition temp) 513ArrayBuilder<LocalDefinition> exprTemps = _expressionTemps; 516exprTemps = ArrayBuilder<LocalDefinition>.GetInstance(); 531var temp = _expressionTemps[i];
CodeGen\EmitAddress.cs (15)
26private LocalDefinition EmitAddress(BoundExpression expression, AddressKind addressKind) 140var temp = this.AllocateTemp(type, expression.Syntax); 181private LocalDefinition EmitPassByCopyAddress(BoundPassByCopy passByCopyExpr, AddressKind addressKind) 245var receiverTemp = EmitAddress(expression.ReferenceTypeReceiver, AddressKind.ReadOnly); 260private LocalDefinition EmitLocalAddress(BoundLocal localAccess, AddressKind addressKind) 293private LocalDefinition EmitDupAddress(BoundDup dup, AddressKind addressKind) 325private LocalDefinition EmitAddressOfTempClone(BoundExpression expression) 328var value = this.AllocateTemp(expression.Type, expression.Syntax); 338private LocalDefinition EmitSequenceAddress(BoundSequence sequence, AddressKind addressKind) 342var result = EmitAddress(sequence.Value, addressKind); 433private LocalDefinition EmitFieldAddress(BoundFieldAccess fieldAccess, AddressKind addressKind) 466private LocalDefinition EmitParameterAddress(BoundParameter parameter, AddressKind addressKind) 499private LocalDefinition EmitReceiverRef(BoundExpression receiver, AddressKind addressKind) 540private LocalDefinition EmitInstanceFieldAddress(BoundFieldAccess fieldAccess, AddressKind addressKind) 549var tempOpt = EmitReceiverRef(
CodeGen\EmitExpression.cs (29)
395LocalDefinition receiverTemp = null; 417LocalDefinition cloneTemp = null; 664var temp = EmitAddress(expression.Operand, AddressKind.Writeable); 712var temp = EmitAddress(argument, AddressKind.ReadOnly); 719var unexpectedTemp = EmitAddress(argument, refKind == RefKindExtensions.StrictIn ? AddressKind.ReadOnlyStrict : AddressKind.Writeable); 735var temp = EmitAddress(expression.Operand, AddressKind.ReadOnlyStrict); 900var seqLocal = DefineLocal(local, sequence.Syntax); 1139var temp = EmitFieldLoadReceiver(receiver); 1157private LocalDefinition EmitFieldLoadReceiver(BoundExpression receiver) 1362LocalDefinition definition = GetLocal(local); 1608LocalDefinition tempOpt = EmitReceiverRef(receiver, AddressKind.Writeable); 1651LocalDefinition tempOpt = null; 1801LocalDefinition emitGenericReceiver(BoundCall call, out CallKind callKind) 1813LocalDefinition tempOpt = EmitReceiverRef(receiver, callKind == CallKind.ConstrainedCallVirt ? AddressKind.Constrained : AddressKind.Writeable); 2340LocalDefinition temp = EmitAssignmentDuplication(assignmentOperator, useKind, lhsUsesStack); 2457var temp = EmitAddress(target, AddressKind.Writeable); 2486var temp = EmitAddress(target, AddressKind.Writeable); 2572var temp = EmitReceiverRef(left.ReceiverOpt, AddressKind.Writeable); 2618LocalDefinition localDefinition = GetLocal(left); 2656var temp = EmitAddress(left, AddressKind.Writeable); 2667var temp = EmitAddress(left, AddressKind.Writeable); 2679var temp = EmitAddress(left, AddressKind.Writeable); 2776LocalDefinition temp = EmitAddress(assignmentOperator.Right, lhs.GetRefKind() == RefKind.RefReadOnly ? AddressKind.ReadOnlyStrict : AddressKind.Writeable); 2804private LocalDefinition EmitAssignmentDuplication(BoundAssignmentOperator assignmentOperator, UseKind useKind, bool lhsUsesStack) 2806LocalDefinition temp = null; 2948private void EmitAssignmentPostfix(BoundAssignmentOperator assignment, LocalDefinition temp, UseKind useKind) 3273var temp = this.AllocateTemp(type, syntaxNode); 3726var temp = AllocateTemp(to, syntax); 3743LocalDefinition temp = null;
CodeGen\EmitStatement.cs (14)
848var unexpectedTemp = this.EmitAddress(expressionOpt, this._method.RefKind == RefKind.RefReadOnly ? AddressKind.ReadOnlyStrict : AddressKind.Writeable); 1144var temp = AllocateTemp(exceptionSource.Type, exceptionSource.Syntax); 1147var receiverTemp = EmitReceiverRef(left.ReceiverOpt, AddressKind.Writeable); 1235LocalDefinition temp = null; 1369var stringLength = AllocateTemp(int32Type, syntaxNode); 1394var charTemp = AllocateTemp(charType, syntaxNode); 1465LocalDefinition keyHash = null; 1722private LocalDefinition GetLocal(BoundLocal localExpression) 1728private LocalDefinition GetLocal(LocalSymbol symbol) 1733private LocalDefinition DefineLocal(LocalSymbol local, SyntaxNode syntaxNode) 1793var localDef = _builder.LocalSlotManager.DeclareLocal( 1877private LocalDefinition AllocateTemp(TypeSymbol type, SyntaxNode syntaxNode, LocalSlotConstraints slotConstraints = LocalSlotConstraints.None) 1887private void FreeTemp(LocalDefinition temp) 1895private void FreeOptTemp(LocalDefinition temp)
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (7)
EEAssemblyBuilder.cs (7)
79private ImmutableArray<LocalDefinition> GetLocalDefinitions(ImmutableArray<LocalSymbol> locals, DiagnosticBag diagnostics) 81var builder = ArrayBuilder<LocalDefinition>.GetInstance(); 88var def = ToLocalDefinition(local, builder.Count, diagnostics); 95private LocalDefinition ToLocalDefinition(LocalSymbol local, int index, DiagnosticBag diagnostics) 126private readonly ImmutableArray<LocalDefinition> _locals; 128internal SlotAllocator(ImmutableArray<LocalDefinition> locals) 138public override LocalDefinition? GetPreviousLocal(
Microsoft.CodeAnalysis.VisualBasic (23)
CodeGen\EmitAddress.vb (7)
42Private Function EmitAddress(expression As BoundExpression, addressKind As AddressKind) As LocalDefinition 44Dim tempOpt As LocalDefinition = Nothing 142Private Function EmitAddressOfTempClone(expression As BoundExpression) As LocalDefinition 150Private Function EmitSequenceAddress(sequence As BoundSequence, addressKind As AddressKind) As LocalDefinition 425Private Function EmitFieldAddress(fieldAccess As BoundFieldAccess, addressKind As AddressKind) As LocalDefinition 462addressKind As AddressKind) As LocalDefinition 500Private Function EmitInstanceFieldAddress(fieldAccess As BoundFieldAccess, addressKind As AddressKind) As LocalDefinition
CodeGen\EmitExpression.vb (7)
279Dim receiverTemp As LocalDefinition = Nothing 280Dim temp As LocalDefinition = Nothing 980Dim tempOpt As LocalDefinition = Nothing 1649Dim temp As LocalDefinition = Me.EmitAssignmentDuplication(assignmentOperator, used, lhsUsesStack) 1851Private Function EmitAssignmentDuplication(assignmentOperator As BoundAssignmentOperator, used As Boolean, lhsUsesStack As Boolean) As LocalDefinition 1852Dim temp As LocalDefinition = Nothing 1863Private Sub EmitAssignmentPostfix(temp As LocalDefinition)
CodeGen\EmitStatement.vb (9)
1051Dim temp As LocalDefinition = Nothing 1086Private Sub EmitStringSwitchJumpTable(caseLabels As KeyValuePair(Of ConstantValue, Object)(), fallThroughLabel As LabelSymbol, key As LocalDefinition, syntaxNode As SyntaxNode) 1088Dim keyHash As LocalDefinition = Nothing 1243Private Function DefineLocal(local As LocalSymbol, syntaxNode As SyntaxNode) As LocalDefinition 1373Private Function GetLocal(localExpression As BoundLocal) As LocalDefinition 1378Private Function GetLocal(symbol As LocalSymbol) As LocalDefinition 1385Private Function AllocateTemp(type As TypeSymbol, syntaxNode As SyntaxNode) As LocalDefinition 1394Private Sub FreeTemp(temp As LocalDefinition) 1401Private Sub FreeOptTemp(temp As LocalDefinition)
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler (6)
EEAssemblyBuilder.vb (6)
93Private Function GetLocalDefinitions(locals As ImmutableArray(Of LocalSymbol), diagnostics As DiagnosticBag) As ImmutableArray(Of LocalDefinition) 94Dim builder = ArrayBuilder(Of LocalDefinition).GetInstance() 108Private Function ToLocalDefinition(local As LocalSymbol, index As Integer, diagnostics As DiagnosticBag) As LocalDefinition 133Private ReadOnly _locals As ImmutableArray(Of LocalDefinition) 135Friend Sub New(locals As ImmutableArray(Of LocalDefinition)) 152tupleElementNames As ImmutableArray(Of String)) As LocalDefinition