protected DataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, ISymbol owningSymbol, bool pessimisticAnalysis, DataFlowAnalysisResult <NullBlockAnalysisResult, NullAbstractValue> nullAnalysisResultOpt, DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt) { Debug.Assert(owningSymbol != null); Debug.Assert(owningSymbol.Kind == SymbolKind.Method || owningSymbol.Kind == SymbolKind.Field || owningSymbol.Kind == SymbolKind.Property || owningSymbol.Kind == SymbolKind.Event); ValueDomain = valueDomain; OwningSymbol = owningSymbol; PessimisticAnalysis = pessimisticAnalysis; _nullAnalysisResultOpt = nullAnalysisResultOpt; _pointsToAnalysisResultOpt = pointsToAnalysisResultOpt; _valueCacheBuilder = ImmutableDictionary.CreateBuilder <IOperation, TAbstractAnalysisValue>(); _pendingArgumentsToReset = new List <IArgumentOperation>(); ThisOrMePointsToAbstractValue = GetThisOrMeInstancePointsToValue(owningSymbol.ContainingType); AnalysisEntityFactory = new AnalysisEntityFactory( (pointsToAnalysisResultOpt != null || IsPointsToAnalysis) ? GetPointsToAbstractValue : (Func <IOperation, PointsToAbstractValue>)null, owningSymbol.ContainingType); }
protected AbstractLocationDataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, INamedTypeSymbol containingTypeSymbol, DataFlowAnalysisResult <NullAnalysis.NullBlockAnalysisResult, NullAnalysis.NullAbstractValue> nullAnalysisResultOpt, DataFlowAnalysisResult <PointsToAnalysis.PointsToBlockAnalysisResult, PointsToAnalysis.PointsToAbstractValue> pointsToAnalysisResultOpt) : base(valueDomain, containingTypeSymbol, nullAnalysisResultOpt, pointsToAnalysisResultOpt) { }
protected AnalysisEntityDataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, ISymbol owningSymbol, bool pessimisticAnalysis, DataFlowAnalysisResult <NullBlockAnalysisResult, NullAbstractValue> nullAnalysisResultOpt, DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt) : base(valueDomain, owningSymbol, pessimisticAnalysis, nullAnalysisResultOpt, pointsToAnalysisResultOpt) { }
protected AnalysisEntityDataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, ISymbol owningSymbol, WellKnownTypeProvider wellKnownTypeProvider, bool pessimisticAnalysis, bool predicateAnalysis, DataFlowAnalysisResult <CopyBlockAnalysisResult, CopyAbstractValue> copyAnalysisResultOpt, DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt) : base(valueDomain, owningSymbol, wellKnownTypeProvider, pessimisticAnalysis, predicateAnalysis, copyAnalysisResultOpt, pointsToAnalysisResultOpt) { }
protected DataFlowOperationVisitor( AbstractValueDomain <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); }
protected AnalysisEntityDataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, INamedTypeSymbol containingTypeSymbol, DataFlowAnalysisResult <NullBlockAnalysisResult, NullAbstractValue> nullAnalysisResultOpt, DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt) : base(valueDomain, containingTypeSymbol, nullAnalysisResultOpt, pointsToAnalysisResultOpt) { AnalysisEntityFactory = new AnalysisEntityFactory( (pointsToAnalysisResultOpt != null || IsPointsToAnalysis) ? GetPointsToAbstractValue : (Func <IOperation, PointsToAbstractValue>)null, containingTypeSymbol); }
protected AbstractLocationDataFlowOperationVisitor( AbstractValueDomain <TAbstractAnalysisValue> valueDomain, ISymbol owningSymbol, WellKnownTypeProvider wellKnownTypeProvider, bool pessimisticAnalysis, bool predicateAnalysis, DataFlowAnalysisResult <NullAnalysis.NullBlockAnalysisResult, NullAnalysis.NullAbstractValue> nullAnalysisResultOpt, DataFlowAnalysisResult <CopyAnalysis.CopyBlockAnalysisResult, CopyAnalysis.CopyAbstractValue> copyAnalysisResultOpt, DataFlowAnalysisResult <PointsToBlockAnalysisResult, PointsToAbstractValue> pointsToAnalysisResultOpt) : base(valueDomain, owningSymbol, wellKnownTypeProvider, pessimisticAnalysis, predicateAnalysis, nullAnalysisResultOpt, copyAnalysisResultOpt, pointsToAnalysisResultOpt) { Debug.Assert(pointsToAnalysisResultOpt != null); }
public AnalysisEntityMapAbstractDomain(AbstractValueDomain <TValue> valueDomain) : base(valueDomain) { }
protected AnalysisEntityMapAbstractDomain(AbstractValueDomain <TValue> valueDomain) : base(valueDomain) { }
public MapAbstractDomain(AbstractValueDomain <TValue> valueDomain) { ValueDomain = valueDomain; }