3 instantiations of CaptureId
Microsoft.CodeAnalysis (3)
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (1)
73CaptureIds.Add(new CaptureId(captureId));
Operations\OperationNodes.cs (2)
642this(new CaptureId(id), isInitialization, semanticModel: null, syntax: syntax, type: type, constantValue: constantValue, isImplicit: true) 650this(new CaptureId(id), value, semanticModel: null, syntax: syntax, isImplicit: true)
99 references to CaptureId
Microsoft.CodeAnalysis (19)
Generated\FlowAnalysis.Generated.cs (2)
31CaptureId Id { get; } 55CaptureId Id { get; }
Generated\Operations.Generated.cs (4)
8441internal FlowCaptureOperation(CaptureId id, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8447public CaptureId Id { get; } 8494internal FlowCaptureReferenceOperation(CaptureId id, bool isInitialization, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit) 8502public CaptureId Id { get; }
Operations\CaptureId.cs (5)
13public readonly struct CaptureId : IEquatable<CaptureId> 24/// Compares <see cref="CaptureId"/>s. 26public bool Equals(CaptureId other) => Value == other.Value; 29public override bool Equals(object? obj) => obj is CaptureId && Equals((CaptureId)obj);
Operations\ControlFlowGraphBuilder.cs (2)
1692/// track <see cref="CaptureId"/>s used by the stack spilling, etc. 1862var idsStillOnTheStack = PooledHashSet<CaptureId>.GetInstance();
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (4)
25public ArrayBuilder<CaptureId>? CaptureIds = null; 70CaptureIds = ArrayBuilder<CaptureId>.GetInstance(); 76public void AddCaptureIds(ArrayBuilder<CaptureId>? others) 87CaptureIds = ArrayBuilder<CaptureId>.GetInstance();
Operations\ControlFlowRegion.cs (2)
61public ImmutableArray<CaptureId> CaptureIds { get; } 67ImmutableArray<CaptureId> captureIds,
Microsoft.CodeAnalysis.CodeStyle (23)
LValueFlowCaptureProvider.cs (6)
22/// <see cref="CaptureId"/> as this flow capture, dereferences and writes to this location 40public static ImmutableDictionary<CaptureId, FlowCaptureKind> CreateLValueFlowCaptures(ControlFlowGraph cfg) 49ImmutableDictionary<CaptureId, FlowCaptureKind>.Builder lvalueFlowCaptureIdBuilder = null; 50var rvalueFlowCaptureIds = PooledHashSet<CaptureId>.GetInstance(); 60lvalueFlowCaptureIdBuilder ??= ImmutableDictionary.CreateBuilder<CaptureId, FlowCaptureKind>(); 80return lvalueFlowCaptureIdBuilder != null ? lvalueFlowCaptureIdBuilder.ToImmutable() : ImmutableDictionary<CaptureId, FlowCaptureKind>.Empty;
SymbolUsageAnalysis.AnalysisData.cs (4)
130public abstract bool IsLValueFlowCapture(CaptureId captureId); 131public abstract bool IsRValueFlowCapture(CaptureId captureId); 132public abstract void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId); 133public abstract void OnLValueDereferenceFound(CaptureId captureId);
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (7)
41private readonly PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>> _lValueFlowCapturesMap; 99_lValueFlowCapturesMap = PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>>.GetInstance(); 181public ImmutableDictionary<CaptureId, FlowCaptureKind> LValueFlowCapturesInGraph { get; } 455public override bool IsLValueFlowCapture(CaptureId captureId) 458public override bool IsRValueFlowCapture(CaptureId captureId) 461public override void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 472public override void OnLValueDereferenceFound(CaptureId captureId)
SymbolUsageAnalysis.OperationTreeAnalysisData.cs (4)
62public override bool IsLValueFlowCapture(CaptureId captureId) 64public override bool IsRValueFlowCapture(CaptureId captureId) 66public override void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 68public override void OnLValueDereferenceFound(CaptureId captureId)
SymbolUsageAnalysis.Walker.cs (2)
102private void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 105private void OnLValueDereferenceFound(CaptureId captureId)
Microsoft.CodeAnalysis.Test.Utilities (34)
Compilation\ControlFlowGraphVerifier.cs (34)
120var referencedCaptureIds = PooledHashSet<CaptureId>.GetInstance(); 382var longLivedIds = PooledHashSet<CaptureId>.GetInstance(); 383var referencedIds = PooledHashSet<CaptureId>.GetInstance(); 384var entryStates = ArrayBuilder<PooledHashSet<CaptureId>>.GetInstance(blocks.Length, fillWithValue: null); 390PooledHashSet<CaptureId> currentState = entryStates[i] ?? PooledHashSet<CaptureId>.GetInstance(); 401foreach (CaptureId id in region.CaptureIds) 446foreach (PooledHashSet<CaptureId> state in entryStates) 457void verifyLeftRegions(BasicBlock block, PooledHashSet<CaptureId> longLivedIds, PooledHashSet<CaptureId> referencedIds, ArrayBuilder<ControlFlowRegion> regions, Func<string> finalGraph) 491var referencedInLastOperation = PooledHashSet<CaptureId>.GetInstance(); 503foreach (CaptureId id in region.CaptureIds) 535bool isCSharpEmptyObjectInitializerCapture(ControlFlowRegion region, BasicBlock block, CaptureId id) 572bool isWithStatementTargetCapture(ControlFlowRegion region, BasicBlock block, CaptureId id) 599bool isConditionalXMLAccessReceiverCapture(ControlFlowRegion region, BasicBlock block, CaptureId id) 638bool isSwitchTargetCapture(ControlFlowRegion region, BasicBlock block, CaptureId id) 681bool isForEachEnumeratorCapture(ControlFlowRegion region, BasicBlock block, CaptureId id) 719bool isAggregateGroupCapture(IOperation operation, ControlFlowRegion region, BasicBlock block, CaptureId id) 751void adjustEntryStateForDestination(ArrayBuilder<PooledHashSet<CaptureId>> entryStates, ControlFlowBranch branch, PooledHashSet<CaptureId> state) 757PooledHashSet<CaptureId> entryState = adjustAndGetEntryState(entryStates, branch.Destination, state); 790PooledHashSet<CaptureId> adjustAndGetEntryState(ArrayBuilder<PooledHashSet<CaptureId>> entryStates, BasicBlock block, PooledHashSet<CaptureId> state) 792PooledHashSet<CaptureId> entryState = entryStates[block.Ordinal]; 795entryState = PooledHashSet<CaptureId>.GetInstance(); 808PooledHashSet<CaptureId> state, IOperation operation, BasicBlock block, int operationIndex, 809PooledHashSet<CaptureId> longLivedIds, PooledHashSet<CaptureId> referencedIds, Func<string> finalGraph) 813CaptureId id = reference.Id; 1059bool isCaptureFromEnclosingGraph(CaptureId id) 1076bool isConditionalAccessCaptureUsedAfterNullCheck(IOperation operation, ControlFlowRegion region, BasicBlock block, CaptureId id) 1430foreach (CaptureId id in region.CaptureIds) 1700foreach (CaptureId id in region.CaptureIds)
Microsoft.CodeAnalysis.Workspaces (23)
LValueFlowCaptureProvider.cs (6)
22/// <see cref="CaptureId"/> as this flow capture, dereferences and writes to this location 40public static ImmutableDictionary<CaptureId, FlowCaptureKind> CreateLValueFlowCaptures(ControlFlowGraph cfg) 49ImmutableDictionary<CaptureId, FlowCaptureKind>.Builder lvalueFlowCaptureIdBuilder = null; 50var rvalueFlowCaptureIds = PooledHashSet<CaptureId>.GetInstance(); 60lvalueFlowCaptureIdBuilder ??= ImmutableDictionary.CreateBuilder<CaptureId, FlowCaptureKind>(); 80return lvalueFlowCaptureIdBuilder != null ? lvalueFlowCaptureIdBuilder.ToImmutable() : ImmutableDictionary<CaptureId, FlowCaptureKind>.Empty;
SymbolUsageAnalysis.AnalysisData.cs (4)
130public abstract bool IsLValueFlowCapture(CaptureId captureId); 131public abstract bool IsRValueFlowCapture(CaptureId captureId); 132public abstract void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId); 133public abstract void OnLValueDereferenceFound(CaptureId captureId);
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (7)
41private readonly PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>> _lValueFlowCapturesMap; 99_lValueFlowCapturesMap = PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>>.GetInstance(); 181public ImmutableDictionary<CaptureId, FlowCaptureKind> LValueFlowCapturesInGraph { get; } 455public override bool IsLValueFlowCapture(CaptureId captureId) 458public override bool IsRValueFlowCapture(CaptureId captureId) 461public override void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 472public override void OnLValueDereferenceFound(CaptureId captureId)
SymbolUsageAnalysis.OperationTreeAnalysisData.cs (4)
62public override bool IsLValueFlowCapture(CaptureId captureId) 64public override bool IsRValueFlowCapture(CaptureId captureId) 66public override void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 68public override void OnLValueDereferenceFound(CaptureId captureId)
SymbolUsageAnalysis.Walker.cs (2)
102private void OnLValueCaptureFound(ISymbol symbol, IOperation operation, CaptureId captureId) 105private void OnLValueDereferenceFound(CaptureId captureId)