1 implementation of IFlowAnonymousFunctionOperation
Microsoft.CodeAnalysis (1)
Operations\OperationNodes.cs (1)
150
internal sealed class FlowAnonymousFunctionOperation : Operation,
IFlowAnonymousFunctionOperation
110 references to IFlowAnonymousFunctionOperation
ILLink.RoslynAnalyzer (2)
DataFlow\LocalDataFlowVisitor.cs (2)
561
case
IFlowAnonymousFunctionOperation
lambda:
710
public override TValue VisitFlowAnonymousFunction (
IFlowAnonymousFunctionOperation
operation, LocalDataFlowState<TValue, TContext, TValueLattice, TContextLattice> state)
Microsoft.CodeAnalysis (20)
Generated\OperationKind.Generated.cs (1)
224
/// <summary>Indicates an <see cref="
IFlowAnonymousFunctionOperation
"/>.</summary>
Generated\Operations.Generated.cs (2)
11514
public virtual void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation) => DefaultVisit(operation);
11653
public virtual TResult? VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation, TArgument argument) => DefaultVisit(operation, argument);
Operations\ControlFlowGraph.cs (4)
29
private readonly ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)> _anonymousFunctionsMap;
38
ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)> anonymousFunctionsMap)
276
public ControlFlowGraph GetAnonymousFunctionControlFlowGraph(
IFlowAnonymousFunctionOperation
anonymousFunction, CancellationToken cancellationToken = default)
293
internal bool TryGetAnonymousFunctionControlFlowGraph(
IFlowAnonymousFunctionOperation
anonymousFunction, [NotNullWhen(true)] out ControlFlowGraph? controlFlowGraph)
Operations\ControlFlowGraphBuilder.cs (4)
151
ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion, int)>.Builder? anonymousFunctionsMapOpt = null;
155
anonymousFunctionsMapOpt = ImmutableDictionary.CreateBuilder<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion, int)>();
169
anonymousFunctionsMapOpt?.ToImmutable() ?? ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion, int)>.Empty);
6465
public override IOperation VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation, int? captureIdForResult)
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (7)
299
ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder? anonymousFunctionsMapOpt,
383
(ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder map, ControlFlowRegion region) argument = (anonymousFunctionsMapOpt, result);
399
OperationVisitor<(ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder map, ControlFlowRegion region), IOperation>
404
IFlowAnonymousFunctionOperation
operation,
405
(ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder map, ControlFlowRegion region) argument)
411
internal override IOperation? VisitNoneOperation(IOperation operation, (ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder map, ControlFlowRegion region) argument)
418
(ImmutableDictionary<
IFlowAnonymousFunctionOperation
, (ControlFlowRegion region, int ordinal)>.Builder map, ControlFlowRegion region) argument)
Operations\ControlFlowGraphExtensions.cs (1)
48
public static ControlFlowGraph GetAnonymousFunctionControlFlowGraphInScope(this ControlFlowGraph controlFlowGraph,
IFlowAnonymousFunctionOperation
anonymousFunction, CancellationToken cancellationToken = default)
Operations\OperationCloner.cs (1)
24
public override IOperation VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation, object? argument)
Microsoft.CodeAnalysis.AnalyzerUtilities (39)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
263
IFlowAnonymousFunctionOperation
lambda,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
1035
IFlowAnonymousFunctionOperation
lambda,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.cs (2)
229
foreach (
IFlowAnonymousFunctionOperation
flowAnonymousFunctionOperation in
230
enclosingControlFlowGraph.DescendantOperations<
IFlowAnonymousFunctionOperation
>(
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (5)
40
private readonly ImmutableHashSet<
IFlowAnonymousFunctionOperation
>.Builder _visitedLambdas;
64
this._visitedLambdas = ImmutableHashSet.CreateBuilder<
IFlowAnonymousFunctionOperation
>();
88
public ImmutableHashSet<
IFlowAnonymousFunctionOperation
> VisitedLambdas => this._visitedLambdas.ToImmutable();
641
public override PropertySetAbstractValue VisitInvocation_Lambda(
IFlowAnonymousFunctionOperation
lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
690
foreach (
IFlowAnonymousFunctionOperation
lambdaOperation in subResult.VisitedLambdas)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisResult.cs (2)
21
ImmutableHashSet<
IFlowAnonymousFunctionOperation
> visitedLambdas)
34
public ImmutableHashSet<
IFlowAnonymousFunctionOperation
> VisitedLambdas { get; }
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (1)
436
public override TaintedDataAbstractValue VisitInvocation_Lambda(
IFlowAnonymousFunctionOperation
lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AbstractDataFlowAnalysisContext.cs (1)
130
public ControlFlowGraph? GetAnonymousFunctionControlFlowGraph(
IFlowAnonymousFunctionOperation
lambda)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (21)
50
private readonly HashSet<
IFlowAnonymousFunctionOperation
> _visitedLambdas;
73
private readonly ImmutableHashSet<
IFlowAnonymousFunctionOperation
>.Builder _escapedLambdas;
78
private readonly ImmutableHashSet<
IFlowAnonymousFunctionOperation
>.Builder _analyzedLambdas;
278
_visitedLambdas = new HashSet<
IFlowAnonymousFunctionOperation
>();
284
_escapedLambdas = ImmutableHashSet.CreateBuilder<
IFlowAnonymousFunctionOperation
>();
285
_analyzedLambdas = ImmutableHashSet.CreateBuilder<
IFlowAnonymousFunctionOperation
>();
621
foreach (
var
lambda in _visitedLambdas)
639
private bool IsStandaloneAnalysisRequiredForLambda(
IFlowAnonymousFunctionOperation
lambda)
2681
private void PerformStandaloneLambdaInterproceduralAnalysis(
IFlowAnonymousFunctionOperation
lambda)
3286
using var lambdaTargets = PooledHashSet<
IFlowAnonymousFunctionOperation
>.GetInstance();
3298
foreach (
var
flowAnonymousFunctionOperation in lambdaTargets)
3311
PooledHashSet<
IFlowAnonymousFunctionOperation
> lambdaTargets)
3317
PooledHashSet<
IFlowAnonymousFunctionOperation
> lambdaTargets)
3324
PooledHashSet<
IFlowAnonymousFunctionOperation
> lambdaTargets)
3384
void AddLambdaTarget(
IFlowAnonymousFunctionOperation
lambda)
3419
case
IFlowAnonymousFunctionOperation
lambdaOperation:
3441
using var lambdaTargets = PooledHashSet<
IFlowAnonymousFunctionOperation
>.GetInstance();
3482
foreach (
var
lambda in lambdaTargets)
3593
IFlowAnonymousFunctionOperation
lambda,
3617
case
IFlowAnonymousFunctionOperation
flowAnonymousFunction:
3802
public override TAbstractAnalysisValue VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation, object? argument)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\IDataFlowAnalysisContext.cs (1)
16
ControlFlowGraph? GetAnonymousFunctionControlFlowGraph(
IFlowAnonymousFunctionOperation
lambda);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\LambdaAndLocalFunctionAnalysisInfo.cs (4)
28
public ImmutableHashSet<
IFlowAnonymousFunctionOperation
> EscapedLambdas { get; }
33
public ImmutableHashSet<
IFlowAnonymousFunctionOperation
> AnalyzedLambdas { get; }
38
ImmutableHashSet<
IFlowAnonymousFunctionOperation
>.Builder escapedLambdas,
39
ImmutableHashSet<
IFlowAnonymousFunctionOperation
>.Builder analyzedLambdas)
Microsoft.CodeAnalysis.CodeStyle (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
111
public BasicBlockAnalysisData AnalyzeLambdaInvocation(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
127
protected abstract BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken);
138
public abstract void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (7)
62
private readonly PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> _lambdaTargetsToAccessingCfgMap;
83
PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> lambdaTargetsToAccessingCfgMap)
136
lambdaTargetsToAccessingCfgMap: PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph>.GetInstance());
280
case
IFlowAnonymousFunctionOperation
flowAnonymousFunctionOperation:
308
ControlFlowGraph TryGetAnonymousFunctionControlFlowGraphInScope(
IFlowAnonymousFunctionOperation
flowAnonymousFunctionOperation)
500
protected override BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
561
public override void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (2)
56
protected override BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
69
public override void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (4)
352
private void AnalyzeLambdaInvocation(
IFlowAnonymousFunctionOperation
lambda)
395
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)
457
_currentAnalysisData.SetLambdaTargetForDelegate(write, (
IFlowAnonymousFunctionOperation
)currentOperation);
554
AnalyzeLambdaInvocation((
IFlowAnonymousFunctionOperation
)target);
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (8)
IOperation\IOperationTests_IAnonymousFunctionExpression.cs (8)
852
IFlowAnonymousFunctionOperation
lambdaD1 = getLambda(graphM);
865
IFlowAnonymousFunctionOperation
lambdaD2 = getLambda(graphD1);
875
IFlowAnonymousFunctionOperation
getLambda(ControlFlowGraph graph)
877
return graph.Blocks.SelectMany(b => b.Operations.SelectMany(o => o.DescendantsAndSelf())).OfType<
IFlowAnonymousFunctionOperation
>().Single();
907
IFlowAnonymousFunctionOperation
lambdaD1 = getLambda(graphM, index: 0);
909
IFlowAnonymousFunctionOperation
lambdaD2 = getLambda(graphM, index: 1);
931
IFlowAnonymousFunctionOperation
getLambda(ControlFlowGraph graph, int index)
933
return graph.Blocks.SelectMany(b => b.Operations.SelectMany(o => o.DescendantsAndSelf())).OfType<
IFlowAnonymousFunctionOperation
>().ElementAt(index);
Microsoft.CodeAnalysis.Test.Utilities (8)
Compilation\ControlFlowGraphVerifier.cs (5)
118
var anonymousFunctionsMap = PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph>.GetInstance();
338
foreach (KeyValuePair<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> pair in anonymousFunctionsMap)
1800
private readonly Dictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> _anonymousFunctionsMap;
1804
Dictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> anonymousFunctionsMap,
1817
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)
Compilation\OperationTreeVerifier.cs (2)
1370
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)
1372
LogString(nameof(
IFlowAnonymousFunctionOperation
));
Compilation\TestOperationVisitor.cs (1)
943
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)
Microsoft.CodeAnalysis.Workspaces (16)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.AnalysisData.cs (3)
111
public BasicBlockAnalysisData AnalyzeLambdaInvocation(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
127
protected abstract BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken);
138
public abstract void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (7)
62
private readonly PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> _lambdaTargetsToAccessingCfgMap;
83
PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph> lambdaTargetsToAccessingCfgMap)
136
lambdaTargetsToAccessingCfgMap: PooledDictionary<
IFlowAnonymousFunctionOperation
, ControlFlowGraph>.GetInstance());
280
case
IFlowAnonymousFunctionOperation
flowAnonymousFunctionOperation:
308
ControlFlowGraph TryGetAnonymousFunctionControlFlowGraphInScope(
IFlowAnonymousFunctionOperation
flowAnonymousFunctionOperation)
500
protected override BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
561
public override void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.OperationTreeAnalysisData.cs (2)
56
protected override BasicBlockAnalysisData AnalyzeLambdaInvocationCore(
IFlowAnonymousFunctionOperation
lambda, CancellationToken cancellationToken)
69
public override void SetLambdaTargetForDelegate(IOperation write,
IFlowAnonymousFunctionOperation
lambdaTarget)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (4)
352
private void AnalyzeLambdaInvocation(
IFlowAnonymousFunctionOperation
lambda)
395
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)
457
_currentAnalysisData.SetLambdaTargetForDelegate(write, (
IFlowAnonymousFunctionOperation
)currentOperation);
554
AnalyzeLambdaInvocation((
IFlowAnonymousFunctionOperation
)target);
Roslyn.Diagnostics.Analyzers (1)
AbstractDoNotCopyValue.cs (1)
733
public override void VisitFlowAnonymousFunction(
IFlowAnonymousFunctionOperation
operation)