6 types derived from LocalSymbol
Microsoft.CodeAnalysis.CSharp (6)
CodeGen\Optimizer.cs (1)
2349internal sealed class DummyLocal : LocalSymbol
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (1)
22private sealed class PlaceholderLocal : LocalSymbol
Symbols\Source\SourceLocalSymbol.cs (1)
22internal class SourceLocalSymbol : LocalSymbol
Symbols\Synthesized\SynthesizedLocal.cs (1)
19internal sealed class SynthesizedLocal : LocalSymbol
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
14internal sealed class TypeSubstitutedLocalSymbol : LocalSymbol
Symbols\UpdatedContainingSymbolLocal.cs (1)
12internal sealed class UpdatedContainingSymbolAndNullableAnnotationLocal : LocalSymbol
1007 references to LocalSymbol
Microsoft.CodeAnalysis.CSharp (882)
Binder\Binder.cs (2)
185internal virtual ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator) 479internal virtual LocalSymbol? LocalInProgress
Binder\Binder.ValueChecks.cs (4)
1322LocalSymbol localSymbol = local.LocalSymbol; 1361LocalSymbol localSymbol = local.LocalSymbol; 3450private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local, BindValueKind kind, bool checkingReceiver, BindingDiagnosticBag diagnostics) 5062var localSymbol = ((BoundLocal)expr).LocalSymbol;
Binder\Binder_Expressions.cs (6)
1563Debug.Assert(symbol is null or LocalSymbol or LocalFunctionSymbol or RangeVariableSymbol or TypeParameterSymbol); 2067var localSymbol = (LocalSymbol)symbol; 2229private TypeSymbol BindResultTypeForLocalVariableReference(SimpleNameSyntax node, LocalSymbol localSymbol, BindingDiagnosticBag diagnostics, out bool isNullableUnknown, out bool isError) 2324bool isUsedBeforeDeclaration(SimpleNameSyntax node, LocalSymbol localSymbol) 7624leftType = BindResultTypeForLocalVariableReference(left, (LocalSymbol)leftSymbol, BindingDiagnosticBag.Discarded, isNullableUnknown: out _, isError: out _);
Binder\Binder_Initializers.cs (1)
132boundInitializers.Add(new BoundFieldEqualsValue(parameterSyntax, fieldSymbol, ImmutableArray<LocalSymbol>.Empty,
Binder\Binder_Operators.cs (1)
4269LocalSymbol localSymbol = localAccess.LocalSymbol;
Binder\Binder_Query.cs (1)
701return lambdaBodyBinder.CreateBlockFromExpression(node, ImmutableArray<LocalSymbol>.Empty, RefKind.None, construction, null, d);
Binder\Binder_Statements.cs (9)
1939ImmutableArray<LocalSymbol> locals = GetDeclaredLocalsForScope(node); 3379ImmutableArray<LocalSymbol> locals = binder.GetDeclaredLocalsForScope(node); 3381LocalSymbol local = locals.FirstOrDefault(); 3497internal BoundBlock CreateBlockFromExpression(CSharpSyntaxNode node, ImmutableArray<LocalSymbol> locals, RefKind refKind, BoundExpression expression, ExpressionSyntax expressionSyntax, BindingDiagnosticBag diagnostics) 3734ImmutableArray<LocalSymbol> constructorLocals; 3745constructorLocals = ImmutableArray<LocalSymbol>.Empty; 3751blockBody: new BoundBlock(typeDecl, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty).MakeCompilerGenerated(), 4090internal virtual ImmutableArray<LocalSymbol> Locals 4094return ImmutableArray<LocalSymbol>.Empty;
Binder\BlockBinder.cs (2)
33protected override ImmutableArray<LocalSymbol> BuildLocals() 66internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\BuckStopsHereBinder.cs (2)
89internal override LocalSymbol? LocalInProgress 176internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\CatchClauseBinder.cs (3)
27protected override ImmutableArray<LocalSymbol> BuildLocals() 29var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 45internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\EmbeddedStatementBinder.cs (4)
31protected override ImmutableArray<LocalSymbol> BuildLocals() 33ArrayBuilder<LocalSymbol> locals = ArrayBuilder<LocalSymbol>.GetInstance(DefaultLocalSymbolArrayCapacity); 69internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\ExpressionListVariableBinder.cs (3)
26protected override ImmutableArray<LocalSymbol> BuildLocals() 28var builder = ArrayBuilder<LocalSymbol>.GetInstance(); 41internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\ExpressionVariableBinder.cs (3)
26protected override ImmutableArray<LocalSymbol> BuildLocals() 28var builder = ArrayBuilder<LocalSymbol>.GetInstance(); 34internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\ExpressionVariableFinder.cs (6)
549internal class ExpressionVariableFinder : ExpressionVariableFinder<LocalSymbol> 556ArrayBuilder<LocalSymbol> builder, 578ArrayBuilder<LocalSymbol> builder, 599protected override LocalSymbol? MakePatternVariable(TypeSyntax type, SingleVariableDesignationSyntax designation, SyntaxNode nodeToBind) 625protected override LocalSymbol? MakeDeclarationExpressionVariable(DeclarationExpressionSyntax node, SingleVariableDesignationSyntax designation, SyntaxNode nodeToBind) 649protected override LocalSymbol MakeDeconstructionVariable(
Binder\FixedStatementBinder.cs (4)
29protected override ImmutableArray<LocalSymbol> BuildLocals() 33var locals = new ArrayBuilder<LocalSymbol>(_syntax.Declaration.Variables.Count); 57return ImmutableArray<LocalSymbol>.Empty; 60internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\ForEachLoopBinder.cs (7)
47internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator) 70protected override ImmutableArray<LocalSymbol> BuildLocals() 77var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 94return ImmutableArray.Create<LocalSymbol>(iterationVariable); 104ArrayBuilder<LocalSymbol> locals, 141ArrayBuilder<LocalSymbol> locals, 434ImmutableArray<LocalSymbol> iterationVariables = this.Locals;
Binder\ForLoopBinder.cs (4)
28protected override ImmutableArray<LocalSymbol> BuildLocals() 30var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 92var innerLocals = ImmutableArray<LocalSymbol>.Empty; 140internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\LocalInProgressBinder.cs (3)
22private LocalSymbol? _localSymbol; 30internal override LocalSymbol LocalInProgress 40internal void SetLocalSymbol(LocalSymbol local)
Binder\LocalScopeBinder.cs (17)
21private ImmutableArray<LocalSymbol> _locals; 35internal sealed override ImmutableArray<LocalSymbol> Locals 41ImmutableInterlocked.InterlockedCompareExchange(ref _locals, BuildLocals(), default(ImmutableArray<LocalSymbol>)); 48protected virtual ImmutableArray<LocalSymbol> BuildLocals() 50return ImmutableArray<LocalSymbol>.Empty; 89private SmallDictionary<string, LocalSymbol> _lazyLocalsMap; 90private SmallDictionary<string, LocalSymbol> LocalsMap 148protected ImmutableArray<LocalSymbol> BuildLocals(SyntaxList<StatementSyntax> statements, Binder enclosingBinder) 164ArrayBuilder<LocalSymbol> locals = ArrayBuilder<LocalSymbol>.GetInstance(DefaultLocalSymbolArrayCapacity); 173internal void BuildLocals(Binder enclosingBinder, StatementSyntax statement, ArrayBuilder<LocalSymbol> locals) 287static void findExpressionVariablesInRankSpecifier(ExpressionSyntax expression, (LocalScopeBinder localScopeBinder, ArrayBuilder<LocalSymbol> locals, Binder localDeclarationBinder) args) 383LocalSymbol result = null; 389foreach (var local in this.Locals) 444LocalSymbol localSymbol; 510declaredInThisScope |= newSymbolKind == SymbolKind.Local && this.Locals.Contains((LocalSymbol)newSymbol); 543LocalSymbol existingLocal = null;
Binder\RefSafetyAnalysis.cs (15)
66private Dictionary<LocalSymbol, (SafeContext RefEscapeScope, SafeContext ValEscapeScope)>? _localEscapeScopes; 94private readonly ImmutableArray<LocalSymbol> _locals; 98public LocalScope(RefSafetyAnalysis analysis, ImmutableArray<LocalSymbol> locals, bool adjustDepth = true) 106foreach (var local in locals) 114foreach (var local in _locals) 220private (SafeContext RefEscapeScope, SafeContext ValEscapeScope) GetLocalScopes(LocalSymbol local) 229private void SetLocalScopes(LocalSymbol local, SafeContext refEscapeScope, SafeContext valEscapeScope) 496private void AddLocalScopes(LocalSymbol local, SafeContext refEscapeScope, SafeContext valEscapeScope) 523private void AddOrSetLocalScopes(LocalSymbol local, SafeContext refEscapeScope, SafeContext valEscapeScope) 525_localEscapeScopes ??= new Dictionary<LocalSymbol, (SafeContext RefEscapeScope, SafeContext ValEscapeScope)>(); 530private void RemoveLocalScopes(LocalSymbol local) 726if (pattern.Variable is LocalSymbol local) 1274using var _ = new LocalScope(this, ImmutableArray<LocalSymbol>.Empty); 1276foreach (var local in node.IterationVariables) 1303foreach (var local in node.IterationVariables)
Binder\ScriptLocalScopeBinder.cs (1)
42internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\SimpleLocalScopeBinder.cs (4)
17private readonly ImmutableArray<LocalSymbol> _locals; 19public SimpleLocalScopeBinder(ImmutableArray<LocalSymbol> locals, Binder next) : 25protected override ImmutableArray<LocalSymbol> BuildLocals() 30internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\SimpleProgramBinder.cs (4)
26protected override ImmutableArray<LocalSymbol> BuildLocals() 28ArrayBuilder<LocalSymbol> locals = ArrayBuilder<LocalSymbol>.GetInstance(DefaultLocalSymbolArrayCapacity); 87internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\SimpleProgramUnitBinder.cs (2)
26protected override ImmutableArray<LocalSymbol> BuildLocals() 57internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\SwitchBinder.cs (3)
134protected override ImmutableArray<LocalSymbol> BuildLocals() 136var builder = ArrayBuilder<LocalSymbol>.GetInstance(); 343internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\SwitchBinder_Patterns.cs (1)
43ImmutableArray<LocalSymbol> locals = GetDeclaredLocalsForScope(node);
Binder\SwitchExpressionArmBinder.cs (1)
41ImmutableArray<LocalSymbol> locals = _armScopeBinder.Locals;
Binder\UsingStatementBinder.cs (4)
27protected override ImmutableArray<LocalSymbol> BuildLocals() 36var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 42var locals = ArrayBuilder<LocalSymbol>.GetInstance(declarationSyntax.Variables.Count); 310internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\WhileBinder.cs (3)
48protected override ImmutableArray<LocalSymbol> BuildLocals() 50var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 69internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
Binder\WithLambdaParametersBinder.cs (1)
170internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
BoundTree\BoundExpression.cs (2)
303public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, ConstantValue? constantValueOpt, TypeSymbol type, bool hasErrors = false) 308public BoundLocal Update(LocalSymbol localSymbol, ConstantValue? constantValueOpt, TypeSymbol type)
BoundTree\BoundNode.cs (9)
487public readonly PooledHashSet<LocalSymbol> DeclaredLocals = PooledHashSet<LocalSymbol>.GetInstance(); 500private void AddAll(ImmutableArray<LocalSymbol> locals) 502foreach (var local in locals) 511private void RemoveAll(ImmutableArray<LocalSymbol> locals) 513foreach (var local in locals) 522private void CheckDeclared(LocalSymbol local) 559foreach (var local in instrumentation.Locals) 576foreach (var local in instrumentation.Locals)
BoundTree\BoundNode_Source.cs (3)
95foreach (var local in block.Locals) 193var symbol = local.LocalSymbol; 543void appendLocal(LocalSymbol symbol)
BoundTree\BoundSpillSequence.cs (1)
17ImmutableArray<LocalSymbol> locals,
BoundTree\BoundTreeRewriter.cs (5)
82public virtual LocalSymbol VisitLocalSymbol(LocalSymbol symbol) 131return VisitLocalSymbol((LocalSymbol)symbol); 196protected virtual ImmutableArray<LocalSymbol> VisitLocals(ImmutableArray<LocalSymbol> locals) => locals;
BoundTree\Constructors.cs (5)
75var localSymbol = ((BoundLocal)receiver).LocalSymbol; 596public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 603return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(statement)) 609return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements) { WasCompilerGenerated = true }; 614return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements.AsImmutableOrNull()) { WasCompilerGenerated = true };
CodeGen\CodeGenerator.cs (4)
36private readonly HashSet<LocalSymbol> _stackLocals; 218internal static bool IsStackLocal(LocalSymbol local, HashSet<LocalSymbol> stackLocalsOpt) 221private bool IsStackLocal(LocalSymbol local) => IsStackLocal(local, _stackLocals);
CodeGen\CodeGenerator_HasHome.cs (3)
47HashSet<LocalSymbol> stackLocalsOpt) 93var local = ((BoundLocal)expression).LocalSymbol; 176HashSet<LocalSymbol> stackLocalsOpt)
CodeGen\EmitAddress.cs (3)
265var local = localAccess.LocalSymbol; 351private static LocalSymbol DigForValueLocal(BoundSequence topSequence, BoundExpression value) 357var symbol = local.LocalSymbol;
CodeGen\EmitExpression.cs (3)
889foreach (var local in sequence.Locals) 904foreach (var local in sequence.Locals) 923foreach (var local in sequence.Locals)
CodeGen\EmitStatement.cs (12)
684foreach (var local in instrumentation.Locals) 740foreach (var local in instrumentation.Locals) 757foreach (var local in block.Locals) 785foreach (var local in block.Locals) 808foreach (var local in block.Locals) 1137foreach (var local in catchBlock.Locals) 1309var local = ((BoundLocal)expression).LocalSymbol; 1781var symbol = localExpression.LocalSymbol; 1785private LocalDefinition GetLocal(LocalSymbol symbol) 1790private LocalDefinition DefineLocal(LocalSymbol local, SyntaxNode syntaxNode) 1914private bool IsSlotReusable(LocalSymbol local) 1922private void FreeLocal(LocalSymbol local)
CodeGen\Optimizer.cs (32)
60out HashSet<LocalSymbol> stackLocals) 65var locals = PooledDictionary<LocalSymbol, LocalDefUseInfo>.GetInstance(); 78stackLocals = new HashSet<LocalSymbol>(locals.Keys); 92private static void FilterValidStackLocals(Dictionary<LocalSymbol, LocalDefUseInfo> info) 97foreach (var local in info.Keys.ToArray()) 125private static void RemoveIntersectingLocals(Dictionary<LocalSymbol, LocalDefUseInfo> info, ArrayBuilder<LocalDefUseInfo> dummies) 403private readonly Dictionary<LocalSymbol, LocalDefUseInfo> _locals; 417private StackOptimizerPass1(Dictionary<LocalSymbol, LocalDefUseInfo> locals, 432Dictionary<LocalSymbol, LocalDefUseInfo> locals, 618foreach (var local in node.Instrumentation.Locals) 696foreach (var local in locals) 756private bool IsNestedLocalOfCompoundOperator(LocalSymbol local, BoundSequence node) 806private readonly LocalSymbol _local; 809internal LocalUsedWalker(LocalSymbol local, int recursionDepth) 980LocalSymbol localSymbol = assignmentLocal.LocalSymbol; 1436var localSym = ((BoundLocal)boundExpression).LocalSymbol; 1874private void ShouldNotSchedule(LocalSymbol localSymbol) 1883private void RecordVarRef(LocalSymbol local) 1896private void RecordVarRead(LocalSymbol local) 1942private bool EvalStackHasLocal(LocalSymbol local) 1951private void RecordDummyWrite(LocalSymbol local) 1964private void RecordVarWrite(LocalSymbol local) 1994private bool CanScheduleToStack(LocalSymbol local) 2000private void DeclareLocals(ImmutableArray<LocalSymbol> locals, int stack) 2002foreach (var local in locals) 2008private void DeclareLocal(LocalSymbol local, int stack) 2043private readonly Dictionary<LocalSymbol, LocalDefUseInfo> _info; 2045private StackOptimizerPass2(Dictionary<LocalSymbol, LocalDefUseInfo> info) 2050public static BoundStatement Rewrite(BoundStatement src, Dictionary<LocalSymbol, LocalDefUseInfo> info) 2313var sourceLocal = ((BoundLocal)exceptionSource).LocalSymbol; 2371internal override LocalSymbol WithSynthesizedLocalKindAndSyntax( 2418internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics)
Compilation\CSharpSemanticModel.cs (4)
1796case LocalSymbol _: 3279LocalSymbol local = foreachBinder.GetDeclaredLocalsForScope(forEachStatement).FirstOrDefault(); 3292internal abstract LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol originalSymbol); 3318LocalSymbol local = catchBinder.GetDeclaredLocalsForScope(catchClause).FirstOrDefault();
Compilation\MemberSemanticModel.cs (5)
693private LocalSymbol GetDeclaredLocal(CSharpSyntaxNode declarationSyntax, SyntaxToken declaredIdentifier) 697foreach (var local in binder.Locals) 710internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol local) 712return GetRemappedSymbol<LocalSymbol>(local); 2381Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
340internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol local)
Compilation\SyntaxTreeSemanticModel.cs (2)
1891internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol originalSymbol) 2451Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compiler\AnonymousTypeMethodBodySynthesizer.cs (1)
153F.CloseMethod(F.Block(ImmutableArray.Create<LocalSymbol>(boundLocal.LocalSymbol), assignment, retStatement));
Compiler\MethodBodySynthesizer.cs (4)
431LocalSymbol[] tmps = new LocalSymbol[numTemps]; 567ImmutableArray<LocalSymbol>.Empty, 575ImmutableArray<LocalSymbol>.Empty,
Compiler\MethodBodySynthesizer.Lowered.cs (6)
55LocalSymbol i = F.SynthesizedLocal(F.SpecialType(SpecialType.System_Int32)); 56LocalSymbol hashCode = F.SynthesizedLocal(F.SpecialType(SpecialType.System_UInt32)); 83ImmutableArray.Create<LocalSymbol>(hashCode, i), 153LocalSymbol i = F.SynthesizedLocal(F.SpecialType(SpecialType.System_Int32)); 154LocalSymbol hashCode = F.SynthesizedLocal(F.SpecialType(SpecialType.System_UInt32)); 175ImmutableArray.Create<LocalSymbol>(hashCode, i),
Compiler\MethodCompiler.cs (2)
1009body = new BoundBlock(methodSymbol.GetNonNullSyntaxNode(), ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty) { WasCompilerGenerated = true }; 1052new BoundBlock(analyzedInitializers.Syntax, ImmutableArray<LocalSymbol>.Empty, analyzedInitializers.Statements), // The block is necessary to establish the right local scope for the analysis
FlowAnalysis\ControlFlowPass.cs (3)
22private readonly ArrayBuilder<(LocalSymbol symbol, BoundBlock block)> _usingDeclarations = ArrayBuilder<(LocalSymbol, BoundBlock)>.GetInstance(); 403foreach (var local in node.Locals)
FlowAnalysis\DataFlowsOutWalker.cs (2)
124return ((BoundObjectPattern)node).Variable as LocalSymbol; 161var local = ((BoundCatchBlock)node).Locals.FirstOrDefault();
FlowAnalysis\DefiniteAssignment.cs (22)
66private readonly PooledHashSet<LocalSymbol> _usedVariables = PooledHashSet<LocalSymbol>.GetInstance(); 708var local = variable as LocalSymbol; 814var local = variable as LocalSymbol; 1157if (symbol is LocalSymbol local && local.IsConst) 1449var result = ((BoundLocal)expression).LocalSymbol; 1496var symbol = pattern.Variable as LocalSymbol; 1513LocalSymbol symbol = local.LocalSymbol; 2105foreach (var local in node.Locals) 2223foreach (LocalSymbol local in localsOpt) 2251private void DeclareVariables(ImmutableArray<LocalSymbol> locals) 2253foreach (var symbol in locals) 2259private void DeclareVariable(LocalSymbol symbol) 2269private void ReportUnusedVariables(ImmutableArray<LocalSymbol> locals) 2271foreach (var symbol in locals) 2277private void ReportIfUnused(LocalSymbol symbol, bool assigned) 2309LocalSymbol localSymbol = node.LocalSymbol; 2647foreach (var local in catchBlock.Locals) 2725foreach (var iterationVariable in node.IterationVariables)
FlowAnalysis\FlowAnalysisPass.cs (1)
86block = new BoundBlock(block.Syntax, ImmutableArray<LocalSymbol>.Empty, newStatements) { WasCompilerGenerated = true };
FlowAnalysis\LocalDataFlowPass.cs (1)
81if (symbol is LocalSymbol { SynthesizedKind: SynthesizedLocalKind.LocalStoreTracker })
FlowAnalysis\NullableWalker.cs (10)
2034var local = (LocalSymbol)symbol; 3207var local = node.LocalSymbol; 3622private void DeclareLocal(LocalSymbol local) 3635private void DeclareLocals(ImmutableArray<LocalSymbol> locals) 3637foreach (var local in locals) 3645var local = node.LocalSymbol; 11473private TypeWithAnnotations GetDeclaredLocalResult(LocalSymbol local) 11973foreach (var iterationVariable in node.IterationVariables) 13000LocalSymbol local = node.Locals[0];
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (2)
61internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics = null) => null; 65internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
FlowAnalysis\NullableWalker.Variables.cs (1)
357case LocalSymbol:
FlowAnalysis\VariablesDeclaredWalker.cs (1)
231var local = catchBlock.Locals.FirstOrDefault();
Generated\BoundNodes.xml.Generated.cs (122)
273protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 284public ImmutableArray<LocalSymbol> Locals { get; } 290public BoundFieldEqualsValue(SyntaxNode syntax, FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 306public BoundFieldEqualsValue Update(FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value) 320public BoundPropertyEqualsValue(SyntaxNode syntax, PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 336public BoundPropertyEqualsValue Update(PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value) 350public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 366public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value) 2276public BoundBlockInstrumentation(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundStatement? prologue, BoundStatement? epilogue, bool hasErrors = false) 2287public ImmutableArray<LocalSymbol> Locals { get; } 2294public BoundBlockInstrumentation Update(ImmutableArray<LocalSymbol> locals, BoundStatement? prologue, BoundStatement? epilogue) 2352public BoundLocalId(SyntaxNode syntax, LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors) 2363public BoundLocalId(SyntaxNode syntax, LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type) 2375public LocalSymbol Local { get; } 2381public BoundLocalId Update(LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type) 3327public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 3341public ImmutableArray<LocalSymbol> Locals { get; } 3349public BoundBlock Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements) 3363public BoundScope(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 3373public ImmutableArray<LocalSymbol> Locals { get; } 3378public BoundScope Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements) 3423public BoundLocalDeclaration(SyntaxNode syntax, LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType, bool hasErrors = false) 3436public LocalSymbol LocalSymbol { get; } 3445public BoundLocalDeclaration Update(LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType) 3797public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false) 3818public ImmutableArray<LocalSymbol> InnerLocals { get; } 3828public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel) 3939protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3954public ImmutableArray<LocalSymbol> Locals { get; } 3961public BoundDoStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3977public BoundDoStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel) 3991public BoundWhileStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 4007public BoundWhileStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel) 4021public BoundForStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 4039public ImmutableArray<LocalSymbol> OuterLocals { get; } 4041public ImmutableArray<LocalSymbol> InnerLocals { get; } 4049public BoundForStatement Update(ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel) 4063public BoundForEachStatement(SyntaxNode syntax, ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 4089public ImmutableArray<LocalSymbol> IterationVariables { get; } 4098public BoundForEachStatement Update(ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel) 4143public BoundUsingStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt, bool hasErrors = false) 4158public ImmutableArray<LocalSymbol> Locals { get; } 4168public BoundUsingStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt) 4182public BoundFixedStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body, bool hasErrors = false) 4195public ImmutableArray<LocalSymbol> Locals { get; } 4202public BoundFixedStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body) 4284public BoundCatchBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll, bool hasErrors = false) 4300public ImmutableArray<LocalSymbol> Locals { get; } 4311public BoundCatchBlock Update(ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll) 4530public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type, bool hasErrors) 4543public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type) 4557public LocalSymbol LocalSymbol { get; } 4565public BoundLocal Update(LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type) 4579public BoundPseudoVariable(SyntaxNode syntax, LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type, bool hasErrors) 4591public BoundPseudoVariable(SyntaxNode syntax, LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type) 4604public LocalSymbol LocalSymbol { get; } 4610public BoundPseudoVariable Update(LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type) 4928public BoundSwitchExpressionArm(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label, bool hasErrors = false) 4944public ImmutableArray<LocalSymbol> Locals { get; } 4953public BoundSwitchExpressionArm Update(ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label) 5683public BoundSwitchSection(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 5695public ImmutableArray<LocalSymbol> Locals { get; } 5701public BoundSwitchSection Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements) 5790public BoundSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false) 5805public ImmutableArray<LocalSymbol> Locals { get; } 5812public BoundSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type) 5826public BoundSpillSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false) 5841public ImmutableArray<LocalSymbol> Locals { get; } 5848public BoundSpillSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type) 8799public BoundConstructorMethodBody(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8809public ImmutableArray<LocalSymbol> Locals { get; } 8815public BoundConstructorMethodBody Update(ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody) 10872ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 10879ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 10886ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11238ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11251LocalSymbol local = this.VisitLocalSymbol(node.Local); 11399ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11407ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11419LocalSymbol localSymbol = this.VisitLocalSymbol(node.LocalSymbol); 11477ImmutableArray<LocalSymbol> innerLocals = this.VisitLocals(node.InnerLocals); 11501ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11510ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11519ImmutableArray<LocalSymbol> outerLocals = this.VisitLocals(node.OuterLocals); 11520ImmutableArray<LocalSymbol> innerLocals = this.VisitLocals(node.InnerLocals); 11531ImmutableArray<LocalSymbol> iterationVariables = this.VisitLocals(node.IterationVariables); 11551ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11560ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11581ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11621LocalSymbol localSymbol = this.VisitLocalSymbol(node.LocalSymbol); 11627LocalSymbol localSymbol = this.VisitLocalSymbol(node.LocalSymbol); 11681ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11827ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11847ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 11855ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 12414ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals); 12452ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12460ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12468ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13203ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13228LocalSymbol local = GetUpdatedSymbol(node, node.Local); 13565ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13574ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13588LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 13605ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals); 13616ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13624ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13632ImmutableArray<LocalSymbol> outerLocals = GetUpdatedArray(node, node.OuterLocals); 13633ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals); 13643ImmutableArray<LocalSymbol> iterationVariables = GetUpdatedArray(node, node.IterationVariables); 13656ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13666ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13674ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13757LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 13774LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 13838ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13936ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13961ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13980ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 15116ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (27)
256var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 266LocalSymbol returnLocal = frame.returnValue; 285LocalSymbol pendingBranchVar, 320LocalSymbol pendingBranchVar, 441private BoundStatement UnpendException(LocalSymbol pendingExceptionLocal) 454LocalSymbol obj = _F.SynthesizedLocal(_F.SpecialType(SpecialType.System_Object)); 459ImmutableArray.Create<LocalSymbol>(obj), 463BoundStatement checkAndThrow(LocalSymbol obj) 476private BoundStatement Rethrow(LocalSymbol obj) 488var ex = _F.SynthesizedLocal(_F.WellKnownType(WellKnownType.System_Exception)); 552ImmutableArray.Create<LocalSymbol>( 615var catchTemp = _F.SynthesizedLocal(catchType); 639ImmutableArray<LocalSymbol> handlerLocals; 665handlerLocals = ImmutableArray<LocalSymbol>.Empty; 669foreach (var local in node.Locals) 757LocalSymbol hoistedLocal; 1126private readonly Dictionary<LocalSymbol, LocalSymbol> _hoistedLocals; 1127private readonly List<LocalSymbol> _orderedHoistedLocals; 1136_hoistedLocals = new Dictionary<LocalSymbol, LocalSymbol>(); 1137_orderedHoistedLocals = new List<LocalSymbol>(); 1140public void HoistLocal(LocalSymbol local, SyntheticBoundNodeFactory F) 1155var newLocal = F.SynthesizedLocal(local.Type, pendingCatch.SyntaxOpt, kind: SynthesizedLocalKind.ExceptionFilterAwaitHoistedExceptionLocal); 1161public IEnumerable<LocalSymbol> GetHoistedLocals() 1166public bool TryGetHoistedLocal(LocalSymbol originalLocal, out LocalSymbol hoistedLocal)
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (1)
180protected override BoundStatement GenerateSetExceptionCall(LocalSymbol exceptionLocal)
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (18)
57private readonly LocalSymbol? _exprRetValue; 155var exceptionLocal = F.SynthesizedLocal(F.WellKnownType(WellKnownType.System_Exception)); 158F.Block(ImmutableArray<LocalSymbol>.Empty, 196var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 218BoundCatchBlock generateExceptionHandling(LocalSymbol exceptionLocal, ImmutableArray<StateMachineFieldSymbol> rootHoistedLocals) 291protected virtual BoundStatement GenerateSetExceptionCall(LocalSymbol exceptionLocal) 379var awaiterTemp = F.SynthesizedLocal(getAwaiter.Type, syntax: node.Syntax, kind: SynthesizedLocalKind.Awaiter); 449private BoundExpression GenerateGetIsCompleted(LocalSymbol awaiterTemp, MethodSymbol getIsCompletedMethod) 467private BoundBlock GenerateAwaitForIncompleteTask(LocalSymbol awaiterTemp, BoundAwaitExpressionDebugInfo debugInfo) 557private BoundStatement GenerateAwaitOnCompletedDynamic(LocalSymbol awaiterTemp) 574var criticalNotifyCompletedTemp = F.SynthesizedLocal( 578var notifyCompletionTemp = F.SynthesizedLocal( 582LocalSymbol thisTemp = (F.CurrentType.TypeKind == TypeKind.Class) ? F.SynthesizedLocal(F.CurrentType) : null; 637private BoundStatement GenerateAwaitOnCompleted(TypeSymbol loweredAwaiterType, LocalSymbol awaiterTemp) 643LocalSymbol thisTemp = (F.CurrentType.TypeKind == TypeKind.Class) ? F.SynthesizedLocal(F.CurrentType) : null; 676private static ImmutableArray<LocalSymbol> SingletonOrPair(LocalSymbol first, LocalSymbol secondOpt)
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (6)
200protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 263protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies) 325out LocalSymbol instSymbol, 337var versionSymbol = F.SynthesizedLocal(F.SpecialType(SpecialType.System_Int16)); 368private void GetPartsForStartingMachine(out BoundExpressionStatement callReset, out LocalSymbol instSymbol, out BoundStatement instAssignment, 435out LocalSymbol instSymbol,
Lowering\AsyncRewriter\AsyncRewriter.cs (2)
202protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 214protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies)
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (9)
28var hoistedLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 76private readonly RefInitializationHoister<LocalSymbol, BoundLocal> _refInitializationHoister; 77private readonly ArrayBuilder<LocalSymbol> _hoistedLocals; 80private RuntimeAsyncRewriter(SyntheticBoundNodeFactory factory, IReadOnlySet<Symbol> variablesToHoist, ArrayBuilder<LocalSymbol> hoistedLocals) 86_refInitializationHoister = new RefInitializationHoister<LocalSymbol, BoundLocal>(_factory, _factory.CurrentFunction, TypeMap.Empty); 254static LocalSymbol createHoistedLocal(TypeSymbol type, RuntimeAsyncRewriter @this, LocalSymbol local) 256var hoistedLocal = @this._factory.SynthesizedLocal(type, syntax: local.GetDeclaratorSyntax(), kind: SynthesizedLocalKind.AwaitByRefSpill); 261static BoundLocal createHoistedAccess(LocalSymbol local, RuntimeAsyncRewriter @this)
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (18)
24private readonly Dictionary<LocalSymbol, LocalSymbol> localMap = new Dictionary<LocalSymbol, LocalSymbol>(); 44protected void RewriteLocals(ImmutableArray<LocalSymbol> locals, ArrayBuilder<LocalSymbol> newLocals) 46foreach (var local in locals) 48if (TryRewriteLocal(local, out LocalSymbol? newLocal)) 55protected virtual bool TryRewriteLocal(LocalSymbol local, [NotNullWhen(true)] out LocalSymbol? newLocal) 77protected sealed override ImmutableArray<LocalSymbol> VisitLocals(ImmutableArray<LocalSymbol> locals) 80var newLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 85public sealed override LocalSymbol VisitLocalSymbol(LocalSymbol local) 87if (!TryRewriteLocal(local, out var newLocal)) 95protected bool TryGetRewrittenLocal(LocalSymbol local, [NotNullWhen(true)] out LocalSymbol? localToUse)
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (2)
619if (symbol is LocalSymbol local && local.IsConst) 686type = ((LocalSymbol)capturedVariable).Type;
Lowering\ClosureConversion\ClosureConversion.cs (28)
97private readonly HashSet<LocalSymbol> _assignLocals; 133private ArrayBuilder<LocalSymbol> _addedLocals; 173HashSet<LocalSymbol> assignLocals) 207Debug.Assert(localOrParameter is LocalSymbol || localOrParameter is ParameterSymbol || 244HashSet<LocalSymbol> assignLocals) 636var localFrame = (LocalSymbol)framePointer; 664private BoundNode IntroduceFrame(BoundNode node, Analysis.ClosureEnvironment env, Func<ArrayBuilder<BoundExpression>, ArrayBuilder<LocalSymbol>, BoundNode> F) 671LocalSymbol framePointer = new SynthesizedLocal(_topLevelMethod, TypeWithAnnotations.Create(frameType), SynthesizedLocalKind.LambdaDisplayClass, frame.ScopeSyntaxOpt); 726var addedLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 749private void InitVariableProxy(SyntaxNode syntax, Symbol symbol, LocalSymbol framePointer, ArrayBuilder<BoundExpression> prologue) 769var local = (LocalSymbol)symbol; 775LocalSymbol localToUse; 1128locals: ImmutableArray<LocalSymbol>.Empty, 1139private BoundSequence RewriteSequence(BoundSequence node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1160return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1165return RewriteBlock(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1169private BoundBlock RewriteBlock(BoundBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1222return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1229return RewriteCatch(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1233private BoundNode RewriteCatch(BoundCatchBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1251ImmutableArray.Create<LocalSymbol>(), 1296return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1303return RewriteSequence(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1313return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1723var cacheLocal = F.SynthesizedLocal(type, kind: SynthesizedLocalKind.CachedAnonymousMethodDelegate); 1724if (_addedLocals == null) _addedLocals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (3)
854var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 859var param = _bound.SynthesizedLocal(ParameterExpressionType); 910var param = _bound.SynthesizedLocal(ParameterExpressionType);
Lowering\ClosureConversion\LambdaCapturedVariable.cs (4)
48Debug.Assert(captured is LocalSymbol || captured is ParameterSymbol); 83if (variable is LocalSymbol local) 118var local = variable as LocalSymbol;
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (3)
34private readonly LocalSymbol _methodPayload; 168LocalSymbol methodPayload, 237public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\CompoundInstrumenter.cs (1)
89public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\DebugInfoInjector.cs (1)
186public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\DebugInfoInjector_SequencePoints.cs (1)
182var local = factory.SynthesizedLocal(condition.Type, synthesizedVariableSyntax, kind: SynthesizedLocalKind.ConditionalBranchDiscriminator);
Lowering\Instrumentation\Instrumenter.cs (1)
74public virtual void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (9)
90public LocalSymbol ContextVariable; 91private ArrayBuilder<LocalSymbol>? _lazyPreviousContextVariables; 93public Scope(LocalSymbol contextVariable) 98public void Open(LocalSymbol local) 100_lazyPreviousContextVariables ??= ArrayBuilder<LocalSymbol>.GetInstance(); 284public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 495LocalSymbol local => _factory.Local(local), 523var targetSymbol = original.Locals.FirstOrDefault(l => l.SynthesizedKind == SynthesizedLocalKind.UserDefined); 630return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
67public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\StackOverflowProbingInstrumenter.cs (1)
57public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.cs (5)
35private LocalSymbol? _methodValue; 178var stateLocal = F.SynthesizedLocal(stateField.Type); 182ImmutableArray.Create<LocalSymbol>(stateLocal), 210ImmutableArray.Create<LocalSymbol>(_methodValue), 417ImmutableArray<LocalSymbol>.Empty,
Lowering\IteratorRewriter\IteratorRewriter.cs (2)
301protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 312protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies)
Lowering\LocalRewriter\LocalRewriter.cs (2)
40private ArrayBuilder<LocalSymbol>? _additionalLocals; 708_additionalLocals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
51internal LocalSymbol? _whenNodeIdentifierLocal;
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (4)
57private readonly ArrayBuilder<LocalSymbol> _temps = ArrayBuilder<LocalSymbol>.GetInstance(); 99LocalSymbol temp = _factory.SynthesizedLocal(dagTemp.Type, syntax: _node, kind: kind); 126public ImmutableArray<LocalSymbol> AllTemps()
Lowering\LocalRewriter\LocalRewriter_AsOperator.cs (1)
73locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (2)
320ArrayBuilder<LocalSymbol>? argTempsBuilder = null; 398LocalSymbol rhsTemp = _factory.SynthesizedLocal(exprType);
Lowering\LocalRewriter\LocalRewriter_Await.cs (1)
52locals: ImmutableArray.Create<LocalSymbol>(tempAccess.LocalSymbol),
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (10)
871locals: ImmutableArray<LocalSymbol>.Empty, 1117locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1306locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1415locals: ImmutableArray<LocalSymbol>.Empty, 1459var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 1508ArrayBuilder<LocalSymbol> locals, 1753locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), 1814locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1902locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1983locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_Block.cs (3)
28_additionalLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 35var additionalLocals = TemporaryArray<LocalSymbol>.Empty; 130? new BoundBlock(node.Syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty)
Lowering\LocalRewriter\LocalRewriter_Call.cs (17)
141ref ArrayBuilder<LocalSymbol> temps, 394ArrayBuilder<LocalSymbol>? temps = null; 463ImmutableArray<LocalSymbol> temps) 669ref ArrayBuilder<LocalSymbol>? tempsOpt, 733tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance(); 825ImmutableArray<LocalSymbol>.Empty, 833void ensureTempTrackingSetup([NotNull] ref ArrayBuilder<LocalSymbol>? tempsOpt, ref BitVector positionsAssignedToTemp) 835tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance(); 848ref ArrayBuilder<LocalSymbol>? tempsOpt, 903visitedArgumentsBuilder[argIndex] = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create<BoundExpression>(store), local); 991private void ReferToTempIfReferenceTypeReceiver(BoundLocal receiverTemp, ref BoundAssignmentOperator assignmentToTemp, out BoundAssignmentOperator? extraRefInitialization, ArrayBuilder<LocalSymbol> temps) 1064[NotNull] ref ArrayBuilder<LocalSymbol>? temps, 1076temps ??= ArrayBuilder<LocalSymbol>.GetInstance(); 1539ArrayBuilder<LocalSymbol> temporariesBuilder) 1663ImmutableArray<LocalSymbol>.Empty, 1687ArrayBuilder<LocalSymbol> temporariesBuilder) 1727locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (4)
678locals: ImmutableArray<LocalSymbol>.Empty, 1385new BoundBlock(iteratorBody.Syntax, locals: ImmutableArray<LocalSymbol>.Empty, statements); 1464var iterationVariable = _factory.SynthesizedLocal(enumeratorInfo.ElementType, node.Syntax); 1542ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (13)
85var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 118var eventTemps = ArrayBuilder<LocalSymbol>.GetInstance(); 261private BoundExpression? TransformPropertyOrEventReceiver(Symbol propertyOrEvent, BoundExpression? receiverOpt, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 351private BoundDynamicMemberAccess TransformDynamicMemberAccess(BoundDynamicMemberAccess memberAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 368private BoundIndexerAccess TransformIndexerAccess(BoundIndexerAccess indexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 440ArrayBuilder<LocalSymbol> temps) 478ArrayBuilder<LocalSymbol> temps) 540ArrayBuilder<LocalSymbol> temps, 554private BoundExpression TransformIndexPatternIndexerAccess(BoundImplicitIndexerAccess implicitIndexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment) 590private bool TransformCompoundAssignmentFieldOrEventAccessReceiver(Symbol fieldOrEvent, ref BoundExpression? receiver, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 633private BoundDynamicIndexerAccess TransformDynamicIndexerAccess(BoundDynamicIndexerAccess indexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 692private BoundExpression TransformCompoundAssignmentLHS(BoundExpression originalLHS, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment) 911ArrayBuilder<LocalSymbol> temps)
Lowering\LocalRewriter\LocalRewriter_ConditionalAccess.cs (1)
79LocalSymbol? temp = null;
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (9)
39var lhsTemps = ArrayBuilder<LocalSymbol>.GetInstance(); 77var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 214ArrayBuilder<LocalSymbol> temps, 278ArrayBuilder<LocalSymbol> temps, DeconstructionSideEffects effects, ref bool inInit) 334private ImmutableArray<BoundExpression> AccessTupleFields(BoundExpression expression, ArrayBuilder<LocalSymbol> temps, 371ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects) 382ArrayBuilder<BoundExpression> effects, ArrayBuilder<LocalSymbol> temps) 421ArrayBuilder<LocalSymbol> temps) 443private ArrayBuilder<Binder.DeconstructionVariable> GetAssignmentTargetsAndSideEffects(BoundTupleExpression variables, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects)
Lowering\LocalRewriter\LocalRewriter_Event.cs (3)
179ImmutableArray<LocalSymbol> tempSymbols = boundTemp == null 180? ImmutableArray<LocalSymbol>.Empty 181: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol);
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (13)
22var localBuilder = ArrayBuilder<LocalSymbol>.GetInstance(node.Locals.Length); 31LocalSymbol pinnedTemp; 197out LocalSymbol pinnedTemp) 202LocalSymbol localSymbol = localDecl.LocalSymbol; 234LocalSymbol localSymbol, 237out LocalSymbol pinnedTemp) 301LocalSymbol localSymbol, 304out LocalSymbol pinnedTemp) 380locals: ImmutableArray<LocalSymbol>.Empty, 437LocalSymbol localSymbol, 440out LocalSymbol pinnedTemp) 506LocalSymbol localSymbol, 509out LocalSymbol pinnedTemp)
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (27)
146ImmutableArray<LocalSymbol> iterationVariables, 161LocalSymbol enumeratorVar = _factory.SynthesizedLocal(enumeratorType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachEnumerator); 264tryBlock: new BoundBlock(forEachSyntax, locals: ImmutableArray<LocalSymbol>.Empty, statements: ImmutableArray.Create(whileLoop)), 415locals: ImmutableArray<LocalSymbol>.Empty, 428LocalSymbol disposableVar = _factory.SynthesizedLocal(idisposableTypeSymbol); 594ImmutableArray<LocalSymbol> iterationVariables, 609LocalSymbol? preambleLocal = null; 614LocalSymbol collectionTemp = _factory.SynthesizedLocal(collectionType, forEachSyntax, kind: SynthesizedLocalKind.ForEachArray, refKind: collectionTempRefKind); 630LocalSymbol positionVar = _factory.SynthesizedLocal(intType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArrayIndex); 684outerLocals: preambleLocal is null ? ImmutableArray.Create<LocalSymbol>(collectionTemp, positionVar) : ImmutableArray.Create<LocalSymbol>(preambleLocal, collectionTemp, positionVar), 698private delegate BoundStatement? GetForEachStatementAsForPreamble(LocalRewriter rewriter, SyntaxNode syntax, ForEachEnumeratorInfo enumeratorInfo, ref BoundExpression rewrittenExpression, out LocalSymbol? preambleLocal, out RefKind collectionTempRefKind); 737return static (LocalRewriter rewriter, SyntaxNode syntax, ForEachEnumeratorInfo enumeratorInfo, ref BoundExpression rewrittenExpression, out LocalSymbol? preambleLocal, out RefKind collectionTempRefKind) => 803ImmutableArray<LocalSymbol> iterationVariables, 829ImmutableArray<LocalSymbol> iterationVariables, 890ImmutableArray<LocalSymbol> iterationVariables, 908LocalSymbol arrayVar = _factory.SynthesizedLocal(arrayType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArray); 919LocalSymbol positionVar = _factory.SynthesizedLocal(intType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArrayIndex); 980outerLocals: ImmutableArray.Create<LocalSymbol>(arrayVar, positionVar), 1039ImmutableArray<LocalSymbol> iterationVariables, 1064LocalSymbol arrayVar = _factory.SynthesizedLocal(arrayType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArray); 1078LocalSymbol[] upperVar = new LocalSymbol[rank]; 1100LocalSymbol[] positionVar = new LocalSymbol[rank]; 1223private static BoundLocal MakeBoundLocal(CSharpSyntaxNode syntax, LocalSymbol local, TypeSymbol type) 1231private BoundStatement MakeLocalDeclaration(CSharpSyntaxNode syntax, LocalSymbol local, BoundExpression rewrittenInitialValue)
Lowering\LocalRewriter\LocalRewriter_ForStatement.cs (1)
42ImmutableArray<LocalSymbol> outerLocals,
Lowering\LocalRewriter\LocalRewriter_FunctionPointerInvocation.cs (1)
25ArrayBuilder<LocalSymbol>? temps = null;
Lowering\LocalRewriter\LocalRewriter_Index.cs (2)
35ArrayBuilder<LocalSymbol> locals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (8)
161ArrayBuilder<LocalSymbol>? temps = null; 290var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 495var locals = ArrayBuilder<LocalSymbol>.GetInstance(2); 516ArrayBuilder<LocalSymbol> locals) 798var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 809private BoundExpression VisitRangePatternIndexerAccess(BoundImplicitIndexerAccess node, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder, bool cacheAllArgumentsOnly) 1036private BoundExpression MakeRangeSize(ref BoundExpression startExpr, BoundExpression endExpr, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder) 1067private void DeconstructRange(BoundExpression rewrittenRangeArg, BoundExpression lengthAccess, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder, out BoundExpression startExpr, out BoundExpression rangeSizeExpr)
Lowering\LocalRewriter\LocalRewriter_IsOperator.cs (1)
91locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (2)
120LocalSymbol resultTemp = _factory.SynthesizedLocal(node.Type, node.Syntax, kind: SynthesizedLocalKind.LoweringTemp); 181test = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, _sideEffectBuilder.ToImmutable(), test);
Lowering\LocalRewriter\LocalRewriter_LocalDeclaration.cs (2)
19private BoundStatement? RewriteLocalDeclaration(BoundLocalDeclaration? originalOpt, SyntaxNode syntax, LocalSymbol localSymbol, BoundExpression? rewrittenInitializer, bool hasErrors = false) 72private BoundStatement InstrumentLocalDeclarationIfNecessary(BoundLocalDeclaration? originalOpt, LocalSymbol localSymbol, BoundStatement rewrittenLocalDeclaration)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
18var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 142var alternative = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(tmpAssignment, transformedLhsAssignment), tmp);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (5)
44ArrayBuilder<LocalSymbol>? tempsBuilder = null; 166var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 205ArrayBuilder<BoundExpression> sideEffects, ArrayBuilder<LocalSymbol> temps) 275ArrayBuilder<LocalSymbol>? temps = null; 293ImmutableArray<LocalSymbol> locals;
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (14)
33ref ArrayBuilder<LocalSymbol>? temps, 214ArrayBuilder<LocalSymbol>? temps = null; 245private BoundExpression VisitObjectInitializerMember(BoundObjectInitializerMember node, ref BoundExpression rewrittenReceiver, ArrayBuilder<BoundExpression> sideEffects, ref ArrayBuilder<LocalSymbol>? temps) 253ArrayBuilder<LocalSymbol>? constructionTemps = null; 284ref ArrayBuilder<LocalSymbol>? temps, 304ref ArrayBuilder<LocalSymbol>? temps, 457temps ??= ArrayBuilder<LocalSymbol>.GetInstance(); 493temps = ArrayBuilder<LocalSymbol>.GetInstance(); 515temps ??= ArrayBuilder<LocalSymbol>.GetInstance(); 624ref ArrayBuilder<LocalSymbol>? temps) 638(LocalRewriter rewriter, ArrayBuilder<BoundExpression> sideeffects, ArrayBuilder<LocalSymbol>? temps) elementArg = (rewriter: this, sideeffects, temps); 641static (BoundExpression element, ref (LocalRewriter rewriter, ArrayBuilder<BoundExpression> sideeffects, ArrayBuilder<LocalSymbol>? temps) elementArg) => 670private BoundExpression EvaluateSideEffects(BoundExpression arg, RefKind refKind, ArrayBuilder<BoundExpression> sideeffects, ref ArrayBuilder<LocalSymbol>? temps) 679temps = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (1)
75var outerVariables = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_Range.cs (1)
85var locals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_StackAlloc.cs (1)
54var locals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
516var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (5)
34var builderTempSymbol = _factory.InterpolatedStringHandlerLocal(data.BuilderType, syntax); 59var outLocal = _factory.SynthesizedLocal(localType); 260private readonly LocalSymbol? _outTemp; 264public InterpolationHandlerResult(ImmutableArray<BoundStatement> statements, BoundLocal handlerTemp, LocalSymbol outTemp, LocalRewriter rewriter) 273public InterpolationHandlerResult(ImmutableArray<BoundExpression> expressions, BoundLocal handlerTemp, LocalSymbol? outTemp, LocalRewriter rewriter)
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (2)
50var outerVariables = ArrayBuilder<LocalSymbol>.GetInstance(); 89LocalSymbol resultTemp = _factory.SynthesizedLocal(node.Type, node.Syntax, kind: SynthesizedLocalKind.LoweringTemp);
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (14)
32var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 102ArrayBuilder<LocalSymbol> temps) 145ArrayBuilder<LocalSymbol> temps) 186ArrayBuilder<LocalSymbol> temps, 252ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind) 272TypeSymbol boolType, ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind) 313BoundExpression innerSequence = _factory.Sequence(locals: ImmutableArray<LocalSymbol>.Empty, innerEffects.ToImmutableAndFree(), logicalExpression); 327return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 335return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 344_factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 358private void MakeNullableParts(BoundExpression expr, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> innerEffects, 421private BoundLocal MakeTemp(BoundExpression loweredExpression, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects) 434ArrayBuilder<LocalSymbol> temps, 491ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (10)
237locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), 461ArrayBuilder<LocalSymbol> tempSymbols = ArrayBuilder<LocalSymbol>.GetInstance(); 578ArrayBuilder<LocalSymbol> tempSymbols = ArrayBuilder<LocalSymbol>.GetInstance(); 590LocalSymbol tempSymbol = _factory.SynthesizedLocal(operandType); 653ArrayBuilder<LocalSymbol> tempSymbols, 692ArrayBuilder<LocalSymbol> tempSymbols, 708ImmutableArray<LocalSymbol>.Empty, 871locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol),
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (6)
64ImmutableArray<LocalSymbol> locals, 92BoundBlock body = new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements); 96ImmutableArray<LocalSymbol>.Empty, 217LocalSymbol localSymbol = localDeclaration.LocalSymbol; 258locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), //localSymbol will be declared by an enclosing block 511ArrayBuilder<LocalSymbol>? temps = null;
Lowering\LocalRewriter\LocalRewriter_WhileStatement.cs (1)
108ImmutableArray<LocalSymbol> locals,
Lowering\LocalRewriter\LoweredDynamicOperation.cs (3)
25private readonly ImmutableArray<LocalSymbol> _temps; 29public LoweredDynamicOperation(SyntheticBoundNodeFactory? factory, BoundExpression? siteInitialization, BoundExpression siteInvocation, TypeSymbol resultType, ImmutableArray<LocalSymbol> temps) 56return new LoweredDynamicOperation(null, null, bad, resultType, default(ImmutableArray<LocalSymbol>));
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (5)
641ImmutableArray<LocalSymbol> temps = MakeTempsForDiscardArguments(ref loweredArguments); 671private ImmutableArray<LocalSymbol> MakeTempsForDiscardArguments(ref ImmutableArray<BoundExpression> loweredArguments) 677return ImmutableArray<LocalSymbol>.Empty; 680ArrayBuilder<LocalSymbol> temporariesBuilder = ArrayBuilder<LocalSymbol>.GetInstance(discardCount);
Lowering\MethodToClassRewriter.cs (3)
55protected sealed override bool TryRewriteLocal(LocalSymbol local, [NotNullWhen(true)] out LocalSymbol? newLocal) 311ImmutableArray.Create<LocalSymbol>(tempLocal.LocalSymbol),
Lowering\SpillSequenceSpiller.cs (37)
22private readonly PooledDictionary<LocalSymbol, LocalSymbol> _tempSubstitution; 23private readonly PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> _receiverSubstitution; 27PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 28PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 41private ArrayBuilder<LocalSymbol> _locals; 67public ImmutableArray<LocalSymbol> GetLocals() 69return (_locals == null) ? ImmutableArray<LocalSymbol>.Empty : _locals.ToImmutable(); 122public void AddLocal(LocalSymbol local) 126_locals = ArrayBuilder<LocalSymbol>.GetInstance(); 132public void AddLocals(ImmutableArray<LocalSymbol> locals) 134foreach (var local in locals) 183private readonly PooledDictionary<LocalSymbol, LocalSymbol> _tempSubstitution; 184private readonly PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> _receiverSubstitution; 187PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 188PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 197PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 198PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 214LocalSymbol longLived; 234var tempSubstitution = PooledDictionary<LocalSymbol, LocalSymbol>.GetInstance(); 235var receiverSubstitution = PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver>.GetInstance(); 357out LocalSymbol receiverRefLocal, 530out LocalSymbol outReceiverRefLocal, 1009var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1148var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1163var tmp = _F.SynthesizedLocal(condition.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1263var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1319var clone = _F.SynthesizedLocal(receiver.Type, _F.Syntax, refKind: RefKind.None, kind: SynthesizedLocalKind.Spill); 1349var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1500private void PromoteAndAddLocals(BoundSpillSequenceBuilder builder, ImmutableArray<LocalSymbol> locals) 1502foreach (var local in locals) 1510LocalSymbol longLived = local.WithSynthesizedLocalKindAndSyntax(SynthesizedLocalKind.Spill, _F.Syntax);
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (13)
44private readonly Dictionary<LocalSymbol, BoundExpression> _boundRefLocalInitializers = new Dictionary<LocalSymbol, BoundExpression>(); 87if (variable is LocalSymbol local) 150LocalSymbol { IsConst: false, IsPinned: false, IsRef: false } local => 169if (!((LocalSymbol)symbol).IsConst) 223case LocalSymbol { RefKind: RefKind.None }: 230var type = (variable.Kind == SymbolKind.Local) ? ((LocalSymbol)variable).Type : ((ParameterSymbol)variable).Type; 232(variable is LocalSymbol { RefKind: not RefKind.None } refLocal && !canRefLocalBeHoisted(refLocal))) 238if (_variablesToHoist.Add(variable) && variable is LocalSymbol local && _boundRefLocalInitializers.TryGetValue(local, out var variableInitializer)) 242static bool canRefLocalBeHoisted(LocalSymbol refLocal) 362if (node is { IsRef: true, Left: BoundLocal { LocalSymbol: LocalSymbol { IsCompilerGenerated: true } local } }) 394private void AddVariables(ImmutableArray<LocalSymbol> locals) 396foreach (var local in locals)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (13)
36protected readonly LocalSymbol cachedState; 50protected readonly LocalSymbol? cachedThis; 286foreach (var local in node.Locals) 301private BoundStatement PossibleIteratorScope(ImmutableArray<LocalSymbol> locals, Func<BoundStatement> wrapped) 309foreach (var local in locals) 352foreach (var local in locals) 466private StateMachineFieldSymbol GetOrAllocateReusableHoistedField(TypeSymbol type, out bool reused, LocalSymbol? local = null) 541var newLocalsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 544foreach (var local in node.Locals) 551LocalSymbol localToUse; 584ImmutableArray<LocalSymbol> newLocals; 625var leftLocal = ((BoundLocal)node.Left).LocalSymbol; 660static StateMachineFieldSymbol createHoistedSymbol(TypeSymbol type, MethodToStateMachineRewriter @this, LocalSymbol assignedLocal)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (6)
59LocalSymbol local, 62Func<TypeSymbol, TArg, LocalSymbol, THoistedSymbol> createHoistedSymbol, 97var sacrificialTemp = _factory.SynthesizedLocal(type, refKind: RefKind.Ref); 110return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, sideEffects.ToImmutableAndFree(), last); 136LocalSymbol assignedLocal, 141Func<TypeSymbol, TArg, LocalSymbol, THoistedSymbol> createHoistedSymbol,
Lowering\StateMachineRewriter\StateMachineRewriter.cs (8)
81protected abstract void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal); 86protected abstract BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies); 157var local = (LocalSymbol)variable; 271private bool ShouldPreallocateNonReusableProxy(LocalSymbol local) 293LocalSymbol stateMachineVariable = F.SynthesizedLocal(frameType, null); 306protected BoundStatement GenerateParameterStorage(LocalSymbol stateMachineVariable, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies) 427var resultVariable = F.SynthesizedLocal(stateMachineType, null);
Lowering\SyntheticBoundNodeFactory.cs (28)
228public BoundExpression This(LocalSymbol thisTempOpt) 458return Block(ImmutableArray<LocalSymbol>.Empty, statements); 466public BoundBlock Block(ImmutableArray<LocalSymbol> locals, params BoundStatement[] statements) 471public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements) 476public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, params BoundStatement[] statements) 481public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, ImmutableArray<BoundStatement> statements) 486public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, ImmutableArray<BoundStatement> statements) 515public BoundBlockInstrumentation CombineInstrumentation(BoundBlockInstrumentation? innerInstrumentation = null, LocalSymbol? local = null, BoundStatement? prologue = null, BoundStatement? epilogue = null) 595public LocalSymbol SynthesizedLocal( 617public LocalSymbol InterpolatedStringHandlerLocal( 950return If(condition, ImmutableArray<LocalSymbol>.Empty, thenClause, elseClauseOpt); 958public BoundStatement If(BoundExpression condition, ImmutableArray<LocalSymbol> locals, BoundStatement thenClause, BoundStatement? elseClauseOpt = null) 1014public BoundLocal Local(LocalSymbol local) 1019public BoundExpression MakeSequence(LocalSymbol temp, params BoundExpression[] parts) 1021return MakeSequence(ImmutableArray.Create<LocalSymbol>(temp), parts); 1026return MakeSequence(ImmutableArray<LocalSymbol>.Empty, parts); 1029public BoundExpression MakeSequence(ImmutableArray<LocalSymbol> locals, params BoundExpression[] parts) 1055return new BoundSequence(Syntax, ImmutableArray<LocalSymbol>.Empty, sideEffects.AsImmutableOrNull(), result, resultType) { WasCompilerGenerated = true }; 1058public BoundExpression Sequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression result) 1067public BoundSpillSequence SpillSequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression result) 1356public BoundExpression LocalId(LocalSymbol symbol) 1605LocalSymbol local, 1616return new BoundCatchBlock(Syntax, ImmutableArray<LocalSymbol>.Empty, source, source.Type, exceptionFilterPrologueOpt: null, exceptionFilterOpt: null, body: block, isSynthesizedAsyncCatchAll: false); 1724internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, ArrayBuilder<LocalSymbol> temps) 1726LocalSymbol temp; 1732internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, out LocalSymbol temp) 1740internal ImmutableArray<BoundExpression> MakeTempsForDiscardArguments(ImmutableArray<BoundExpression> arguments, ArrayBuilder<LocalSymbol> builder) 1858locals: ImmutableArray<LocalSymbol>.Empty,
Operations\CSharpOperationFactory.cs (1)
1957var local = boundForEachStatement.IterationVariables[0];
Symbols\LocalDeclarationKind.cs (1)
18/// Check the value of <see cref="LocalSymbol.SynthesizedKind"/> for the kind of synthesized variable.
Symbols\LocalSymbol.cs (2)
41internal abstract LocalSymbol WithSynthesizedLocalKindAndSyntax( 371internal abstract ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics = null);
Symbols\PublicModel\LocalSymbol.cs (2)
14private readonly Symbols.LocalSymbol _underlying; 17public LocalSymbol(Symbols.LocalSymbol underlying)
Symbols\Source\SourceComplexParameterSymbol.cs (1)
353ImmutableArray<LocalSymbol>.Empty,
Symbols\Source\SourceLocalSymbol.cs (5)
188internal static LocalSymbol MakeLocalSymbolWithEnclosingContext( 266internal override LocalSymbol WithSynthesizedLocalKindAndSyntax( 568internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics) 671private void MakeConstantTuple(LocalSymbol inProgress, BoundExpression boundInitValue) 689internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics = null)
Symbols\Symbol.cs (1)
1732if (((LocalSymbol)variable).IsConst)
Symbols\SymbolExtensions.cs (6)
504LocalSymbol local = (LocalSymbol)symbol; 586internal static ILocalSymbol? GetPublicSymbol(this LocalSymbol? symbol) 711internal static ImmutableArray<ILocalSymbol> GetPublicSymbols(this ImmutableArray<LocalSymbol> symbols) 783internal static LocalSymbol? GetSymbol(this ILocalSymbol? symbol) 785return symbol.GetSymbol<LocalSymbol>();
Symbols\SymbolVisitor.cs (1)
65public virtual void VisitLocal(LocalSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
65public virtual TResult VisitLocal(LocalSymbol symbol)
Symbols\SymbolVisitor`2.cs (2)
245/// Called when visiting a <see cref="LocalSymbol" />; Override this with specific 251public virtual TResult VisitLocal(LocalSymbol symbol, TArgument argument)
Symbols\Synthesized\Records\SynthesizedRecordToString.cs (1)
59var builderLocalSymbol = F.SynthesizedLocal(stringBuilder);
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (5)
438locals: ImmutableArray<LocalSymbol>.Empty, 461locals: ImmutableArray<LocalSymbol>.Empty, 533locals: ImmutableArray<LocalSymbol>.Empty, 539ImmutableArray.Create<LocalSymbol>(scriptLocal.LocalSymbol), 656ImmutableArray.Create<LocalSymbol>(submissionLocal.LocalSymbol),
Symbols\Synthesized\SynthesizedLocal.cs (2)
73internal sealed override LocalSymbol WithSynthesizedLocalKindAndSyntax( 190internal sealed override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics)
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (5)
16private readonly LocalSymbol _originalVariable; 20public TypeSubstitutedLocalSymbol(LocalSymbol originalVariable, TypeWithAnnotations type, Symbol containingSymbol) 124internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics) 134internal LocalSymbol UnderlyingLocalSymbol => _originalVariable; 136internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
Symbols\UpdatedContainingSymbolLocal.cs (3)
50if (!(other is LocalSymbol otherLocal)) 93internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag? diagnostics = null) => 101internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (2)
CodeGen\CodeGenDeconstructTests.cs (1)
3581Assert.Equal(kind, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
CodeGen\ForeachTest.cs (1)
1688var local = (SourceLocalSymbol)model.GetDeclaredSymbol(decl).GetSymbol<LocalSymbol>();
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (10)
RefReadonlyParameterTests.cs (1)
1550var symbol = model.GetDeclaredSymbol(local).GetSymbol<LocalSymbol>()!.Type as FunctionPointerTypeSymbol;
RefStructInterfacesTests.cs (2)
21706var local = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>();
Semantics\OutVarTests.cs (2)
967Assert.Equal(expectedLocalKind, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 1141Assert.Equal(LocalDeclarationKind.OutVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\PatternMatchingTestBase.cs (5)
83Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 144Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 170Assert.Equal(LocalDeclarationKind.RegularVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 184Assert.Equal(kind, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 206Assert.NotEqual(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (113)
Semantics\DeconstructionTests.cs (14)
3953Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 3967Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 4239Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 4243Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 4247Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 4251Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind); 5188Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 5192Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 5196Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 5200Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind); 5656Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 5660Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 5664Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 5668Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\NullableReferenceTypesTests.cs (58)
35013var symbol = model.GetSymbolInfo(outVar).Symbol.GetSymbol<LocalSymbol>(); 35031var symbol = model.GetDeclaredSymbol(variable).GetSymbol<LocalSymbol>(); 59101var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59135var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59163var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59195var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59224var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59257var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59289var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59322var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59356var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59383var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59411var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 59441var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 59445symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 59449symbol = model.GetDeclaredSymbol(declarators[2]).GetSymbol<LocalSymbol>(); 71359var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71362symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71395var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71398symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71436var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71439symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71473var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71476symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71510var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71513symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71545var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71548symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 71578var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71615var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 71618symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 81361var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 113718Assert.Equal("var!", model.GetDeclaredSymbol(decl.Designation).GetSymbol<LocalSymbol>().TypeWithAnnotations.ToTestDisplayString(includeNonNullable: true)); 113749Assert.Equal("var", model.GetDeclaredSymbol(decl.Designation).GetSymbol<LocalSymbol>().TypeWithAnnotations.ToTestDisplayString(includeNonNullable: true)); 155066Assert.Equal(expectedAnnotation, symbol.GetSymbol<LocalSymbol>().TypeWithAnnotations.NullableAnnotation);
Semantics\RefFieldTests.cs (41)
11189var delegateType = (NamedTypeSymbol)model.GetDeclaredSymbol(decl).GetSymbol<LocalSymbol>().Type; 11284var methods = decls.Select(d => ((FunctionPointerTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).Signature).ToArray(); 12092var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12229var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12413var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12824var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13182var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13237var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13296var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13339var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13368var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13393var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13413var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13435var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13470var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13534var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13681var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13745var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14386var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14428var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14553var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14629var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14874var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 15082var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 15108var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 15163var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 15742private static void VerifyLocalSymbol(LocalSymbol local, string expectedDisplayString, RefKind expectedRefKind, ScopedKind expectedScope) 23345var types = decls.Select(d => (NamedTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).ToArray(); 23413var types = decls.Select(d => (NamedTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).ToArray(); 25273var delegateType = (NamedTypeSymbol)model.GetDeclaredSymbol(decl).GetSymbol<LocalSymbol>().Type; 27314var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 27366var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 27418var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 27571var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 27661var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 27781var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 27882var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 27927var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 27987var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 28217var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 28265var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray();