Exemplo n.º 1
0
        public static CatFxnType RenameFreeVars(CatFxnType left, CatFxnType right, CatFxnType ft)
        {
            CatTypeVarList vars = ft.GetAllVars();

            foreach (string s in vars.Keys)
            {
                CatKind k = vars[s];
                if (IsFreeVar(k, left, right, ft))
                {
                    if (k is CatTypeVar)
                    {
                        vars[s] = CatTypeVar.CreateUnique();
                    }
                    else
                    {
                        vars[s] = CatStackVar.CreateUnique();
                    }
                }
            }
            return(RenameVars(ft, vars));
        }
Exemplo n.º 2
0
 public static CatFxnType RenameFreeVars(CatFxnType left, CatFxnType right, CatFxnType ft)
 {
     CatTypeVarList vars = ft.GetAllVars();
     foreach (string s in vars.Keys)
     {
         CatKind k = vars[s];
         if (IsFreeVar(k, left, right, ft))
         {
             if (k is CatTypeVar)
                 vars[s] = CatTypeVar.CreateUnique();
             else
                 vars[s] = CatStackVar.CreateUnique();
         }
     }
     return RenameVars(ft, vars);
 }