public GenericValueAnalysisCacher( ExpressionCacheMode expCachingMode, IExpressionContext <Local, Parameter, Method, Field, Type, Expression, Variable> context, IFullExpressionDecoder <Type, Variable, Expression> decoder ) { this.ExpCachingMode = expCachingMode; this.Context = context; this.Decoder = decoder; }
public ToBoxedExpressionConverter( ExpressionCacheMode mode, IExpressionContext <Local, Parameter, Method, Field, Type, Expression, Variable> context, IFullExpressionDecoder <Type, Variable, Expression> outdecoder) { Contract.Requires(context != null); this.cachingMode = mode; this.context = context.ExpressionContext; this.outdecoder = outdecoder; if (mode == ExpressionCacheMode.Mem) { this.weakrefMap = new Dictionary <Pair <APC, Variable>, WeakReference>(); Contract.Assert((this.weakrefMap != null) == (this.fullMap == null), "Help the WP of Clousot prove the invariant"); } else if (mode == ExpressionCacheMode.Time) { this.fullMap = new Dictionary <Pair <APC, Variable>, BoxedExpression>(); } }