public override ValueContentAnalysisContext ForkForInterproceduralAnalysis(
     IMethodSymbol invokedMethod,
     ControlFlowGraph invokedControlFlowGraph,
     IOperation operation,
     PointsToAnalysisResult pointsToAnalysisResultOpt,
     CopyAnalysisResult copyAnalysisResultOpt,
     InterproceduralValueContentAnalysisData interproceduralAnalysisData)
 {
     return(new ValueContentAnalysisContext(ValueDomain, WellKnownTypeProvider, invokedControlFlowGraph, invokedMethod, InterproceduralAnalysisConfiguration,
                                            PessimisticAnalysis, copyAnalysisResultOpt, pointsToAnalysisResultOpt, GetOrComputeAnalysisResult, ControlFlowGraph, interproceduralAnalysisData,
                                            InterproceduralAnalysisPredicateOpt));
 }
 private ValueContentAnalysisContext(
     AbstractValueDomain <ValueContentAbstractValue> valueDomain,
     WellKnownTypeProvider wellKnownTypeProvider,
     ControlFlowGraph controlFlowGraph,
     ISymbol owningSymbol,
     InterproceduralAnalysisConfiguration interproceduralAnalysisConfig,
     bool pessimisticAnalysis,
     CopyAnalysisResult copyAnalysisResultOpt,
     PointsToAnalysisResult pointsToAnalysisResultOpt,
     Func <ValueContentAnalysisContext, ValueContentAnalysisResult> tryGetOrComputeAnalysisResult,
     ControlFlowGraph parentControlFlowGraphOpt,
     InterproceduralValueContentAnalysisData interproceduralAnalysisDataOpt,
     InterproceduralAnalysisPredicate interproceduralAnalysisPredicateOpt)
     : base(valueDomain, wellKnownTypeProvider, controlFlowGraph, owningSymbol, interproceduralAnalysisConfig,
            pessimisticAnalysis, predicateAnalysis: true, exceptionPathsAnalysis: false, copyAnalysisResultOpt,
            pointsToAnalysisResultOpt, valueContentAnalysisResultOpt: null, tryGetOrComputeAnalysisResult, parentControlFlowGraphOpt,
            interproceduralAnalysisDataOpt, interproceduralAnalysisPredicateOpt)
 {
 }