1 instantiation of LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (1)
Binder\LocalScopeBinder.cs (1)
347
return new
LocalFunctionSymbol
(
122 references to LocalFunctionSymbol
Microsoft.CodeAnalysis.CSharp (122)
Binder\Binder.cs (1)
225
internal virtual ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\Binder_Constraints.cs (1)
465
LocalFunctionSymbol
=> null,
Binder\Binder_Expressions.cs (1)
1563
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);
1898
protected virtual
LocalFunctionSymbol
LookupLocalFunction(SyntaxToken nameToken)
4126
internal virtual ImmutableArray<
LocalFunctionSymbol
> LocalFunctions
4130
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\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)
138
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)
371
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();
360
internal override ImmutableArray<
LocalFunctionSymbol
> GetDeclaredLocalFunctionsForScope(CSharpSyntaxNode scopeDesignator)
Binder\SwitchBinder_Patterns.cs (1)
44
ImmutableArray<
LocalFunctionSymbol
> functions = GetDeclaredLocalFunctionsForScope(node);
Binder\UsingStatementBinder.cs (1)
328
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)
211
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)
1433
if (node.Method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1443
protected void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol, SyntaxNode syntax, bool isCall)
1450
LocalFunctionSymbol
symbol,
1673
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
1800
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();
716
var
localFunction = variable as
LocalFunctionSymbol
;
1855
if (parameter is SourceComplexParameterSymbolBase { ContainingSymbol:
LocalFunctionSymbol
or LambdaSymbol } sourceComplexParam)
2149
VisitAttributes(((
LocalFunctionSymbol
)localFunctionStatement.Symbol).BindMethodAttributes());
2373
_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)
3322
if (localFuncs[i] is { } localFunc && HasLocalFuncUsagesCreated((
LocalFunctionSymbol
)localFunc.Symbol))
3370
var
localFunc = (
LocalFunctionSymbol
)node.Symbol;
3487
bool isLocalFunction = lambdaOrFunctionSymbol is
LocalFunctionSymbol
;
3508
enforceMemberNotNull(((
LocalFunctionSymbol
)lambdaOrFunctionSymbol).Syntax, this.State);
3558
var
method = (
LocalFunctionSymbol
)_symbol;
3567
LocalFunctionSymbol
symbol,
3576
private void VisitLocalFunctionUse(
LocalFunctionSymbol
symbol)
7733
if (node is BoundCall { Method: { OriginalDefinition:
LocalFunctionSymbol
localFunction } })
9872
if (method?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
10855
if (node.MethodOpt?.OriginalDefinition is
LocalFunctionSymbol
localFunc)
14309
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)
52
(method as
LocalFunctionSymbol
)?.IsExpressionBodied ?? false;
Lowering\SyntheticBoundNodeFactory.cs (2)
481
public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<
LocalFunctionSymbol
> localFunctions, params BoundStatement[] statements)
486
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)
560
var
localFunction = symbol as
LocalFunctionSymbol
;
Symbols\Source\SourceMethodSymbol.cs (1)
146
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)
1757
if (variable is
LocalFunctionSymbol
localFunction)