Example #1
0
 private static Type[] join(Type[] env1, Type[] env2) {
   if (env1 == null) {
     return env2;
   } else if (env2 == null) {
     return env1;
   }
   Type[] result = new Type[env1.length];
   for (int i = 0; i != env1.length; ++i) {
     Type t1 = env1[i];
     Type t2 = env2[i];
     if (t1 == null && t2 == null) {
       result[i] = null;
     } else if (t1 == null) {
       result[i] = t2;
     } else if (t2 == null) {
       result[i] = t1;
     } else {
       result[i] = Type.Union(t1, t2);
     }
   }
   return result;
 }