code: int getMergedType(final int type1, final int type2) {
          key2.type = TYPE_MERGED;
          key2.longVal = type1 | (((long) type2) << 32);
          key2.hashCode = 0x7FFFFFFF & (TYPE_MERGED + type1 + type2);
          Item result = get(key2);
          if (result == null) {
              String t = typeTable[type1].strVal1;
              String u = typeTable[type2].strVal1;
              key2.intVal = addType(getCommonSuperClass(t, u));
              result = new Item((short) 0, key2);
              put(result);
          }
          return result.intVal;
      }
docs: Returns the index of the common super type of the two given types. This
  method calls {@link #getCommonSuperClass} and caches the result in the
  {@link #items} hash table to speedup future calls with the same
  parameters.
  
  @param type1
  index of an internal name in {@link #typeTable}.
  @param type2
  index of an internal name in {@link #typeTable}.
  @return the index of the common super type of the two given types.