public CallGraphOrder( bool constructorsFirst, IDecodeMetaData <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> md, IDecodeContracts <Local, Parameter, Method, Field, Type> cd, Set <string> underAnalysis, FieldsDB <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> fieldsDB, CancellationToken cancellationToken) : base(md, cd, fieldsDB) { this.constructorsFirst = constructorsFirst; this.callGraph = new SingleEdgeGraph <Node, Unit>(null, new Node.EqualityComparer(md)); this.assembliesUnderAnalysis = underAnalysis; this.contractConsumer = new ContractConsumer(this); this.cancellationToken = cancellationToken; }
public Result AccessEnsures <Data, Result> (Method method, ICodeConsumer <Data, Result> consumer, Data data) { method = GetMethodWithContractFor(method); return(consumer.Accept(CodeProviderImpl.Instance, new CodeProviderImpl.PC(method.MethodContract, method.MethodContract.RequiresCount + 2), data)); }