4 instantiations of TrackingEnumerationSet
Microsoft.CodeAnalysis.NetAnalyzers (4)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.DataFlowOperationVisitor.cs (1)
328
var newInvocationSet = new
TrackingEnumerationSet
(
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\InvocationSetHelpers.cs (2)
26
return new
TrackingEnumerationSet
(builder.ToImmutable(), totalCount);
56
return new
TrackingEnumerationSet
(builder.ToImmutable(), totalCount);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\TrackingEnumerationSet.cs (1)
36
public static readonly TrackingEnumerationSet Empty =
new
(ImmutableHashSet<IOperation>.Empty, EnumerationCount.Zero);
30 references to TrackingEnumerationSet
Microsoft.CodeAnalysis.NetAnalyzers (30)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.DataFlowOperationVisitor.cs (2)
328
var
newInvocationSet = new TrackingEnumerationSet(
332
var trackedEntitiesBuilder = PooledDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
>.GetInstance();
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\GlobalFlowStateDictionaryAnalysisValue.cs (17)
14
public ImmutableDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
> TrackedEntities { get; }
18
public static readonly GlobalFlowStateDictionaryAnalysisValue Empty = new(ImmutableDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
>.Empty, GlobalFlowStateDictionaryAnalysisValueKind.Empty);
20
public static readonly GlobalFlowStateDictionaryAnalysisValue Unknown = new(ImmutableDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
>.Empty, GlobalFlowStateDictionaryAnalysisValueKind.Unknown);
23
ImmutableDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
> trackedEntities,
32
/// perform <see cref="InvocationSetHelpers.Intersect(
TrackingEnumerationSet
,
TrackingEnumerationSet
)"/> operation between the values
33
/// of the common keys, otherwise, perform <see cref="InvocationSetHelpers.Merge(
TrackingEnumerationSet
,
TrackingEnumerationSet
)"/>
48
using var builder = PooledDictionary<IDeferredTypeEntity,
TrackingEnumerationSet
>.GetInstance();
57
var
trackedEntities1 = kvp.Value;
58
if (value2.TrackedEntities.TryGetValue(key, out
var
trackedEntities2))
78
var builder = ImmutableDictionary.CreateBuilder<IDeferredTypeEntity,
TrackingEnumerationSet
>();
84
var
invocationSet = kvp.Value;
85
if (value2.TrackedEntities.TryGetValue(key, out
var
trackedEntities2))
102
builder[key] = InvocationSetHelpers.Intersect(invocationSet,
TrackingEnumerationSet
.Empty);
109
var
invocationSet = kvp.Value;
113
builder[key] = InvocationSetHelpers.Intersect(invocationSet,
TrackingEnumerationSet
.Empty);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\InvocationSetHelpers.cs (6)
12
public static
TrackingEnumerationSet
Merge(
TrackingEnumerationSet
set1,
TrackingEnumerationSet
set2)
29
public static
TrackingEnumerationSet
Intersect(
TrackingEnumerationSet
set1,
TrackingEnumerationSet
set2)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\FlowAnalysis\TrackingEnumerationSet.cs (5)
11
internal class TrackingEnumerationSet : CacheBasedEquatable<
TrackingEnumerationSet
>
36
public static readonly
TrackingEnumerationSet
Empty = new(ImmutableHashSet<IOperation>.Empty, EnumerationCount.Zero);
50
protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable<
TrackingEnumerationSet
> obj)
52
var
other = (
TrackingEnumerationSet
)obj;