public CatTypeVector CatTypeVectorFromVec(Vector vec)
        {
            CatTypeVector ret = new CatTypeVector();

            foreach (Constraint c in vec)
            {
                ret.PushKindBottom(ConstraintToCatKind(c));
            }
            return(ret);
        }
Beispiel #2
0
        public virtual CatFxnType AddImplicitRhoVariables()
        {
            CatTypeVector cons = AddImplicitRhoVariables(GetCons());
            CatTypeVector prod = AddImplicitRhoVariables(GetProd());

            if (!(cons.GetBottom() is CatStackVar))
            {
                CatStackVar rho = CatStackVar.CreateUnique();
                cons.PushKindBottom(rho);
                prod.PushKindBottom(rho);
            }

            return(new CatFxnType(cons, prod, HasSideEffects()));
        }