internal static void AssertValidPointsToAnalysisKeyValuePair( AnalysisEntity key, PointsToAbstractValue value) { Debug.Assert(value.Kind != PointsToAbstractValueKind.Undefined); Debug.Assert(!key.IsLValueFlowCaptureEntity || value.Kind == PointsToAbstractValueKind.KnownLValueCaptures); Debug.Assert(PointsToAnalysis.ShouldBeTracked(key, PointsToAnalysisKind.Complete)); }
private static PointsToAnalysisResult?TryGetOrComputeResultForAnalysisContext(PointsToAnalysisContext analysisContext) { using var trackedEntitiesBuilder = new TrackedEntitiesBuilder(); var defaultPointsToValueGenerator = new DefaultPointsToValueGenerator(trackedEntitiesBuilder); var analysisDomain = new PointsToAnalysisDomain(defaultPointsToValueGenerator); var operationVisitor = new PointsToDataFlowOperationVisitor(trackedEntitiesBuilder, defaultPointsToValueGenerator, analysisDomain, analysisContext); var pointsToAnalysis = new PointsToAnalysis(analysisDomain, operationVisitor); return(pointsToAnalysis.TryGetOrComputeResultCore(analysisContext, cacheResult: true)); }