src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityBasedPredicateAnalysisData.cs (29)
17/// whose <see cref="CoreAnalysisData"/> is keyed by an <see cref="AnalysisEntity"/>.
34CoreAnalysisData = [.. fromData.CoreAnalysisData];
41: base(data1, data2, data1.CoreAnalysisData,
42data2.CoreAnalysisData, data1.IsReachableBlockData, coreDataAnalysisDomain)
46CoreAnalysisData = coreDataAnalysisDomain.Merge(data1.CoreAnalysisData, data2.CoreAnalysisData);
63public virtual bool HasAnyAbstractValue => CoreAnalysisData.Count > 0 || HasPredicatedData;
79var coreAnalysisDataCompareResult = coreDataAnalysisDomain.Compare(CoreAnalysisData, newData.CoreAnalysisData);
84public bool HasAbstractValue(AnalysisEntity analysisEntity) => CoreAnalysisData.ContainsKey(analysisEntity);
86public bool TryGetValue(AnalysisEntity key, [MaybeNullWhen(false)] out TValue value) => CoreAnalysisData.TryGetValue(key, out value);
89public TValue this[AnalysisEntity key] => CoreAnalysisData[key];
95Debug.Assert(!CoreAnalysisData.IsDisposed);
107CoreAnalysisData[key] = value;
116CoreAnalysisData.Remove(key);
128EqualsHelper(CoreAnalysisData, other.CoreAnalysisData);
137if (CoreAnalysisData.Count > 0)
139var keys = CoreAnalysisData.Keys.ToImmutableArray();
142CoreAnalysisData[key] = getResetValue(key, CoreAnalysisData[key]);
154StartTrackingPredicatedData(predicatedEntity, truePredicateData?.CoreAnalysisData, falsePredicateData?.CoreAnalysisData);
162var result = ApplyPredicatedDataForEntity(CoreAnalysisData, predicatedEntity, trueData);
167public void AddTrackedEntities(HashSet<AnalysisEntity> builder) => builder.UnionWith(CoreAnalysisData.Keys);
180using var _ = ArrayBuilder<(AnalysisEntity, TValue)>.GetInstance(CoreAnalysisData.Count, out var builder);
181foreach (var entity in CoreAnalysisData.Keys)
203CoreAnalysisData.TryGetValue(entity, out var existingValue))
228CoreAnalysisData.Dispose();