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));
        }
 public PointsToAnalysisDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator)
     : base(new CorePointsToAnalysisDataDomain(defaultPointsToValueGenerator, PointsToAbstractValueDomainInstance))
 {
 }
Exemple #3
0
 public CorePointsToAnalysisDataDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator, AbstractValueDomain <PointsToAbstractValue> valueDomain)
     : base(valueDomain, defaultPointsToValueGenerator.IsTrackedEntity, defaultPointsToValueGenerator.IsTrackedPointsToValue)
 {
     DefaultPointsToValueGenerator = defaultPointsToValueGenerator;
 }
Exemple #4
0
 public CorePointsToAnalysisDataDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator, AbstractValueDomain <PointsToAbstractValue> valueDomain)
     : base(valueDomain)
 {
     DefaultPointsToValueGenerator = defaultPointsToValueGenerator;
 }