コード例 #1
0
        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);
        }
コード例 #2
0
        public static bool EnsuresExposable(Method m, Parameter p)
        {
            ContractConsistencyInfo ei = ComputeExposureForMethod(m);

            return(ei.EnsuresExposable(p));
        }
コード例 #3
0
 public bool MethodEnsuresExposable(Method m, Parameter p)
 {
     return(ContractConsistencyInfo.EnsuresExposable(m, p));
 }
コード例 #4
0
        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;
        }