private static PointsToAnalysisResult GetOrComputeResultForAnalysisContext(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.GetOrComputeResultCore(analysisContext, cacheResult: true));
     }
 }