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