1 instantiation of LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (1)
Binder\LocalScopeBinder.cs (1)
347
return new
LocalFunctionSymbol
(
158 references to LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (123)
Binder\Binder.cs (1)
194
internal virtual ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\Binder_Constraints.cs (1)
465
LocalFunctionSymbol
=> null,
Binder\Binder_Expressions.cs (1)
1509
Debug.Assert(symbol is null or LocalSymbol or
LocalFunctionSymbol
or RangeVariableSymbol or TypeParameterSymbol);
Binder\Binder_Statements.cs (4)
559
var
localSymbol = this.LookupLocalFunction(node.Identifier);
1868
protected virtual
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
4059
internal virtual ImmutableArray<
LocalFunctionSymbol
> LocalFunctions
4063
return ImmutableArray<
LocalFunctionSymbol
>.Empty;
Binder\BlockBinder.cs (2)
38
protected override ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
84
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\BuckStopsHereBinder.cs (2)
58
protected override
LocalFunctionSymbol
? LookupLocalFunction(SyntaxToken nameToken)
181
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\CatchClauseBinder.cs (1)
55
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\EmbeddedStatementBinder.cs (4)
38
protected override ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
40
ArrayBuilder<
LocalFunctionSymbol
> locals = null;
42
return locals?.ToImmutableAndFree() ?? ImmutableArray<
LocalFunctionSymbol
>.Empty;
87
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\ExecutableCodeBinder.cs (1)
134
if (((iterator as SourceMemberMethodSymbol)?.IsUnsafe == true || (iterator as
LocalFunctionSymbol
)?.IsUnsafe == true)
Binder\ExpressionListVariableBinder.cs (1)
51
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\ExpressionVariableBinder.cs (1)
44
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\FixedStatementBinder.cs (1)
70
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\ForEachLoopBinder.cs (1)
57
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\ForLoopBinder.cs (1)
150
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\InContainerBinder.cs (1)
149
protected override
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
Binder\InMethodBinder.cs (1)
65
protected override
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
Binder\LocalBinderFactory.cs (4)
408
LocalFunctionSymbol
match = FindLocalFunction(node, _enclosing);
439
private static
LocalFunctionSymbol
FindLocalFunction(LocalFunctionStatementSyntax node, Binder enclosing)
441
LocalFunctionSymbol
match = null;
453
foreach (
var
candidate in possibleScopeBinder.LocalFunctions)
Binder\LocalScopeBinder.cs (20)
22
private ImmutableArray<
LocalFunctionSymbol
> _localFunctions;
53
internal sealed override ImmutableArray<
LocalFunctionSymbol
> LocalFunctions
59
ImmutableInterlocked.InterlockedCompareExchange(ref _localFunctions, BuildLocalFunctions(), default(ImmutableArray<
LocalFunctionSymbol
>));
66
protected virtual ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
68
return ImmutableArray<
LocalFunctionSymbol
>.Empty;
103
private SmallDictionary<string,
LocalFunctionSymbol
> _lazyLocalFunctionsMap;
104
private SmallDictionary<string,
LocalFunctionSymbol
> LocalFunctionsMap
296
protected ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions(SyntaxList<StatementSyntax> statements)
298
ArrayBuilder<
LocalFunctionSymbol
> locals = null;
304
return locals?.ToImmutableAndFree() ?? ImmutableArray<
LocalFunctionSymbol
>.Empty;
307
internal void BuildLocalFunctions(StatementSyntax statement, ref ArrayBuilder<
LocalFunctionSymbol
> locals)
323
locals = ArrayBuilder<
LocalFunctionSymbol
>.GetInstance();
326
var
localSymbol = MakeLocalFunction(decl);
345
protected
LocalFunctionSymbol
MakeLocalFunction(LocalFunctionStatementSyntax declaration)
401
protected override
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
403
LocalFunctionSymbol
result = null;
409
foreach (
var
local in this.LocalFunctions)
454
LocalFunctionSymbol
localSymbol;
511
declaredInThisScope |= newSymbolKind == SymbolKind.Method && this.LocalFunctions.Contains((
LocalFunctionSymbol
)newSymbol);
544
LocalFunctionSymbol
existingLocalFunction = null;
Binder\RefSafetyAnalysis.cs (2)
311
var
localFunction = (
LocalFunctionSymbol
)node.Symbol;
Binder\ScriptLocalScopeBinder.cs (1)
47
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SimpleLocalScopeBinder.cs (1)
35
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SimpleProgramBinder.cs (4)
41
protected override ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
43
ArrayBuilder<
LocalFunctionSymbol
>? locals = null;
53
return locals?.ToImmutableAndFree() ?? ImmutableArray<
LocalFunctionSymbol
>.Empty;
105
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SimpleProgramUnitBinder.cs (2)
31
protected override ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
70
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SwitchBinder.cs (3)
146
protected override ImmutableArray<
LocalFunctionSymbol
> BuildLocalFunctions()
148
var builder = ArrayBuilder<
LocalFunctionSymbol
>.GetInstance();
338
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SwitchBinder_Patterns.cs (1)
44
ImmutableArray<
LocalFunctionSymbol
> functions = GetDeclaredLocalFunctionsForScope(node);
Binder\UsingStatementBinder.cs (1)
316
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\WhileBinder.cs (1)
79
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\WithExternAliasesBinder.cs (1)
67
protected sealed override
LocalFunctionSymbol
? LookupLocalFunction(SyntaxToken nameToken)
Binder\WithLambdaParametersBinder.cs (1)
175
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\WithUsingNamespacesAndTypesBinder.cs (1)
250
protected override
LocalFunctionSymbol
? LookupLocalFunction(SyntaxToken nameToken)
Compilation\MemberSemanticModel.cs (5)
371
LocalFunctionSymbol
function = GetDeclaredLocalFunction(binder, ownerOfTypeParametersInScope.Identifier);
715
internal
LocalFunctionSymbol
GetDeclaredLocalFunction(LocalFunctionStatementSyntax declarationSyntax)
717
var
originalSymbol = GetDeclaredLocalFunction(this.GetEnclosingBinder(GetAdjustedNodePosition(declarationSyntax)), declarationSyntax.Identifier);
736
private static
LocalFunctionSymbol
GetDeclaredLocalFunction(Binder enclosingBinder, SyntaxToken declaredIdentifier)
740
foreach (
var
localFunction in binder.LocalFunctions)
FlowAnalysis\AbstractFlowPass.cs (5)
1384
if (node.Method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1394
protected void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol, SyntaxNode syntax, bool isCall)
1401
LocalFunctionSymbol
symbol,
1623
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1752
else if (node.SymbolOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
FlowAnalysis\AbstractFlowPass_LocalFunctions.cs (6)
43
protected abstract TLocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol);
45
private SmallDictionary<
LocalFunctionSymbol
, TLocalFunctionState>? _localFuncVarUsages = null;
47
protected TLocalFunctionState GetOrCreateLocalFuncUsages(
LocalFunctionSymbol
localFunc)
49
_localFuncVarUsages ??= new SmallDictionary<
LocalFunctionSymbol
, TLocalFunctionState>();
59
protected bool HasLocalFuncUsagesCreated(
LocalFunctionSymbol
localFunc)
97
var localFunctionState = GetOrCreateLocalFuncUsages((
LocalFunctionSymbol
)localFuncSymbol);
FlowAnalysis\ControlFlowPass.cs (1)
76
protected override LocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol) => new LocalFunctionState(UnreachableState());
FlowAnalysis\DefiniteAssignment.cs (7)
77
private readonly PooledHashSet<
LocalFunctionSymbol
> _usedLocalFunctions = PooledHashSet<
LocalFunctionSymbol
>.GetInstance();
765
var
localFunction = variable as
LocalFunctionSymbol
;
1903
if (parameter is SourceComplexParameterSymbolBase { ContainingSymbol:
LocalFunctionSymbol
or LambdaSymbol } sourceComplexParam)
2197
VisitAttributes(((
LocalFunctionSymbol
)localFunctionStatement.Symbol).BindMethodAttributes());
2421
_usedLocalFunctions.Add((
LocalFunctionSymbol
)method);
FlowAnalysis\DefiniteAssignment.LocalFunctions.cs (6)
26
protected override LocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol)
36
LocalFunctionSymbol
localFunc,
95
var
localFunc = GetNearestLocalFunctionOpt(CurrentSymbol);
152
var
nearestLocalFunc = GetNearestLocalFunctionOpt(CurrentSymbol);
158
private static
LocalFunctionSymbol
GetNearestLocalFunctionOpt(Symbol symbol)
165
return (
LocalFunctionSymbol
)symbol;
FlowAnalysis\NullableWalker.cs (13)
3267
if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((
LocalFunctionSymbol
)localFunc.Symbol))
3315
var
localFunc = (
LocalFunctionSymbol
)node.Symbol;
3432
bool isLocalFunction = lambdaOrFunctionSymbol is
LocalFunctionSymbol
;
3453
enforceMemberNotNull(((
LocalFunctionSymbol
)lambdaOrFunctionSymbol).Syntax, this.State);
3503
var
method = (
LocalFunctionSymbol
)_symbol;
3512
LocalFunctionSymbol
symbol,
3521
private void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol)
7364
if (node is BoundCall { Method: { OriginalDefinition:
LocalFunctionSymbol
localFunction } })
9345
if (method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
10101
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
13464
protected override LocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol)
Lowering\DiagnosticsPass_ExpressionTrees.cs (2)
208
Debug.Assert(symbol.Kind == SymbolKind.Local || symbol.Kind == SymbolKind.Parameter || symbol is
LocalFunctionSymbol
);
223
if (method?.OriginalDefinition is
LocalFunctionSymbol
localFunction)
Lowering\LocalRewriter\LocalRewriter_ReturnStatement.cs (1)
49
(method as
LocalFunctionSymbol
)?.IsExpressionBodied ?? false;
Lowering\SyntheticBoundNodeFactory.cs (2)
476
public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<
LocalFunctionSymbol
> localFunctions, params BoundStatement[] statements)
481
public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<
LocalFunctionSymbol
> localFunctions, ImmutableArray<BoundStatement> statements)
Symbols\MethodSymbol.cs (1)
89
/// Returns true if this symbol requires an instance reference as the implicit receiver. This is false if the symbol is static, or a <see cref="
LocalFunctionSymbol
"/>
Symbols\Source\LocalFunctionSymbol.cs (2)
535
var
localFunction = symbol as
LocalFunctionSymbol
;
Symbols\Source\SourceMethodSymbol.cs (1)
111
Debug.Assert(target is not (LambdaSymbol or
LocalFunctionSymbol
));
Symbols\Source\SourceParameterSymbol.cs (1)
146
Debug.Assert(!(ContainingSymbol is
LocalFunctionSymbol
));
Symbols\Source\SourceTypeParameterSymbol.cs (2)
190
binderOpt: (ContainingSymbol as
LocalFunctionSymbol
)?.WithTypeParametersBinder);
294
case
LocalFunctionSymbol
_:
Symbols\Symbol.cs (1)
1738
if (variable is
LocalFunctionSymbol
localFunction)
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (8)
CodeGen\CodeGenLocalFunctionTests.cs (8)
5748
var
localFunction = semanticModel
5750
.GetSymbol<
LocalFunctionSymbol
>();
5823
var
localFunction = semanticModel
5825
.GetSymbol<
LocalFunctionSymbol
>();
5907
var
localFunction = semanticModel.GetDeclaredSymbol(localFunctionStatement).GetSymbol<
LocalFunctionSymbol
>();
6163
var
localFunction = model.GetDeclaredSymbol(localFunctionSyntax).GetSymbol<
LocalFunctionSymbol
>();
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (2)
Attributes\AttributeTests_WellKnownAttributes.cs (2)
5769
var
localFunctionSymbol = model.GetDeclaredSymbol(localFunctionSyntax).GetSymbol<
LocalFunctionSymbol
>();
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (23)
Semantics\InitOnlyMemberTests.cs (2)
4144
var
localFunctionSymbol = model.GetDeclaredSymbol(localFunctionSyntax).GetSymbol<
LocalFunctionSymbol
>();
Semantics\LocalFunctionTests.cs (6)
1721
var
localSymbol = model.GetDeclaredSymbol(x).ContainingSymbol.GetSymbol<
LocalFunctionSymbol
>();
1926
var
localSymbol = Assert.IsType<
LocalFunctionSymbol
>(model.GetDeclaredSymbol(localDecl.AsNode()).GetSymbol());
1976
var
localSymbol = Assert.IsType<
LocalFunctionSymbol
>(model.GetDeclaredSymbol(localDecl.AsNode()).GetSymbol());
Semantics\NullableReferenceTypesTests.cs (10)
97802
var
f1 = model.GetDeclaredSymbol(localSyntaxes[0]).GetSymbol<
LocalFunctionSymbol
>();
97808
var
f2 = model.GetDeclaredSymbol(localSyntaxes[1]).GetSymbol<
LocalFunctionSymbol
>();
99131
var
f2 = model.GetDeclaredSymbol(localSyntaxes[0]).GetSymbol<
LocalFunctionSymbol
>();
111819
var
localSymbol = model.GetDeclaredSymbol(localSyntax).GetSymbol<
LocalFunctionSymbol
>();
111872
var
localSymbol = model.GetDeclaredSymbol(localSyntax).GetSymbol<
LocalFunctionSymbol
>();
Semantics\RefFieldTests.cs (1)
11088
var localFunctions = decls.Select(d => model.GetDeclaredSymbol(d).GetSymbol<
LocalFunctionSymbol
>()).ToArray();
Semantics\TopLevelStatementsTests.cs (4)
6097
var
localFunction = semanticModel.GetDeclaredSymbol(localFunctionStatement).GetSymbol<
LocalFunctionSymbol
>();
6160
var
localFunction = semanticModel
6162
.GetSymbol<
LocalFunctionSymbol
>();
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (2)
Symbols\SymbolEqualityTests.cs (2)
135
Assert.IsType<
LocalFunctionSymbol
>(nonNullOriginal.GetSymbol());
136
Assert.IsType<
LocalFunctionSymbol
>(nullOriginal.GetSymbol());