ExtractMethod\MethodExtractor.Analyzer.cs (17)
415using var _0 = GetPooledSymbolSet(dataFlowAnalysisData.Captured, out var capturedMap);
416using var _1 = GetPooledSymbolSet(dataFlowAnalysisData.DataFlowsIn, out var dataFlowInMap);
417using var _2 = GetPooledSymbolSet(dataFlowAnalysisData.DataFlowsOut, out var dataFlowOutMap);
418using var _3 = GetPooledSymbolSet(dataFlowAnalysisData.AlwaysAssigned, out var alwaysAssignedMap);
419using var _4 = GetPooledSymbolSet(dataFlowAnalysisData.VariablesDeclared, out var variableDeclaredMap);
420using var _5 = GetPooledSymbolSet(dataFlowAnalysisData.ReadInside, out var readInsideMap);
421using var _6 = GetPooledSymbolSet(dataFlowAnalysisData.WrittenInside, out var writtenInsideMap);
422using var _7 = GetPooledSymbolSet(dataFlowAnalysisData.ReadOutside, out var readOutsideMap);
423using var _8 = GetPooledSymbolSet(dataFlowAnalysisData.WrittenOutside, out var writtenOutsideMap);
424using var _9 = GetPooledSymbolSet(dataFlowAnalysisData.UnsafeAddressTaken, out var unsafeAddressTakenMap);
523PooledDisposer<PooledHashSet<ISymbol>> GetPooledSymbolSet(ImmutableArray<ISymbol> symbols, out PooledHashSet<ISymbol> symbolSet)
525var disposer = PooledHashSet<ISymbol>.GetInstance(out symbolSet);
801using var _1 = PooledHashSet<ITypeSymbol>.GetInstance(out var visited);
802using var _2 = PooledHashSet<ITypeParameterSymbol>.GetInstance(out var candidates);
FindSymbols\FindReferences\FindReferencesSearchEngine.cs (13)
219using var _1 = PooledDictionary<ISymbol, PooledHashSet<string>>.GetInstance(out var symbolToGlobalAliases);
224using var _3 = PooledHashSet<Document>.GetInstance(out var foundDocuments);
230var globalAliases = TryGet(symbolToGlobalAliases, symbol);
270private static PooledHashSet<U>? TryGet<T, U>(Dictionary<T, PooledHashSet<U>> dictionary, T key) where T : notnull
271=> dictionary.TryGetValue(key, out var set) ? set : null;
276Dictionary<ISymbol, PooledHashSet<string>> symbolToGlobalAliases,
345PooledDictionary<ISymbol, PooledHashSet<string>> symbolToGlobalAliases,
360private static PooledHashSet<string> GetGlobalAliasesSet<T>(PooledDictionary<T, PooledHashSet<string>> dictionary, T key) where T : notnull
361=> dictionary.GetOrAdd(key, static _ => PooledHashSet<string>.GetInstance());
363private static void FreeGlobalAliases(PooledDictionary<ISymbol, PooledHashSet<string>> symbolToGlobalAliases)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (35)
41private readonly PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>> _lValueFlowCapturesMap;
48private readonly PooledDictionary<IOperation, PooledHashSet<IOperation>> _reachingDelegateCreationTargets;
69private readonly PooledDictionary<(int firstBlockOrdinal, int lastBlockOrdinal), PooledHashSet<(ISymbol, IOperation)>> _symbolWritesInsideBlockRangeMap;
78PooledHashSet<ISymbol> symbolsRead,
79PooledHashSet<IMethodSymbol> lambdaOrLocalFunctionsBeingAnalyzed,
81PooledDictionary<IOperation, PooledHashSet<IOperation>> reachingDelegateCreationTargets,
99_lValueFlowCapturesMap = PooledDictionary<CaptureId, PooledHashSet<(ISymbol, IOperation)>>.GetInstance();
103_symbolWritesInsideBlockRangeMap = PooledDictionary<(int firstBlockOrdinal, int lastBlockOrdinal), PooledHashSet<(ISymbol, IOperation)>>.GetInstance();
108protected override PooledHashSet<ISymbol> SymbolsReadBuilder { get; }
112protected override PooledHashSet<IMethodSymbol> LambdaOrLocalFunctionsBeingAnalyzed { get; }
131symbolsRead: PooledHashSet<ISymbol>.GetInstance(),
132lambdaOrLocalFunctionsBeingAnalyzed: PooledHashSet<IMethodSymbol>.GetInstance(),
134reachingDelegateCreationTargets: PooledDictionary<IOperation, PooledHashSet<IOperation>>.GetInstance(),
188using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder);
215private PooledHashSet<(ISymbol, IOperation)> GetOrCreateSymbolWritesInBlockRange(int firstBlockOrdinal, int lastBlockOrdinal, CancellationToken cancellationToken)
217if (!_symbolWritesInsideBlockRangeMap.TryGetValue((firstBlockOrdinal, lastBlockOrdinal), out var writesInBlockRange))
220var operations = PooledHashSet<IOperation>.GetInstance();
224writesInBlockRange = PooledHashSet<(ISymbol, IOperation)>.GetInstance();
241PooledHashSet<IOperation> operationsBuilder,
254_reachingDelegateCreationTargets.TryGetValue(invocation.Instance, out var targets))
273void AddDescendantOperationsFromDelegateCreationTargets(PooledHashSet<IOperation> targets)
464if (!_lValueFlowCapturesMap.TryGetValue(captureId, out var captures))
466captures = PooledHashSet<(ISymbol, IOperation)>.GetInstance();
475if (_lValueFlowCapturesMap.TryGetValue(captureId, out var captures))
522var targetsBuilder = PooledHashSet<IOperation>.GetInstance();
533if (!arg.self._reachingDelegateCreationTargets.TryGetValue(symbolWrite, out var targetsBuilderForSymbolWrite))
588var targetsBuilder = PooledHashSet<IOperation>.GetInstance();
600if (_reachingDelegateCreationTargets.TryGetValue(write, out var targetsBuilder))
629foreach (var creations in _reachingDelegateCreationTargets.Values)
650foreach (var captures in _lValueFlowCapturesMap.Values)
657foreach (var operations in _symbolWritesInsideBlockRangeMap.Values)