src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysis.CopyDataFlowOperationVisitor.cs (14)
67protected override bool HasAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.HasAbstractValue(analysisEntity);
92protected override CopyAbstractValue GetAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.TryGetValue(analysisEntity, out var value) ? value : CopyAbstractValue.Unknown;
103SetAbstractValue(CurrentAnalysisData, analysisEntity, value, TryGetAddressSharedCopyValue);
115CurrentAnalysisData.AssertValidCopyAnalysisData();
274if (CurrentAnalysisData.TryGetValue(entity, out var existingValue))
290SetAbstractValue(CurrentAnalysisData, analysisEntity, copyValue, TryGetAddressSharedCopyValue, initializingParameters: true);
303protected override void ResetCurrentAnalysisData() => CurrentAnalysisData.Reset(GetResetValue);
309return CurrentAnalysisData.TryGetValue(analysisEntity, out var value) ? value : GetDefaultCopyValue(analysisEntity);
402if (CurrentAnalysisData.TryGetValue(key, out var newValue))
429var entitiesToExclude = existingValue.AnalysisEntities.Where(e => !CurrentAnalysisData.HasAbstractValue(e));
518CurrentAnalysisData.CoreAnalysisData.Clear();
519CurrentAnalysisData.CoreAnalysisData.AddRange(mergedData.CoreAnalysisData);
525foreach (var kvp in CurrentAnalysisData.CoreAnalysisData)
583copyValues = CurrentAnalysisData.CoreAnalysisData;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (13)
92Debug.Assert(!CurrentAnalysisData.TryGetValue(analysisEntity, out var existingValue) || existingValue == PointsToAbstractValue.NoLocation);
149protected override bool HasAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.HasAbstractValue(analysisEntity);
161if (!CurrentAnalysisData.TryGetValue(analysisEntity, out var value))
184Debug.Assert(!CurrentAnalysisData.TryGetValue(analysisEntity, out var currentValue) ||
190SetAbstractValueCore(CurrentAnalysisData, analysisEntity, value);
271protected override void ResetCurrentAnalysisData() => CurrentAnalysisData.Reset(GetResetValue);
420sourceAnalysisData: CurrentAnalysisData, targetAnalysisData: targetAnalysisData);
427sourceAnalysisData: CurrentAnalysisData, targetAnalysisData: targetAnalysisData);
581=> UpdateValuesForAnalysisData(targetAnalysisData.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData);
589=> ApplyMissingCurrentAnalysisDataForUnhandledExceptionData(dataAtException.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData, throwBranchWithExceptionType);
598AssertValidPointsToAnalysisData(CurrentAnalysisData);
603var trimmedData = GetTrimmedCurrentAnalysisDataHelper(withEntities, CurrentAnalysisData.CoreAnalysisData, SetAbstractValueCore);
619pointsToValues = CurrentAnalysisData.CoreAnalysisData;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (10)
74return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : TaintedDataAbstractValue.NotTainted;
84return this.CurrentAnalysisData.HasAbstractValue(analysisEntity);
99UpdateValuesForAnalysisData(targetAnalysisData.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData);
104this.CurrentAnalysisData.Reset(this.ValueDomain.UnknownOrMayBeValue);
119base.ApplyMissingCurrentAnalysisDataForUnhandledExceptionData(dataAtException.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData, throwBranchWithExceptionType);
155|| this.CurrentAnalysisData.CoreAnalysisData.ContainsKey(analysisEntity))
159SetAbstractValueCore(CurrentAnalysisData, analysisEntity, value);
242return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : defaultValue;
767this.CurrentAnalysisData.SetAbstractValue(analysisEntity, value);
775=> GetTrimmedCurrentAnalysisDataHelper(withEntities, CurrentAnalysisData.CoreAnalysisData, SetAbstractValueCore);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (24)
424return CurrentAnalysisData;
470return CurrentAnalysisData;
505return CurrentAnalysisData;
740return (CurrentAnalysisData, isFeasibleBranch);
857if (!HasAnyAbstractValue(CurrentAnalysisData) &&
937MergeAnalysisData(CurrentAnalysisData, existingData);
957return CurrentAnalysisData;
1380return IsReachableBlockData(CurrentAnalysisData);
1424Debug.Assert(Equals(savedCurrentAnalysisData, CurrentAnalysisData), "Expected no updates to CurrentAnalysisData");
1453Debug.Assert(!ReferenceEquals(truePredicatedData, CurrentAnalysisData));
1458Debug.Assert(!ReferenceEquals(falsePredicatedData, CurrentAnalysisData));
1462Debug.Assert(Equals(savedCurrentAnalysisData, CurrentAnalysisData), "Expected no updates to CurrentAnalysisData");
1480PerformPredicateAnalysisCore(operation, CurrentAnalysisData);
1919=> HasPredicatedDataForEntity(CurrentAnalysisData, predicatedEntity);
2088protected TAnalysisData GetClonedCurrentAnalysisData() => GetClonedAnalysisData(CurrentAnalysisData);
2363SetPredicateValueKind(originalOperation, CurrentAnalysisData, analysisResult.ReturnValueAndPredicateKind.Value.PredicateValueKind);
3480Debug.Assert(!ReferenceEquals(oldMergedAnalysisData, CurrentAnalysisData));
3492Debug.Assert(!ReferenceEquals(oldMergedAnalysisData, CurrentAnalysisData));
3496Debug.Assert(mergedCurrentAnalysisData == null || ReferenceEquals(mergedCurrentAnalysisData, CurrentAnalysisData));
3514var result = MergeAnalysisData(mergedAnalysisData, CurrentAnalysisData);
3515CurrentAnalysisData.Dispose();
3519return CurrentAnalysisData;
3769var previousCurrentAnalysisData = CurrentAnalysisData;
3772AssertValidAnalysisData(CurrentAnalysisData);