7 types derived from LocalSymbol
Microsoft.CodeAnalysis.CSharp (6)
CodeGen\Optimizer.cs (1)
2214internal sealed class DummyLocal : LocalSymbol
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (1)
22private sealed class PlaceholderLocal : LocalSymbol
Symbols\Source\SourceLocalSymbol.cs (1)
21internal 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
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (1)
Symbols\EELocalSymbolBase.cs (1)
30internal abstract class EELocalSymbolBase : LocalSymbol
1030 references to LocalSymbol
Microsoft.CodeAnalysis.CSharp (790)
Binder\Binder.cs (2)
184internal virtual ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator) 478internal virtual LocalSymbol? LocalInProgress
Binder\Binder.ValueChecks.cs (7)
829LocalSymbol localSymbol = local.LocalSymbol; 868LocalSymbol localSymbol = local.LocalSymbol; 2659private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local, BindValueKind kind, bool checkingReceiver, BindingDiagnosticBag diagnostics) 3940var localSymbol = ((BoundLocal)expr).LocalSymbol; 4589HashSet<LocalSymbol> stackLocalsOpt) 4635var local = ((BoundLocal)expression).LocalSymbol; 4718HashSet<LocalSymbol> stackLocalsOpt)
Binder\Binder_Expressions.cs (3)
1806var localSymbol = (LocalSymbol)symbol; 2020bool isUsedBeforeDeclaration(SimpleNameSyntax node, LocalSymbol localSymbol)
Binder\Binder_Initializers.cs (1)
132boundInitializers.Add(new BoundFieldEqualsValue(parameterSyntax, fieldSymbol, ImmutableArray<LocalSymbol>.Empty,
Binder\Binder_Operators.cs (1)
2627LocalSymbol localSymbol = localAccess.LocalSymbol;
Binder\Binder_Query.cs (1)
695return lambdaBodyBinder.CreateBlockFromExpression(node, ImmutableArray<LocalSymbol>.Empty, RefKind.None, construction, null, d);
Binder\Binder_Statements.cs (9)
1885ImmutableArray<LocalSymbol> locals = GetDeclaredLocalsForScope(node); 3229ImmutableArray<LocalSymbol> locals = binder.GetDeclaredLocalsForScope(node); 3231LocalSymbol local = locals.FirstOrDefault(); 3345internal BoundBlock CreateBlockFromExpression(CSharpSyntaxNode node, ImmutableArray<LocalSymbol> locals, RefKind refKind, BoundExpression expression, ExpressionSyntax expressionSyntax, BindingDiagnosticBag diagnostics) 3582ImmutableArray<LocalSymbol> constructorLocals; 3593constructorLocals = ImmutableArray<LocalSymbol>.Empty; 3599blockBody: new BoundBlock(typeDecl, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty).MakeCompilerGenerated(), 3940internal virtual ImmutableArray<LocalSymbol> Locals 3944return 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(); 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)
487internal class ExpressionVariableFinder : ExpressionVariableFinder<LocalSymbol> 494ArrayBuilder<LocalSymbol> builder, 516ArrayBuilder<LocalSymbol> builder, 535protected override LocalSymbol MakePatternVariable(TypeSyntax type, SingleVariableDesignationSyntax designation, SyntaxNode nodeToBind) 561protected override LocalSymbol MakeDeclarationExpressionVariable(DeclarationExpressionSyntax node, SingleVariableDesignationSyntax designation, BaseArgumentListSyntax argumentListSyntaxOpt, SyntaxNode nodeToBind) 583protected 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)
54protected override ImmutableArray<LocalSymbol> BuildLocals() 61var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 78return ImmutableArray.Create<LocalSymbol>(iterationVariable); 88ArrayBuilder<LocalSymbol> locals, 125ArrayBuilder<LocalSymbol> locals, 402ImmutableArray<LocalSymbol> iterationVariables = this.Locals; 1680internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
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)
20private readonly LocalSymbol _inProgress; 22internal LocalInProgressBinder(LocalSymbol inProgress, Binder next) 28internal override LocalSymbol LocalInProgress
Binder\LocalScopeBinder.cs (16)
18private ImmutableArray<LocalSymbol> _locals; 32internal sealed override ImmutableArray<LocalSymbol> Locals 38ImmutableInterlocked.InterlockedCompareExchange(ref _locals, BuildLocals(), default(ImmutableArray<LocalSymbol>)); 45protected virtual ImmutableArray<LocalSymbol> BuildLocals() 47return ImmutableArray<LocalSymbol>.Empty; 86private SmallDictionary<string, LocalSymbol> _lazyLocalsMap; 87private SmallDictionary<string, LocalSymbol> LocalsMap 145protected ImmutableArray<LocalSymbol> BuildLocals(SyntaxList<StatementSyntax> statements, Binder enclosingBinder) 161ArrayBuilder<LocalSymbol> locals = ArrayBuilder<LocalSymbol>.GetInstance(); 170internal void BuildLocals(Binder enclosingBinder, StatementSyntax statement, ArrayBuilder<LocalSymbol> locals) 337LocalSymbol result = null; 343foreach (var local in this.Locals) 398LocalSymbol localSymbol; 464declaredInThisScope |= newSymbolKind == SymbolKind.Local && this.Locals.Contains((LocalSymbol)newSymbol); 497LocalSymbol existingLocal = null;
Binder\RefSafetyAnalysis.cs (15)
82private Dictionary<LocalSymbol, (uint RefEscapeScope, uint ValEscapeScope)>? _localEscapeScopes; 92Dictionary<LocalSymbol, (uint RefEscapeScope, uint ValEscapeScope)>? localEscapeScopes = null) 109private readonly ImmutableArray<LocalSymbol> _locals; 111public LocalScope(RefSafetyAnalysis analysis, ImmutableArray<LocalSymbol> locals) 116foreach (var local in locals) 124foreach (var local in _locals) 193private (uint RefEscapeScope, uint ValEscapeScope) GetLocalScopes(LocalSymbol local) 199private void SetLocalScopes(LocalSymbol local, uint refEscapeScope, uint valEscapeScope) 386private void AddLocalScopes(LocalSymbol local, uint refEscapeScope, uint valEscapeScope) 408_localEscapeScopes ??= new Dictionary<LocalSymbol, (uint RefEscapeScope, uint ValEscapeScope)>(); 413private void RemoveLocalScopes(LocalSymbol local) 551if (pattern.Variable is LocalSymbol local) 857using var _ = new LocalScope(this, ImmutableArray<LocalSymbol>.Empty); 859foreach (var local in node.IterationVariables) 877foreach (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(); 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)
130protected override ImmutableArray<LocalSymbol> BuildLocals() 132var builder = ArrayBuilder<LocalSymbol>.GetInstance(); 324internal 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); 298internal 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)
278public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, ConstantValue? constantValueOpt, TypeSymbol type, bool hasErrors = false) 283public BoundLocal Update(LocalSymbol localSymbol, ConstantValue? constantValueOpt, TypeSymbol type)
BoundTree\BoundNode.cs (7)
432public readonly PooledHashSet<LocalSymbol> DeclaredLocals = PooledHashSet<LocalSymbol>.GetInstance(); 445private void AddAll(ImmutableArray<LocalSymbol> locals) 447foreach (var local in locals) 456private void RemoveAll(ImmutableArray<LocalSymbol> locals) 458foreach (var local in locals) 467private void CheckDeclared(LocalSymbol local)
BoundTree\BoundNode_Source.cs (3)
79foreach (var local in block.Locals) 177var symbol = local.LocalSymbol; 407void appendLocal(LocalSymbol symbol)
BoundTree\BoundSpillSequence.cs (1)
17ImmutableArray<LocalSymbol> locals,
BoundTree\Constructors.cs (5)
73var localSymbol = ((BoundLocal)receiver).LocalSymbol; 598public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 605return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(statement)) 611return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements) { WasCompilerGenerated = true }; 616return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements.AsImmutableOrNull()) { WasCompilerGenerated = true };
CodeGen\CodeGenerator.cs (4)
36private readonly HashSet<LocalSymbol> _stackLocals; 202internal static bool IsStackLocal(LocalSymbol local, HashSet<LocalSymbol> stackLocalsOpt) 205private bool IsStackLocal(LocalSymbol local) => IsStackLocal(local, _stackLocals);
CodeGen\EmitAddress.cs (3)
262var local = localAccess.LocalSymbol; 348private static LocalSymbol DigForValueLocal(BoundSequence topSequence, BoundExpression value) 354var symbol = local.LocalSymbol;
CodeGen\EmitExpression.cs (3)
864foreach (var local in sequence.Locals) 879foreach (var local in sequence.Locals) 898foreach (var local in sequence.Locals)
CodeGen\EmitStatement.cs (10)
722foreach (var local in block.Locals) 750foreach (var local in block.Locals) 773foreach (var local in block.Locals) 1089foreach (var local in catchBlock.Locals) 1257var local = ((BoundLocal)expression).LocalSymbol; 1724var symbol = localExpression.LocalSymbol; 1728private LocalDefinition GetLocal(LocalSymbol symbol) 1733private LocalDefinition DefineLocal(LocalSymbol local, SyntaxNode syntaxNode) 1857private bool IsSlotReusable(LocalSymbol local) 1865private void FreeLocal(LocalSymbol local)
CodeGen\Optimizer.cs (31)
61out HashSet<LocalSymbol> stackLocals) 66var locals = PooledDictionary<LocalSymbol, LocalDefUseInfo>.GetInstance(); 79stackLocals = new HashSet<LocalSymbol>(locals.Keys); 93private static void FilterValidStackLocals(Dictionary<LocalSymbol, LocalDefUseInfo> info) 98foreach (var local in info.Keys.ToArray()) 126private static void RemoveIntersectingLocals(Dictionary<LocalSymbol, LocalDefUseInfo> info, ArrayBuilder<LocalDefUseInfo> dummies) 404private readonly Dictionary<LocalSymbol, LocalDefUseInfo> _locals; 418private StackOptimizerPass1(Dictionary<LocalSymbol, LocalDefUseInfo> locals, 433Dictionary<LocalSymbol, LocalDefUseInfo> 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; 1360var localSym = ((BoundLocal)boundExpression).LocalSymbol; 1796private void ShouldNotSchedule(LocalSymbol localSymbol) 1805private void RecordVarRef(LocalSymbol local) 1818private void RecordVarRead(LocalSymbol local) 1864private bool EvalStackHasLocal(LocalSymbol local) 1873private void RecordDummyWrite(LocalSymbol local) 1886private void RecordVarWrite(LocalSymbol local) 1916private bool CanScheduleToStack(LocalSymbol local) 1922private void DeclareLocals(ImmutableArray<LocalSymbol> locals, int stack) 1924foreach (var local in locals) 1930private void DeclareLocal(LocalSymbol local, int stack) 1965private readonly Dictionary<LocalSymbol, LocalDefUseInfo> _info; 1967private StackOptimizerPass2(Dictionary<LocalSymbol, LocalDefUseInfo> info) 1972public static BoundStatement Rewrite(BoundStatement src, Dictionary<LocalSymbol, LocalDefUseInfo> info) 2178var sourceLocal = ((BoundLocal)exceptionSource).LocalSymbol; 2236internal override LocalSymbol WithSynthesizedLocalKindAndSyntax( 2283internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics)
Compilation\CSharpSemanticModel.cs (4)
1782case LocalSymbol _: 3274LocalSymbol local = foreachBinder.GetDeclaredLocalsForScope(forEachStatement).FirstOrDefault(); 3287internal abstract LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol originalSymbol); 3313LocalSymbol local = catchBinder.GetDeclaredLocalsForScope(catchClause).FirstOrDefault();
Compilation\MemberSemanticModel.cs (5)
682private LocalSymbol GetDeclaredLocal(CSharpSyntaxNode declarationSyntax, SyntaxToken declaredIdentifier) 686foreach (var local in binder.Locals) 699internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol local) 701return GetRemappedSymbol<LocalSymbol>(local); 2306Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
336internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol local)
Compilation\SyntaxTreeSemanticModel.cs (2)
1857internal override LocalSymbol GetAdjustedLocalSymbol(SourceLocalSymbol originalSymbol) 2381Debug.Assert(symbol is LocalSymbol or ParameterSymbol or MethodSymbol { MethodKind: MethodKind.LambdaMethod });
Compiler\AnonymousTypeMethodBodySynthesizer.cs (1)
149F.CloseMethod(F.Block(ImmutableArray.Create<LocalSymbol>(boundLocal.LocalSymbol), assignment, retStatement));
Compiler\MethodBodySynthesizer.cs (4)
425LocalSymbol[] tmps = new LocalSymbol[numTemps]; 558ImmutableArray<LocalSymbol>.Empty, 566ImmutableArray<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 (1)
1012body = new BoundBlock(methodSymbol.GetNonNullSyntaxNode(), ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty) { WasCompilerGenerated = true };
FlowAnalysis\ControlFlowPass.cs (3)
23private readonly ArrayBuilder<(LocalSymbol symbol, BoundBlock block)> _usingDeclarations = ArrayBuilder<(LocalSymbol, BoundBlock)>.GetInstance(); 404foreach (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(); 735var local = variable as LocalSymbol; 832var local = variable as LocalSymbol; 1161if (symbol is LocalSymbol local && local.IsConst) 1430var result = ((BoundLocal)expression).LocalSymbol; 1473var symbol = pattern.Variable as LocalSymbol; 1490LocalSymbol symbol = local.LocalSymbol; 1985foreach (var local in node.Locals) 2103foreach (LocalSymbol local in localsOpt) 2131private void DeclareVariables(ImmutableArray<LocalSymbol> locals) 2133foreach (var symbol in locals) 2139private void DeclareVariable(LocalSymbol symbol) 2149private void ReportUnusedVariables(ImmutableArray<LocalSymbol> locals) 2151foreach (var symbol in locals) 2157private void ReportIfUnused(LocalSymbol symbol, bool assigned) 2189LocalSymbol localSymbol = node.LocalSymbol; 2521foreach (var local in catchBlock.Locals) 2597foreach (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)
1864var local = (LocalSymbol)symbol; 2937var local = node.LocalSymbol; 3244private void DeclareLocal(LocalSymbol local) 3257private void DeclareLocals(ImmutableArray<LocalSymbol> locals) 3259foreach (var local in locals) 3267var local = node.LocalSymbol; 9766private TypeWithAnnotations GetDeclaredLocalResult(LocalSymbol local) 10176foreach (var iterationVariable in node.IterationVariables) 11092LocalSymbol local = node.Locals[0];
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (2)
61internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics = null) => null; 64internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
FlowAnalysis\NullableWalker.Variables.cs (1)
357case LocalSymbol:
FlowAnalysis\VariablesDeclaredWalker.cs (1)
148var local = catchBlock.Locals.FirstOrDefault();
Generated\BoundNodes.xml.Generated.cs (98)
279protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 290public ImmutableArray<LocalSymbol> Locals { get; } 296public BoundFieldEqualsValue(SyntaxNode syntax, FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 312public BoundFieldEqualsValue Update(FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value) 326public BoundPropertyEqualsValue(SyntaxNode syntax, PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 342public BoundPropertyEqualsValue Update(PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value) 356public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 372public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value) 2218public BoundBlockInstrumentation(SyntaxNode syntax, LocalSymbol local, BoundStatement prologue, BoundStatement epilogue, bool hasErrors = false) 2231public LocalSymbol Local { get; } 2238public BoundBlockInstrumentation Update(LocalSymbol local, BoundStatement prologue, BoundStatement epilogue) 2292public BoundLocalId(SyntaxNode syntax, LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type, bool hasErrors) 2303public BoundLocalId(SyntaxNode syntax, LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type) 2315public LocalSymbol Local { get; } 2321public BoundLocalId Update(LocalSymbol local, FieldSymbol? hoistedField, TypeSymbol type) 3193public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 3207public ImmutableArray<LocalSymbol> Locals { get; } 3215public BoundBlock Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements) 3229public BoundScope(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 3239public ImmutableArray<LocalSymbol> Locals { get; } 3244public BoundScope Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements) 3289public BoundLocalDeclaration(SyntaxNode syntax, LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType, bool hasErrors = false) 3302public LocalSymbol LocalSymbol { get; } 3311public BoundLocalDeclaration Update(LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType) 3659public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<LocalFunctionSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, GeneratedLabelSymbol breakLabel, bool hasErrors = false) 3680public ImmutableArray<LocalSymbol> InnerLocals { get; } 3690public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<LocalFunctionSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, GeneratedLabelSymbol breakLabel) 3801protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3816public ImmutableArray<LocalSymbol> Locals { get; } 3823public BoundDoStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3839public BoundDoStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel) 3853public BoundWhileStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3869public BoundWhileStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel) 3883public BoundForStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3901public ImmutableArray<LocalSymbol> OuterLocals { get; } 3903public ImmutableArray<LocalSymbol> InnerLocals { get; } 3911public BoundForStatement Update(ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel) 3925public BoundForEachStatement(SyntaxNode syntax, ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundAwaitableInfo? awaitOpt, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3952public ImmutableArray<LocalSymbol> IterationVariables { get; } 3962public BoundForEachStatement Update(ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundAwaitableInfo? awaitOpt, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel) 4007public BoundUsingStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt, bool hasErrors = false) 4022public ImmutableArray<LocalSymbol> Locals { get; } 4032public BoundUsingStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt) 4046public BoundFixedStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body, bool hasErrors = false) 4059public ImmutableArray<LocalSymbol> Locals { get; } 4066public BoundFixedStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body) 4148public BoundCatchBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll, bool hasErrors = false) 4164public ImmutableArray<LocalSymbol> Locals { get; } 4175public BoundCatchBlock Update(ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll) 4394public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type, bool hasErrors) 4407public BoundLocal(SyntaxNode syntax, LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type) 4421public LocalSymbol LocalSymbol { get; } 4429public BoundLocal Update(LocalSymbol localSymbol, BoundLocalDeclarationKind declarationKind, ConstantValue? constantValueOpt, bool isNullableUnknown, TypeSymbol type) 4443public BoundPseudoVariable(SyntaxNode syntax, LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type, bool hasErrors) 4455public BoundPseudoVariable(SyntaxNode syntax, LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type) 4468public LocalSymbol LocalSymbol { get; } 4474public BoundPseudoVariable Update(LocalSymbol localSymbol, PseudoVariableExpressions emitExpressions, TypeSymbol type) 4792public BoundSwitchExpressionArm(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label, bool hasErrors = false) 4808public ImmutableArray<LocalSymbol> Locals { get; } 4817public BoundSwitchExpressionArm Update(ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label) 5547public BoundSwitchSection(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 5559public ImmutableArray<LocalSymbol> Locals { get; } 5565public BoundSwitchSection Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements) 5654public BoundSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false) 5669public ImmutableArray<LocalSymbol> Locals { get; } 5676public BoundSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type) 5690public BoundSpillSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false) 5705public ImmutableArray<LocalSymbol> Locals { get; } 5712public BoundSpillSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type) 8412public BoundConstructorMethodBody(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8422public ImmutableArray<LocalSymbol> Locals { get; } 8428public BoundConstructorMethodBody Update(ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody) 11797ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 11805ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 11813ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12547LocalSymbol local = GetUpdatedSymbol(node, node.Local); 12572LocalSymbol local = GetUpdatedSymbol(node, node.Local); 12886ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12895ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12909LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 12926ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals); 12937ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12945ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12953ImmutableArray<LocalSymbol> outerLocals = GetUpdatedArray(node, node.OuterLocals); 12954ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals); 12964ImmutableArray<LocalSymbol> iterationVariables = GetUpdatedArray(node, node.IterationVariables); 12978ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12988ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 12996ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13079LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 13096LocalSymbol localSymbol = GetUpdatedSymbol(node, node.LocalSymbol); 13160ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13258ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13283ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 13302ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals); 14377ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (26)
207var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 217LocalSymbol returnLocal = frame.returnValue; 235LocalSymbol pendingBranchVar, 270LocalSymbol pendingBranchVar, 390private BoundStatement UnpendException(LocalSymbol pendingExceptionLocal) 394LocalSymbol obj = _F.SynthesizedLocal(_F.SpecialType(SpecialType.System_Object)); 401ImmutableArray.Create<LocalSymbol>(obj), 410private BoundStatement Rethrow(LocalSymbol obj) 422var ex = _F.SynthesizedLocal(_F.WellKnownType(WellKnownType.System_Exception)); 480ImmutableArray.Create<LocalSymbol>( 524var catchTemp = _F.SynthesizedLocal(catchType); 541ImmutableArray<LocalSymbol> handlerLocals; 567handlerLocals = ImmutableArray<LocalSymbol>.Empty; 571foreach (var local in node.Locals) 653LocalSymbol hoistedLocal; 1004private readonly Dictionary<LocalSymbol, LocalSymbol> _hoistedLocals; 1005private readonly List<LocalSymbol> _orderedHoistedLocals; 1013_hoistedLocals = new Dictionary<LocalSymbol, LocalSymbol>(); 1014_orderedHoistedLocals = new List<LocalSymbol>(); 1017public void HoistLocal(LocalSymbol local, SyntheticBoundNodeFactory F) 1032var newLocal = F.SynthesizedLocal(local.Type, pendingCatch.SyntaxOpt, kind: SynthesizedLocalKind.ExceptionFilterAwaitHoistedExceptionLocal); 1038public IEnumerable<LocalSymbol> GetHoistedLocals() 1043public bool TryGetHoistedLocal(LocalSymbol originalLocal, out LocalSymbol hoistedLocal)
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (1)
168protected override BoundStatement GenerateSetExceptionCall(LocalSymbol exceptionLocal)
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (18)
56private readonly LocalSymbol? _exprRetValue; 148var exceptionLocal = F.SynthesizedLocal(F.WellKnownType(WellKnownType.System_Exception)); 151F.Block(ImmutableArray<LocalSymbol>.Empty, 189var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 232protected BoundCatchBlock GenerateExceptionHandling(LocalSymbol exceptionLocal, ImmutableArray<StateMachineFieldSymbol> hoistedLocals) 289protected virtual BoundStatement GenerateSetExceptionCall(LocalSymbol exceptionLocal) 370var awaiterTemp = F.SynthesizedLocal(getAwaiter.Type, syntax: node.Syntax, kind: SynthesizedLocalKind.Awaiter); 435private BoundExpression GenerateGetIsCompleted(LocalSymbol awaiterTemp, MethodSymbol getIsCompletedMethod) 453private BoundBlock GenerateAwaitForIncompleteTask(LocalSymbol awaiterTemp) 514private BoundStatement GenerateAwaitOnCompletedDynamic(LocalSymbol awaiterTemp) 531var criticalNotifyCompletedTemp = F.SynthesizedLocal( 535var notifyCompletionTemp = F.SynthesizedLocal( 539LocalSymbol thisTemp = (F.CurrentType.TypeKind == TypeKind.Class) ? F.SynthesizedLocal(F.CurrentType) : null; 594private BoundStatement GenerateAwaitOnCompleted(TypeSymbol loweredAwaiterType, LocalSymbol awaiterTemp) 600LocalSymbol thisTemp = (F.CurrentType.TypeKind == TypeKind.Class) ? F.SynthesizedLocal(F.CurrentType) : null; 633private 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) 262protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies) 324out LocalSymbol instSymbol, 336var versionSymbol = F.SynthesizedLocal(F.SpecialType(SpecialType.System_Int16)); 367private void GetPartsForStartingMachine(out BoundExpressionStatement callReset, out LocalSymbol instSymbol, out BoundStatement instAssignment, 434out 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\ClosureConversion\ClosureConversion.Analysis.Tree.cs (2)
600if (symbol is LocalSymbol local && local.IsConst) 667type = ((LocalSymbol)capturedVariable).Type;
Lowering\ClosureConversion\ClosureConversion.cs (29)
96private readonly HashSet<LocalSymbol> _assignLocals; 131private ArrayBuilder<LocalSymbol> _addedLocals; 165HashSet<LocalSymbol> assignLocals) 200Debug.Assert(localOrParameter is LocalSymbol || localOrParameter is ParameterSymbol || 235HashSet<LocalSymbol> assignLocals) 620var localFrame = (LocalSymbol)framePointer; 648private BoundNode IntroduceFrame(BoundNode node, Analysis.ClosureEnvironment env, Func<ArrayBuilder<BoundExpression>, ArrayBuilder<LocalSymbol>, BoundNode> F) 655LocalSymbol framePointer = new SynthesizedLocal(_topLevelMethod, TypeWithAnnotations.Create(frameType), SynthesizedLocalKind.LambdaDisplayClass, frame.ScopeSyntaxOpt); 710var addedLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 733private void InitVariableProxy(SyntaxNode syntax, Symbol symbol, LocalSymbol framePointer, ArrayBuilder<BoundExpression> prologue) 753var local = (LocalSymbol)symbol; 759LocalSymbol localToUse; 1107locals: ImmutableArray<LocalSymbol>.Empty, 1118private BoundSequence RewriteSequence(BoundSequence node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1139return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1144return RewriteBlock(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1148private BoundBlock RewriteBlock(BoundBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1185var newLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 1203return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1210return RewriteCatch(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1214private BoundNode RewriteCatch(BoundCatchBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1232ImmutableArray.Create<LocalSymbol>(), 1277return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1284return RewriteSequence(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance()); 1294return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) => 1691var cacheLocal = F.SynthesizedLocal(type, kind: SynthesizedLocalKind.CachedAnonymousMethodDelegate); 1692if (_addedLocals == null) _addedLocals = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (3)
757var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 762var param = _bound.SynthesizedLocal(ParameterExpressionType); 814var param = _bound.SynthesizedLocal(ParameterExpressionType);
Lowering\ClosureConversion\LambdaCapturedVariable.cs (4)
40Debug.Assert(captured is LocalSymbol || captured is ParameterSymbol); 60if (variable is LocalSymbol local) 98var 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)
87public 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)
145public 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)
201var local = factory.SynthesizedLocal(condition.Type, synthesizedVariableSyntax, kind: SynthesizedLocalKind.ConditionalBranchDiscriminator);
Lowering\Instrumentation\Instrumenter.cs (1)
73public 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(); 279public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 490LocalSymbol local => _factory.Local(local), 518var targetSymbol = original.Locals.FirstOrDefault(l => l.SynthesizedKind == SynthesizedLocalKind.UserDefined); 611return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.cs (5)
34private LocalSymbol? _methodValue; 174var stateLocal = F.SynthesizedLocal(stateField.Type); 178ImmutableArray.Create<LocalSymbol>(stateLocal), 204ImmutableArray.Create<LocalSymbol>(_methodValue), 411ImmutableArray<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.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)
303ArrayBuilder<LocalSymbol>? argTempsBuilder = null; 334LocalSymbol rhsTemp = _factory.SynthesizedLocal(exprType);
Lowering\LocalRewriter\LocalRewriter_Await.cs (1)
51locals: ImmutableArray.Create<LocalSymbol>(tempAccess.LocalSymbol),
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (10)
839locals: ImmutableArray<LocalSymbol>.Empty, 1047locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1206locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1315locals: ImmutableArray<LocalSymbol>.Empty, 1359var locals = ArrayBuilder<LocalSymbol>.GetInstance(); 1408ArrayBuilder<LocalSymbol> locals, 1654locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), 1715locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1803locals: ImmutableArray.Create<LocalSymbol>(boundTempX.LocalSymbol, boundTempY.LocalSymbol), 1884locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_Block.cs (2)
25var additionalLocals = TemporaryArray<LocalSymbol>.Empty; 105? new BoundBlock(node.Syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty)
Lowering\LocalRewriter\LocalRewriter_Call.cs (17)
144ArrayBuilder<LocalSymbol>? temps = null; 188ArrayBuilder<LocalSymbol>? temps, 214ImmutableArray<LocalSymbol> temps) 428ref ArrayBuilder<LocalSymbol>? tempsOpt) 477tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance(); 565ImmutableArray<LocalSymbol>.Empty, 573void ensureTempTrackingSetup([NotNull] ref ArrayBuilder<LocalSymbol>? tempsOpt, ref BitVector positionsAssignedToTemp) 575tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance(); 588ref ArrayBuilder<LocalSymbol>? tempsOpt, 642visitedArgumentsBuilder[argIndex] = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create<BoundExpression>(store), local); 688private void ReferToTempIfReferenceTypeReceiver(BoundLocal receiverTemp, ref BoundAssignmentOperator assignmentToTemp, out BoundAssignmentOperator? extraRefInitialization, ArrayBuilder<LocalSymbol> temps) 762[NotNull] ref ArrayBuilder<LocalSymbol>? temps, 775temps ??= ArrayBuilder<LocalSymbol>.GetInstance(); 1349ArrayBuilder<LocalSymbol> temporariesBuilder) 1451ImmutableArray<LocalSymbol>.Empty, 1476ArrayBuilder<LocalSymbol> temporariesBuilder) 1516locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (12)
27var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 58var eventTemps = ArrayBuilder<LocalSymbol>.GetInstance(); 160private BoundExpression? TransformPropertyOrEventReceiver(Symbol propertyOrEvent, BoundExpression? receiverOpt, bool isRegularCompoundAssignment, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 226private BoundDynamicMemberAccess TransformDynamicMemberAccess(BoundDynamicMemberAccess memberAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 243private BoundIndexerAccess TransformIndexerAccess(BoundIndexerAccess indexerAccess, bool isRegularCompoundAssignment, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 319ArrayBuilder<LocalSymbol> temps) 402ArrayBuilder<LocalSymbol> temps, 416private BoundExpression TransformIndexPatternIndexerAccess(BoundImplicitIndexerAccess implicitIndexerAccess, bool isRegularCompoundAssignment, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment) 451private bool TransformCompoundAssignmentFieldOrEventAccessReceiver(Symbol fieldOrEvent, ref BoundExpression? receiver, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 494private BoundDynamicIndexerAccess TransformDynamicIndexerAccess(BoundDynamicIndexerAccess indexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps) 553private BoundExpression TransformCompoundAssignmentLHS(BoundExpression originalLHS, bool isRegularCompoundAssignment, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment) 768ArrayBuilder<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)
170ImmutableArray<LocalSymbol> tempSymbols = boundTemp == null 171? ImmutableArray<LocalSymbol>.Empty 172: 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) 369locals: ImmutableArray<LocalSymbol>.Empty, 403LocalSymbol localSymbol, 406out LocalSymbol pinnedTemp) 472LocalSymbol localSymbol, 475out LocalSymbol pinnedTemp)
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (23)
123LocalSymbol enumeratorVar = _factory.SynthesizedLocal(enumeratorType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachEnumerator); 168ImmutableArray<LocalSymbol> iterationVariables = node.IterationVariables; 347locals: ImmutableArray<LocalSymbol>.Empty, 360LocalSymbol disposableVar = _factory.SynthesizedLocal(idisposableTypeSymbol); 418locals: ImmutableArray<LocalSymbol>.Empty, 537LocalSymbol collectionTemp = _factory.SynthesizedLocal(collectionType, forEachSyntax, kind: SynthesizedLocalKind.ForEachArray); 548LocalSymbol positionVar = _factory.SynthesizedLocal(intType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArrayIndex); 568ImmutableArray<LocalSymbol> iterationVariables = node.IterationVariables; 610outerLocals: ImmutableArray.Create<LocalSymbol>(collectionTemp, positionVar), 633ImmutableArray<LocalSymbol> iterationVariables, 662ImmutableArray<LocalSymbol> iterationVariables, 716LocalSymbol arrayVar = _factory.SynthesizedLocal(arrayType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArray); 727LocalSymbol positionVar = _factory.SynthesizedLocal(intType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArrayIndex); 747ImmutableArray<LocalSymbol> iterationVariables = node.IterationVariables; 789outerLocals: ImmutableArray.Create<LocalSymbol>(arrayVar, positionVar), 847LocalSymbol arrayVar = _factory.SynthesizedLocal(arrayType, syntax: forEachSyntax, kind: SynthesizedLocalKind.ForEachArray); 861LocalSymbol[] upperVar = new LocalSymbol[rank]; 883LocalSymbol[] positionVar = new LocalSymbol[rank]; 902ImmutableArray<LocalSymbol> iterationVariables = node.IterationVariables; 1007private static BoundLocal MakeBoundLocal(CSharpSyntaxNode syntax, LocalSymbol local, TypeSymbol type) 1015private BoundStatement MakeLocalDeclaration(CSharpSyntaxNode syntax, LocalSymbol local, BoundExpression rewrittenInitialValue)
Lowering\LocalRewriter\LocalRewriter_ForStatement.cs (1)
43ImmutableArray<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 (4)
131ArrayBuilder<LocalSymbol>? temps = null; 228var locals = ArrayBuilder<LocalSymbol>.GetInstance(2); 247ArrayBuilder<LocalSymbol> locals) 567var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance();
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) 73private BoundStatement InstrumentLocalDeclarationIfNecessary(BoundLocalDeclaration? originalOpt, LocalSymbol localSymbol, BoundStatement rewrittenLocalDeclaration)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
18var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 129var alternative = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(tmpAssignment, transformedLhsAssignment), tmp);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (5)
42ArrayBuilder<LocalSymbol>? tempsBuilder = null; 159var temps = ArrayBuilder<LocalSymbol>.GetInstance(); 193ArrayBuilder<BoundExpression> sideEffects, ArrayBuilder<LocalSymbol> temps) 263ArrayBuilder<LocalSymbol>? temps = null; 281ImmutableArray<LocalSymbol> locals;
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (9)
34ref ArrayBuilder<LocalSymbol>? temps, 176ArrayBuilder<LocalSymbol>? temps = null; 208private BoundExpression VisitObjectInitializerMember(BoundObjectInitializerMember node, ref BoundExpression rewrittenReceiver, ArrayBuilder<BoundExpression> sideEffects, ref ArrayBuilder<LocalSymbol>? temps) 216ArrayBuilder<LocalSymbol>? constructionTemps = null; 247ref ArrayBuilder<LocalSymbol>? temps, 267ref ArrayBuilder<LocalSymbol>? temps, 427temps = ArrayBuilder<LocalSymbol>.GetInstance(); 457ref ArrayBuilder<LocalSymbol>? temps) 481temps = 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_StringInterpolation.cs (5)
78var builderTempSymbol = _factory.InterpolatedStringHandlerLocal(data.BuilderType, syntax); 103var outLocal = _factory.SynthesizedLocal(localType); 409private readonly LocalSymbol? _outTemp; 413public InterpolationHandlerResult(ImmutableArray<BoundStatement> statements, BoundLocal handlerTemp, LocalSymbol outTemp, LocalRewriter rewriter) 422public 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(); 101ArrayBuilder<LocalSymbol> temps) 142ArrayBuilder<LocalSymbol> temps) 183ArrayBuilder<LocalSymbol> temps, 247ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind) 267TypeSymbol boolType, ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind) 308BoundExpression innerSequence = _factory.Sequence(locals: ImmutableArray<LocalSymbol>.Empty, innerEffects.ToImmutableAndFree(), logicalExpression); 322return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 330return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 339_factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(), 353private void MakeNullableParts(BoundExpression expr, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> innerEffects, 416private BoundLocal MakeTemp(BoundExpression loweredExpression, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects) 429ArrayBuilder<LocalSymbol> temps, 486ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (8)
231locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), 426ArrayBuilder<LocalSymbol> tempSymbols = ArrayBuilder<LocalSymbol>.GetInstance(); 438LocalSymbol tempSymbol = _factory.SynthesizedLocal(operandType); 501ArrayBuilder<LocalSymbol> tempSymbols, 528ArrayBuilder<LocalSymbol> tempSymbols, 543ImmutableArray<LocalSymbol>.Empty, 695locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol),
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (5)
63ImmutableArray<LocalSymbol> locals, 91BoundBlock body = new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements); 95ImmutableArray<LocalSymbol>.Empty, 216LocalSymbol localSymbol = localDeclaration.LocalSymbol; 257locals: ImmutableArray.Create<LocalSymbol>(boundTemp.LocalSymbol), //localSymbol will be declared by an enclosing block
Lowering\LocalRewriter\LocalRewriter_WhileStatement.cs (1)
103ImmutableArray<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)
655ImmutableArray<LocalSymbol> temps = MakeTempsForDiscardArguments(ref loweredArguments); 685private ImmutableArray<LocalSymbol> MakeTempsForDiscardArguments(ref ImmutableArray<BoundExpression> loweredArguments) 691return ImmutableArray<LocalSymbol>.Empty; 694ArrayBuilder<LocalSymbol> temporariesBuilder = ArrayBuilder<LocalSymbol>.GetInstance(discardCount);
Lowering\MethodToClassRewriter.cs (15)
33protected readonly Dictionary<LocalSymbol, LocalSymbol> localMap = new Dictionary<LocalSymbol, LocalSymbol>(); 80protected void RewriteLocals(ImmutableArray<LocalSymbol> locals, ArrayBuilder<LocalSymbol> newLocals) 82foreach (var local in locals) 84if (TryRewriteLocal(local, out LocalSymbol? newLocal)) 91protected bool TryRewriteLocal(LocalSymbol local, [NotNullWhen(true)] out LocalSymbol? newLocal) 119private ImmutableArray<LocalSymbol> RewriteLocals(ImmutableArray<LocalSymbol> locals) 122var newLocals = ArrayBuilder<LocalSymbol>.GetInstance(); 438if (this.localMap.TryGetValue(node.LocalSymbol, out LocalSymbol? replacementLocal)) 527ImmutableArray.Create<LocalSymbol>(tempLocal.LocalSymbol),
Lowering\SpillSequenceSpiller.cs (36)
23private readonly PooledDictionary<LocalSymbol, LocalSymbol> _tempSubstitution; 24private readonly PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> _receiverSubstitution; 28PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 29PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 42private ArrayBuilder<LocalSymbol> _locals; 68public ImmutableArray<LocalSymbol> GetLocals() 70return (_locals == null) ? ImmutableArray<LocalSymbol>.Empty : _locals.ToImmutable(); 123public void AddLocal(LocalSymbol local) 127_locals = ArrayBuilder<LocalSymbol>.GetInstance(); 133public void AddLocals(ImmutableArray<LocalSymbol> locals) 135foreach (var local in locals) 184private readonly PooledDictionary<LocalSymbol, LocalSymbol> _tempSubstitution; 185private readonly PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> _receiverSubstitution; 188PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 189PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 198PooledDictionary<LocalSymbol, LocalSymbol> tempSubstitution, 199PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver> receiverSubstitution, 215LocalSymbol longLived; 235var tempSubstitution = PooledDictionary<LocalSymbol, LocalSymbol>.GetInstance(); 236var receiverSubstitution = PooledDictionary<LocalSymbol, BoundComplexConditionalReceiver>.GetInstance(); 358out LocalSymbol receiverRefLocal, 459out LocalSymbol outReceiverRefLocal, 925var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1064var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1152var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1210var clone = _F.SynthesizedLocal(receiver.Type, _F.Syntax, refKind: RefKind.None, kind: SynthesizedLocalKind.Spill); 1244var tmp = _F.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax: _F.Syntax); 1395private void PromoteAndAddLocals(BoundSpillSequenceBuilder builder, ImmutableArray<LocalSymbol> locals) 1397foreach (var local in locals) 1405LocalSymbol longLived = local.WithSynthesizedLocalKindAndSyntax(SynthesizedLocalKind.Spill, _F.Syntax);
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (10)
40private readonly Dictionary<LocalSymbol, BoundExpression> _boundRefLocalInitializers = new Dictionary<LocalSymbol, BoundExpression>(); 79var type = (variable.Kind == SymbolKind.Local) ? ((LocalSymbol)variable).Type : ((ParameterSymbol)variable).Type; 126LocalSymbol { IsConst: false, IsPinned: false, IsRef: false } local => 145if (!((LocalSymbol)symbol).IsConst) 194var type = (variable.Kind == SymbolKind.Local) ? ((LocalSymbol)variable).Type : ((ParameterSymbol)variable).Type; 201if (_variablesToHoist.Add(variable) && variable is LocalSymbol local && _boundRefLocalInitializers.TryGetValue(local, out var variableInitializer)) 315if (node is { IsRef: true, Left: BoundLocal { LocalSymbol: LocalSymbol { IsCompilerGenerated: true } local } }) 347private void AddVariables(ImmutableArray<LocalSymbol> locals) 349foreach (var local in locals)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (14)
36protected readonly LocalSymbol cachedState; 50protected readonly LocalSymbol? cachedThis; 277foreach (var local in node.Locals) 292private BoundStatement PossibleIteratorScope(ImmutableArray<LocalSymbol> locals, Func<BoundStatement> wrapped) 300foreach (var local in locals) 342foreach (var local in locals) 451private StateMachineFieldSymbol GetOrAllocateReusableHoistedField(TypeSymbol type, out bool reused, LocalSymbol local = null) 525var sacrificialTemp = F.SynthesizedLocal(type, refKind: RefKind.Ref); 538return F.Sequence(ImmutableArray<LocalSymbol>.Empty, sideEffects.ToImmutableAndFree(), last); 714var newLocalsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 717foreach (var local in node.Locals) 724LocalSymbol localToUse; 757ImmutableArray<LocalSymbol> newLocals; 798var leftLocal = ((BoundLocal)node.Left).LocalSymbol;
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); 155var local = (LocalSymbol)variable; 266private bool ShouldPreallocateNonReusableProxy(LocalSymbol local) 288LocalSymbol stateMachineVariable = F.SynthesizedLocal(frameType, null); 301protected BoundStatement GenerateParameterStorage(LocalSymbol stateMachineVariable, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies) 413var resultVariable = F.SynthesizedLocal(stateMachineType, null);
Lowering\SyntheticBoundNodeFactory.cs (26)
267public BoundExpression This(LocalSymbol thisTempOpt) 463return Block(ImmutableArray<LocalSymbol>.Empty, statements); 471public BoundBlock Block(ImmutableArray<LocalSymbol> locals, params BoundStatement[] statements) 476public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements) 481public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, params BoundStatement[] statements) 486public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, ImmutableArray<BoundStatement> statements) 549public LocalSymbol SynthesizedLocal( 571public LocalSymbol InterpolatedStringHandlerLocal( 853return If(condition, ImmutableArray<LocalSymbol>.Empty, thenClause, elseClauseOpt); 861public BoundStatement If(BoundExpression condition, ImmutableArray<LocalSymbol> locals, BoundStatement thenClause, BoundStatement? elseClauseOpt = null) 917public BoundLocal Local(LocalSymbol local) 922public BoundExpression MakeSequence(LocalSymbol temp, params BoundExpression[] parts) 924return MakeSequence(ImmutableArray.Create<LocalSymbol>(temp), parts); 929return MakeSequence(ImmutableArray<LocalSymbol>.Empty, parts); 932public BoundExpression MakeSequence(ImmutableArray<LocalSymbol> locals, params BoundExpression[] parts) 958return new BoundSequence(Syntax, ImmutableArray<LocalSymbol>.Empty, sideEffects.AsImmutableOrNull(), result, resultType) { WasCompilerGenerated = true }; 961public BoundExpression Sequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression result) 970public BoundSpillSequence SpillSequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression result) 1235public BoundExpression LocalId(LocalSymbol symbol) 1467LocalSymbol local, 1478return new BoundCatchBlock(Syntax, ImmutableArray<LocalSymbol>.Empty, source, source.Type, exceptionFilterPrologueOpt: null, exceptionFilterOpt: null, body: block, isSynthesizedAsyncCatchAll: false); 1586internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, ArrayBuilder<LocalSymbol> temps) 1588LocalSymbol temp; 1594internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, out LocalSymbol temp) 1602internal ImmutableArray<BoundExpression> MakeTempsForDiscardArguments(ImmutableArray<BoundExpression> arguments, ArrayBuilder<LocalSymbol> builder) 1716locals: ImmutableArray<LocalSymbol>.Empty,
Operations\CSharpOperationFactory.cs (1)
1859var 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( 354internal 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)
339ImmutableArray<LocalSymbol>.Empty,
Symbols\Source\SourceLocalSymbol.cs (5)
156internal static LocalSymbol MakeLocalSymbolWithEnclosingContext( 233internal override LocalSymbol WithSynthesizedLocalKindAndSyntax( 471internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics) 557private void MakeConstantTuple(LocalSymbol inProgress, BoundExpression boundInitValue) 577internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics = null)
Symbols\Symbol.cs (1)
1570if (((LocalSymbol)variable).IsConst)
Symbols\SymbolExtensions.cs (6)
511LocalSymbol local = (LocalSymbol)symbol; 593internal static ILocalSymbol? GetPublicSymbol(this LocalSymbol? symbol) 718internal static ImmutableArray<ILocalSymbol> GetPublicSymbols(this ImmutableArray<LocalSymbol> symbols) 790internal static LocalSymbol? GetSymbol(this ILocalSymbol? symbol) 792return 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)
62var builderLocalSymbol = F.SynthesizedLocal(stringBuilder);
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (5)
389locals: ImmutableArray<LocalSymbol>.Empty, 412locals: ImmutableArray<LocalSymbol>.Empty, 483locals: ImmutableArray<LocalSymbol>.Empty, 489ImmutableArray.Create<LocalSymbol>(scriptLocal.LocalSymbol), 605ImmutableArray.Create<LocalSymbol>(submissionLocal.LocalSymbol),
Symbols\Synthesized\SynthesizedLocal.cs (2)
73internal sealed override LocalSymbol WithSynthesizedLocalKindAndSyntax( 187internal sealed override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics)
Symbols\Synthesized\SynthesizedThrowIfNullMethod.cs (1)
42ImmutableArray<LocalSymbol>.Empty,
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (4)
16private readonly LocalSymbol _originalVariable; 20public TypeSubstitutedLocalSymbol(LocalSymbol originalVariable, TypeWithAnnotations type, Symbol containingSymbol) 113internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics) 123internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
Symbols\UpdatedContainingSymbolLocal.cs (3)
50if (!(other is LocalSymbol otherLocal)) 93internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag? diagnostics = null) => 99internal override LocalSymbol WithSynthesizedLocalKindAndSyntax(
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (1)
CodeGen\CodeGenDeconstructTests.cs (1)
3581Assert.Equal(kind, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (5)
Semantics\PatternMatchingTestBase.cs (5)
84Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 145Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 171Assert.Equal(LocalDeclarationKind.RegularVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 185Assert.Equal(kind, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 207Assert.NotEqual(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (117)
Binders\PlaceholderLocalBinder.cs (8)
24private readonly ImmutableArray<LocalSymbol> _aliases; 26private readonly ImmutableDictionary<string, LocalSymbol> _lowercaseReturnValueAliases; 42var aliasesBuilder = ArrayBuilder<LocalSymbol>.GetInstance(aliases.Length); 43var lowercaseBuilder = ImmutableDictionary.CreateBuilder<string, LocalSymbol>(); 46var local = PlaceholderLocalSymbol.Create( 91LocalSymbol lowercaseReturnValueAlias; 108protected override ImmutableArray<LocalSymbol> BuildLocals() 113internal override ImmutableArray<LocalSymbol> GetDeclaredLocalsForScope(SyntaxNode scopeDesignator)
CompilationContext.cs (42)
32private readonly ImmutableArray<LocalSymbol> _locals; 40private readonly ImmutableArray<LocalSymbol> _localsForBindingOutside; 47private readonly ImmutableArray<LocalSymbol> _localsForBindingInside; 58ImmutableArray<LocalSymbol> locals, 60MethodDebugInfo<TypeSymbol, LocalSymbol> methodDebugInfo) 107_localsForBindingOutside = GetLocalsForBinding(locals: ImmutableArray<LocalSymbol>.Empty, displayClassVariableNamesOutsideInOrder, _displayClassVariables); 111_locals = ImmutableArray<LocalSymbol>.Empty; 113_localsForBindingInside = ImmutableArray<LocalSymbol>.Empty; 114_localsForBindingOutside = ImmutableArray<LocalSymbol>.Empty; 210(EEMethodSymbol method, DiagnosticBag diags, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 249(EEMethodSymbol method, DiagnosticBag diags, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 352var local = PlaceholderLocalSymbol.Create( 370(EEMethodSymbol method, DiagnosticBag diags, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 372declaredLocals = ImmutableArray<LocalSymbol>.Empty; 412foreach (var local in _localsForBindingOutside.Concat(_localsForBindingInside)) 439var localsDictionary = PooledDictionary<string, (LocalSymbol, int)>.GetInstance(); 441foreach (var local in _localsForBindingOutside) 449(LocalSymbol local, int localIndex) localSymbolAndIndex; 453var local = localSymbolAndIndex.local; 465foreach (var local in _localsForBindingOutside) 476foreach (var local in _localsForBindingInside) 528LocalSymbol local, 559LocalSymbol local, 575private static LocalAndMethod MakeLocalAndMethod(LocalSymbol local, MethodSymbol method, DkmClrCompilationResultFlags flags) 626return CreateMethod(container, methodName, syntax, (EEMethodSymbol method, DiagnosticBag diagnostics, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 628declaredLocals = ImmutableArray<LocalSymbol>.Empty; 631var local = indexInside >= 0 ? method.LocalsForBindingInside[indexInside] : method.LocalsForBindingOutside[localIndex]; 641return CreateMethod(container, methodName, syntax, (EEMethodSymbol method, DiagnosticBag diagnostics, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 643declaredLocals = ImmutableArray<LocalSymbol>.Empty; 654return CreateMethod(container, methodName, syntax, (EEMethodSymbol method, DiagnosticBag diagnostics, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 656declaredLocals = ImmutableArray<LocalSymbol>.Empty; 666return CreateMethod(container, methodName, syntax, (EEMethodSymbol method, DiagnosticBag diagnostics, out ImmutableArray<LocalSymbol> declaredLocals, out ResultProperties properties) => 668declaredLocals = ImmutableArray<LocalSymbol>.Empty; 934out ImmutableArray<LocalSymbol> declaredLocals) 1007declaredLocals = ImmutableArray<LocalSymbol>.Empty; 1231private static DkmClrCompilationResultFlags GetLocalResultFlags(LocalSymbol local) 1243private static ImmutableArray<LocalSymbol> GetLocalsForBinding( 1244ImmutableArray<LocalSymbol> locals, 1248var builder = ArrayBuilder<LocalSymbol>.GetInstance(); 1249foreach (var local in locals) 1346ImmutableArray<LocalSymbol> locals, 1390foreach (var local in locals)
CSharpEESymbolProvider.cs (3)
15internal sealed class CSharpEESymbolProvider : EESymbolProvider<TypeSymbol, LocalSymbol> 28public override LocalSymbol GetLocalVariable( 60public override LocalSymbol GetLocalConstant(
EEAssemblyBuilder.cs (3)
79private ImmutableArray<LocalDefinition> GetLocalDefinitions(ImmutableArray<LocalSymbol> locals, DiagnosticBag diagnostics) 82foreach (var local in locals) 95private LocalDefinition ToLocalDefinition(LocalSymbol local, int index, DiagnosticBag diagnostics)
EvaluationContext.cs (8)
38private readonly ImmutableArray<LocalSymbol> _locals; 40private readonly MethodDebugInfo<TypeSymbol, LocalSymbol> _methodDebugInfo; 47ImmutableArray<LocalSymbol> locals, 49MethodDebugInfo<TypeSymbol, LocalSymbol> methodDebugInfo) 90methodDebugInfo: MethodDebugInfo<TypeSymbol, LocalSymbol>.None); 160var debugInfo = MethodDebugInfo<TypeSymbol, LocalSymbol>.ReadMethodDebugInfo(typedSymReader, symbolProvider, methodToken, methodVersion, ilOffset, isVisualBasicMethod: false); 163var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 164MethodDebugInfo<TypeSymbol, LocalSymbol>.GetLocals(
Rewriters\CapturedVariableRewriter.cs (1)
56var local = node.LocalSymbol;
Rewriters\LocalDeclarationRewriter.cs (7)
20HashSet<LocalSymbol> declaredLocals, 22ImmutableArray<LocalSymbol> declaredLocalsArray, 27foreach (var local in declaredLocalsArray) 72var local = node.LocalSymbol; 90HashSet<LocalSymbol> declaredLocals, 92LocalSymbol local, 136private static BoundExpression GetCustomTypeInfoPayload(LocalSymbol local, SyntaxNode syntax, CSharpCompilation compilation, out bool hasCustomTypeInfoPayload)
Rewriters\PlaceholderLocalRewriter.cs (4)
15internal static BoundNode Rewrite(CSharpCompilation compilation, HashSet<LocalSymbol> declaredLocals, BoundNode node, DiagnosticBag diagnostics) 22private readonly HashSet<LocalSymbol> _declaredLocals; 25private PlaceholderLocalRewriter(CSharpCompilation compilation, HashSet<LocalSymbol> declaredLocals, DiagnosticBag diagnostics) 41var local = node.LocalSymbol;
Symbols\EEConstructorSymbol.cs (1)
24var noLocals = ImmutableArray<LocalSymbol>.Empty;
Symbols\EELocalConstantSymbol.cs (1)
87internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics)
Symbols\EELocalSymbolBase.cs (4)
18internal static LocalSymbol ToOtherMethod(this LocalSymbol local, MethodSymbol method, TypeMap typeMap) 36internal override ConstantValue GetConstantValue(SyntaxNode node, LocalSymbol inProgress, BindingDiagnosticBag diagnostics) 56internal sealed override LocalSymbol WithSynthesizedLocalKindAndSyntax(
Symbols\EEMethodSymbol.cs (30)
26out ImmutableArray<LocalSymbol> declaredLocals, 45internal readonly ImmutableArray<LocalSymbol> Locals; 51internal readonly ImmutableArray<LocalSymbol> LocalsForBindingOutside; 58internal readonly ImmutableArray<LocalSymbol> LocalsForBindingInside; 85ImmutableArray<LocalSymbol> sourceLocals, 86ImmutableArray<LocalSymbol> sourceLocalsForBindingOutside, 87ImmutableArray<LocalSymbol> sourceLocalsForBindingInside, 156var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 157var localsMap = PooledDictionary<LocalSymbol, LocalSymbol>.GetInstance(); 158foreach (var sourceLocal in sourceLocals) 160var local = sourceLocal.ToOtherMethod(this, this.TypeMap); 193ImmutableArray<LocalSymbol> remapLocalsForBinding( 194ImmutableArray<LocalSymbol> sourceLocalsForBinding, 195Dictionary<LocalSymbol, LocalSymbol> localsMap) 197var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(sourceLocalsForBinding.Length); 198foreach (var sourceLocal in sourceLocalsForBinding) 200LocalSymbol local; 472ImmutableArray<LocalSymbol> declaredLocalsArray; 503var declaredLocals = PooledHashSet<LocalSymbol>.GetInstance(); 515foreach (var local in declaredLocals) 548var localsSet = PooledHashSet<LocalSymbol>.GetInstance(); 551var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 552foreach (var local in this.LocalsForBindingOutside) 559foreach (var local in this.LocalsForBindingInside) 566foreach (var local in this.Locals) 681var localBuilder = ArrayBuilder<LocalSymbol>.GetInstance(); 682foreach (var local in this.Locals) 687foreach (var local in block.Locals)
Symbols\ObjectIdLocalSymbol.cs (4)
34internal static BoundExpression RewriteLocal(CSharpCompilation compilation, SyntaxNode syntax, LocalSymbol local) 39private static BoundExpression RewriteLocalInternal(CSharpCompilation compilation, SyntaxNode syntax, LocalSymbol local) 60var local = variable.LocalSymbol; 81var local = variable.LocalSymbol;
Symbols\PlaceholderLocalSymbol.cs (1)
37internal static LocalSymbol Create(
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests (2)
ExpressionCompilerTestBase.cs (2)
509internal static MethodDebugInfo<TypeSymbol, LocalSymbol> GetMethodDebugInfo(RuntimeInstance runtime, string qualifiedMethodName, int ilOffset = 0) 518return MethodDebugInfo<TypeSymbol, LocalSymbol>.ReadMethodDebugInfo((ISymUnmanagedReader3)symReader, symbolProvider, MetadataTokens.GetToken(peMethod.Handle), methodVersion: 1, ilOffset: ilOffset, isVisualBasicMethod: false);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (115)
Semantics\DeconstructionTests.cs (14)
3953Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 3967Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 4245Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 4249Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 4253Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 4257Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind); 5194Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 5198Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 5202Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 5206Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind); 5662Assert.Equal(localDeclarationKind, a.GetSymbol<LocalSymbol>().DeclarationKind); 5666Assert.Equal(localDeclarationKind, b.GetSymbol<LocalSymbol>().DeclarationKind); 5670Assert.Equal(localDeclarationKind, c.GetSymbol<LocalSymbol>().DeclarationKind); 5674Assert.Equal(localDeclarationKind, d.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\NullableReferenceTypesTests.cs (58)
33046var symbol = model.GetSymbolInfo(outVar).Symbol.GetSymbol<LocalSymbol>(); 33064var symbol = model.GetDeclaredSymbol(variable).GetSymbol<LocalSymbol>(); 56564var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56598var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56626var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56658var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56687var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56720var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56752var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56785var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56819var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56846var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56874var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 56904var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 56908symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 56912symbol = model.GetDeclaredSymbol(declarators[2]).GetSymbol<LocalSymbol>(); 67836var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 67839symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 67872var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 67875symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 67913var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 67916symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 67950var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 67953symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 67987var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 67990symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 68022var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 68025symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 68055var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 68092var symbol = model.GetDeclaredSymbol(declarators[0]).GetSymbol<LocalSymbol>(); 68095symbol = model.GetDeclaredSymbol(declarators[1]).GetSymbol<LocalSymbol>(); 77613var symbol = model.GetDeclaredSymbol(declarator).GetSymbol<LocalSymbol>(); 109867Assert.Equal("var!", model.GetDeclaredSymbol(decl.Designation).GetSymbol<LocalSymbol>().TypeWithAnnotations.ToTestDisplayString(includeNonNullable: true)); 109898Assert.Equal("var", model.GetDeclaredSymbol(decl.Designation).GetSymbol<LocalSymbol>().TypeWithAnnotations.ToTestDisplayString(includeNonNullable: true)); 150524Assert.Equal(expectedAnnotation, symbol.GetSymbol<LocalSymbol>().TypeWithAnnotations.NullableAnnotation);
Semantics\OutVarTests.cs (2)
969Assert.Equal(expectedLocalKind, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 1143Assert.Equal(LocalDeclarationKind.OutVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\RefFieldTests.cs (41)
10677var delegateType = (NamedTypeSymbol)model.GetDeclaredSymbol(decl).GetSymbol<LocalSymbol>().Type; 10772var methods = decls.Select(d => ((FunctionPointerTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).Signature).ToArray(); 11569var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 11706var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 11890var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12301var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12659var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12714var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12773var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12816var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12845var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12870var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12890var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12912var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 12947var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13011var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13158var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13222var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13863var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 13905var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14030var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14106var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14351var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14559var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14585var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 14640var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 15219private static void VerifyLocalSymbol(LocalSymbol local, string expectedDisplayString, RefKind expectedRefKind, ScopedKind expectedScope) 22292var types = decls.Select(d => (NamedTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).ToArray(); 22360var types = decls.Select(d => (NamedTypeSymbol)model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>().Type).ToArray(); 24220var delegateType = (NamedTypeSymbol)model.GetDeclaredSymbol(decl).GetSymbol<LocalSymbol>().Type; 26036var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 26088var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 26140var type = (NamedTypeSymbol)model.GetDeclaredSymbol(node).GetSymbol<LocalSymbol>().Type; 26293var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26383var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26503var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26604var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26649var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26709var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26939var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray(); 26987var locals = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<LocalSymbol>()).ToArray();