private static ContractConsistencyInfo ComputeExposureForMethod(Method m) { ContractConsistencyInfo ei = null; if (!cache.ContainsKey(m)) { ei = new ContractConsistencyInfo(); MethodContract contract = m.Contract; if (!m.ApplyDefaultContract && !m.IsPropertyGetter) { ei.Init(m, ei.requiresExposable, false); ei.Init(m, ei.ensuresExposable, false); ContractVisitor requiresVisitor = new ContractVisitor(ei.requiresExposable, m); // requiresVisitor.VisitMethodContract(contract); requiresVisitor.VisitRequiresList(contract.Requires); ContractVisitor ensuresVisitor = new ContractVisitor(ei.ensuresExposable, m); ensuresVisitor.VisitEnsuresList(contract.Ensures); } else { ei.Init(m, ei.requiresExposable, true); ei.Init(m, ei.ensuresExposable, true); } } else { ei = cache[m]; } return(ei); }
public static bool EnsuresExposable(Method m, Parameter p) { ContractConsistencyInfo ei = ComputeExposureForMethod(m); return(ei.EnsuresExposable(p)); }
public bool MethodEnsuresExposable(Method m, Parameter p) { return(ContractConsistencyInfo.EnsuresExposable(m, p)); }
private static ContractConsistencyInfo ComputeExposureForMethod(Method m) { ContractConsistencyInfo ei = null; if (!cache.ContainsKey(m)) { ei = new ContractConsistencyInfo(); MethodContract contract = m.Contract; if (!m.ApplyDefaultContract && !m.IsPropertyGetter) { ei.Init(m, ei.requiresExposable, false); ei.Init(m, ei.ensuresExposable, false); ContractVisitor requiresVisitor = new ContractVisitor(ei.requiresExposable, m); // requiresVisitor.VisitMethodContract(contract); requiresVisitor.VisitRequiresList(contract.Requires); ContractVisitor ensuresVisitor = new ContractVisitor(ei.ensuresExposable, m); ensuresVisitor.VisitEnsuresList(contract.Ensures); } else { ei.Init(m, ei.requiresExposable, true); ei.Init(m, ei.ensuresExposable, true); } } else { ei = cache[m]; } return ei; }