示例#1
0
  public static int compare(Typing a, Typing b, IHierarchy h) {
    int r = 0;
    for (Local v : a.map.keySet()) {
      Type ta = a.get(v), tb = b.get(v);

      int cmp;
      if (TypeResolver.typesEqual(ta, tb)) cmp = 0;
      if (h.ancestor(ta, tb)) cmp = 1;
      else if (h.ancestor(tb, ta)) cmp = -1;
      else return -2;

      if ((cmp == 1 && r == -1) || (cmp == -1 && r == 1)) return 2;
      if (r == 0) r = cmp;
    }
    return r;
  }