public bool LookupState(IMethodResult <Variable> mr, APC pc, out SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate) { astate = null; ContainerAnalysis an = mr as ContainerAnalysis; if (an == null) { return(false); } return(an.PreStateLookup(pc, out astate)); }
public bool AssignInParallel(IMethodResult <Variable> mr, ref SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate, Dictionary <BoxedVariable <Variable>, FList <BoxedVariable <Variable> > > mapping, Converter <BoxedVariable <Variable>, BoxedExpression> convert) { ContainerAnalysis an = mr as ContainerAnalysis; if (an == null) { return(false); } astate.AssignInParallel(mapping, convert); return(true); }
public SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> Join(IMethodResult <Variable> mr, SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate1, SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate2) { ContainerAnalysis an = mr as ContainerAnalysis; if (an == null) { return(null); } bool bWeaker; return(an.Join(new Pair <APC, APC>(), astate1, astate2, out bWeaker, false)); }
public List <BoxedExpression> ExtractAssertions( IMethodResult <Variable> mr, SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate, IExpressionContext <APC, Local, Parameter, Method, Field, Type, ExternalExpression, Variable> context, IDecodeMetaData <Local, Parameter, Method, Field, Property, Type, Attribute, Assembly> metaDataDecoder) { ContainerAnalysis an = mr as ContainerAnalysis; if (an == null) { return(null); } BoxedExpressionReader <APC, Local, Parameter, Method, Field, Property, Type, Variable, ExternalExpression, Attribute, Assembly> br = new BoxedExpressionReader <APC, Local, Parameter, Method, Field, Property, Type, Variable, ExternalExpression, Attribute, Assembly>(context, metaDataDecoder); return(an.ToListOfBoxedExpressions(astate, br)); }