protected DataFlowOperationVisitor(
     AbstractDomain <TAbstractAnalysisValue> valueDomain,
     INamedTypeSymbol containingTypeSymbol,
     DataFlowAnalysisResult <NullBlockAnalysisResult, NullAbstractValue> nullAnalysisResultOpt,
     DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt)
 {
     ValueDomain                   = valueDomain;
     _nullAnalysisResultOpt        = nullAnalysisResultOpt;
     _pointsToAnalysisResultOpt    = pointsToAnalysisResultOpt;
     _valueCacheBuilder            = ImmutableDictionary.CreateBuilder <IOperation, TAbstractAnalysisValue>();
     _pendingArgumentsToReset      = new List <IArgumentOperation>();
     ThisOrMePointsToAbstractValue = GetThisOrMeInstancePointsToValue(containingTypeSymbol);
     AnalysisEntityFactory         = new AnalysisEntityFactory(
         HasPointsToAnalysisResult ? GetPointsToAbstractValue : (Func <IOperation, PointsToAbstractValue>)null,
         containingTypeSymbol);
 }
 public MapAbstractDomain(AbstractDomain <TValue> valueDomain)
 {
     _valueDomain = valueDomain;
 }
 protected BackwardDataFlowAnalysis(AbstractDomain <TAnalysisData> analysisDomain, DataFlowOperationVisitor <TAnalysisData, TAbstractAnalysisValue> operationVisitor)
     : base(analysisDomain, operationVisitor)
 {
 }
 protected DataFlowOperationVisitor(AbstractDomain <TAbstractAnalysisValue> valueDomain, DataFlowAnalysisResult <NullBlockAnalysisResult, NullAbstractValue> nullAnalysisResultOpt)
 {
     ValueDomain            = valueDomain;
     _nullAnalysisResultOpt = nullAnalysisResultOpt;
     _valueCacheBuilder     = ImmutableDictionary.CreateBuilder <IOperation, TAbstractAnalysisValue>();
 }
 protected DataFlowAnalysis(AbstractDomain <TAnalysisData> analysisDomain, DataFlowOperationVisitor <TAnalysisData, TAbstractAnalysisValue> operationVisitor)
 {
     AnalysisDomain   = analysisDomain;
     OperationVisitor = operationVisitor;
 }