1 instantiation of LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (1)
Binder\LocalScopeBinder.cs (1)
347
return new
LocalFunctionSymbol
(
125 references to LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (125)
Binder\Binder.cs (1)
194
internal virtual ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\Binder_Constraints.cs (1)
464
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)
4061
internal virtual ImmutableArray<
LocalFunctionSymbol
> LocalFunctions
4065
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)
136
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)
64
protected override
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
Binder\LocalBinderFactory.cs (4)
409
LocalFunctionSymbol
match = FindLocalFunction(node, _enclosing);
440
private static
LocalFunctionSymbol
FindLocalFunction(LocalFunctionStatementSyntax node, Binder enclosing)
442
LocalFunctionSymbol
match = null;
454
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)
370
LocalFunctionSymbol
function = GetDeclaredLocalFunction(binder, ownerOfTypeParametersInScope.Identifier);
714
internal
LocalFunctionSymbol
GetDeclaredLocalFunction(LocalFunctionStatementSyntax declarationSyntax)
716
var
originalSymbol = GetDeclaredLocalFunction(this.GetEnclosingBinder(GetAdjustedNodePosition(declarationSyntax)), declarationSyntax.Identifier);
735
private static
LocalFunctionSymbol
GetDeclaredLocalFunction(Binder enclosingBinder, SyntaxToken declaredIdentifier)
739
foreach (
var
localFunction in binder.LocalFunctions)
FlowAnalysis\AbstractFlowPass.cs (5)
1385
if (node.Method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1395
protected void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol, SyntaxNode syntax, bool isCall)
1402
LocalFunctionSymbol
symbol,
1624
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1753
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)
77
protected override LocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol) => new LocalFunctionState(UnreachableState());
FlowAnalysis\DefiniteAssignment.cs (7)
76
private readonly PooledHashSet<
LocalFunctionSymbol
> _usedLocalFunctions = PooledHashSet<
LocalFunctionSymbol
>.GetInstance();
779
var
localFunction = variable as
LocalFunctionSymbol
;
1917
if (parameter is SourceComplexParameterSymbolBase { ContainingSymbol:
LocalFunctionSymbol
or LambdaSymbol } sourceComplexParam)
2211
VisitAttributes(((
LocalFunctionSymbol
)localFunctionStatement.Symbol).BindMethodAttributes());
2443
_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)
3245
if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((
LocalFunctionSymbol
)localFunc.Symbol))
3293
var
localFunc = (
LocalFunctionSymbol
)node.Symbol;
3410
bool isLocalFunction = lambdaOrFunctionSymbol is
LocalFunctionSymbol
;
3431
enforceMemberNotNull(((
LocalFunctionSymbol
)lambdaOrFunctionSymbol).Syntax, this.State);
3481
var
method = (
LocalFunctionSymbol
)_symbol;
3490
LocalFunctionSymbol
symbol,
3499
private void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol)
7072
if (node is BoundCall { Method: { OriginalDefinition:
LocalFunctionSymbol
localFunction } })
9009
if (method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
9759
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
12825
protected override LocalFunctionState CreateLocalFunctionState(
LocalFunctionSymbol
symbol)
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (2)
39
originalMethod is
LocalFunctionSymbol
106
Debug.Assert(!(originalMethod is
LocalFunctionSymbol
) || !originalMethod.IsStatic || IsStatic);
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)
189
binderOpt: (ContainingSymbol as
LocalFunctionSymbol
)?.WithTypeParametersBinder);
293
case
LocalFunctionSymbol
_:
Symbols\Symbol.cs (1)
1727
if (variable is
LocalFunctionSymbol
localFunction)