src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysis.CopyDataFlowOperationVisitor.cs (14)
68protected override bool HasAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.HasAbstractValue(analysisEntity);
93protected override CopyAbstractValue GetAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.TryGetValue(analysisEntity, out var value) ? value : CopyAbstractValue.Unknown;
104SetAbstractValue(CurrentAnalysisData, analysisEntity, value, TryGetAddressSharedCopyValue);
116CurrentAnalysisData.AssertValidCopyAnalysisData();
275if (CurrentAnalysisData.TryGetValue(entity, out var existingValue))
291SetAbstractValue(CurrentAnalysisData, analysisEntity, copyValue, TryGetAddressSharedCopyValue, initializingParameters: true);
304protected override void ResetCurrentAnalysisData() => CurrentAnalysisData.Reset(GetResetValue);
310return CurrentAnalysisData.TryGetValue(analysisEntity, out var value) ? value : GetDefaultCopyValue(analysisEntity);
403if (CurrentAnalysisData.TryGetValue(key, out var newValue))
430var entitiesToExclude = existingValue.AnalysisEntities.Where(e => !CurrentAnalysisData.HasAbstractValue(e));
519CurrentAnalysisData.CoreAnalysisData.Clear();
520CurrentAnalysisData.CoreAnalysisData.AddRange(mergedData.CoreAnalysisData);
526foreach (var kvp in CurrentAnalysisData.CoreAnalysisData)
584copyValues = CurrentAnalysisData.CoreAnalysisData;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (13)
90Debug.Assert(!CurrentAnalysisData.TryGetValue(analysisEntity, out var existingValue) || existingValue == PointsToAbstractValue.NoLocation);
147protected override bool HasAbstractValue(AnalysisEntity analysisEntity) => CurrentAnalysisData.HasAbstractValue(analysisEntity);
159if (!CurrentAnalysisData.TryGetValue(analysisEntity, out var value))
182Debug.Assert(!CurrentAnalysisData.TryGetValue(analysisEntity, out var currentValue) ||
188SetAbstractValueCore(CurrentAnalysisData, analysisEntity, value);
269protected override void ResetCurrentAnalysisData() => CurrentAnalysisData.Reset(GetResetValue);
418sourceAnalysisData: CurrentAnalysisData, targetAnalysisData: targetAnalysisData);
425sourceAnalysisData: CurrentAnalysisData, targetAnalysisData: targetAnalysisData);
579=> UpdateValuesForAnalysisData(targetAnalysisData.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData);
587=> ApplyMissingCurrentAnalysisDataForUnhandledExceptionData(dataAtException.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData, throwBranchWithExceptionType);
596AssertValidPointsToAnalysisData(CurrentAnalysisData);
601var trimmedData = GetTrimmedCurrentAnalysisDataHelper(withEntities, CurrentAnalysisData.CoreAnalysisData, SetAbstractValueCore);
617pointsToValues = CurrentAnalysisData.CoreAnalysisData;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (10)
73return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : TaintedDataAbstractValue.NotTainted;
83return this.CurrentAnalysisData.HasAbstractValue(analysisEntity);
98UpdateValuesForAnalysisData(targetAnalysisData.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData);
103this.CurrentAnalysisData.Reset(this.ValueDomain.UnknownOrMayBeValue);
118base.ApplyMissingCurrentAnalysisDataForUnhandledExceptionData(dataAtException.CoreAnalysisData, CurrentAnalysisData.CoreAnalysisData, throwBranchWithExceptionType);
154|| this.CurrentAnalysisData.CoreAnalysisData.ContainsKey(analysisEntity))
158SetAbstractValueCore(CurrentAnalysisData, analysisEntity, value);
241return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : defaultValue;
766this.CurrentAnalysisData.SetAbstractValue(analysisEntity, value);
774=> GetTrimmedCurrentAnalysisDataHelper(withEntities, CurrentAnalysisData.CoreAnalysisData, SetAbstractValueCore);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (24)
422return CurrentAnalysisData;
468return CurrentAnalysisData;
503return CurrentAnalysisData;
738return (CurrentAnalysisData, isFeasibleBranch);
855if (!HasAnyAbstractValue(CurrentAnalysisData) &&
935MergeAnalysisData(CurrentAnalysisData, existingData);
955return CurrentAnalysisData;
1378return IsReachableBlockData(CurrentAnalysisData);
1422Debug.Assert(Equals(savedCurrentAnalysisData, CurrentAnalysisData), "Expected no updates to CurrentAnalysisData");
1451Debug.Assert(!ReferenceEquals(truePredicatedData, CurrentAnalysisData));
1456Debug.Assert(!ReferenceEquals(falsePredicatedData, CurrentAnalysisData));
1460Debug.Assert(Equals(savedCurrentAnalysisData, CurrentAnalysisData), "Expected no updates to CurrentAnalysisData");
1478PerformPredicateAnalysisCore(operation, CurrentAnalysisData);
1917=> HasPredicatedDataForEntity(CurrentAnalysisData, predicatedEntity);
2086protected TAnalysisData GetClonedCurrentAnalysisData() => GetClonedAnalysisData(CurrentAnalysisData);
2361SetPredicateValueKind(originalOperation, CurrentAnalysisData, analysisResult.ReturnValueAndPredicateKind.Value.PredicateValueKind);
3478Debug.Assert(!ReferenceEquals(oldMergedAnalysisData, CurrentAnalysisData));
3490Debug.Assert(!ReferenceEquals(oldMergedAnalysisData, CurrentAnalysisData));
3494Debug.Assert(mergedCurrentAnalysisData == null || ReferenceEquals(mergedCurrentAnalysisData, CurrentAnalysisData));
3512var result = MergeAnalysisData(mergedAnalysisData, CurrentAnalysisData);
3513CurrentAnalysisData.Dispose();
3517return CurrentAnalysisData;
3767var previousCurrentAnalysisData = CurrentAnalysisData;
3770AssertValidAnalysisData(CurrentAnalysisData);