if (VM.VerifyAssertions) VM.assert(id <= 0xFFFF);
if (VM.VerifyAssertions) VM._assert(id <= 0xFFFF);
  static short[] buildSuperclassIds(VM_Type t) {    int depth   = t.getTypeDepth();    int size    = MIN_SUPERCLASS_IDS_SIZE <= depth ? depth+1 : MIN_SUPERCLASS_IDS_SIZE;    short[] tsi = new short[size];    VM_Type p;                              if (depth == 0) {        // t is Object (or eventually some interfaces TODO!!)      int id = t.getDictionaryId();      if (VM.VerifyAssertions) VM.assert(id <= 0xFFFF); // when this fails, make superclassIds int[]       tsi[0] = (short) id;      return tsi;    } else if (depth == 1) { // t is array or top level class      if (VM.VerifyAssertions) VM.assert(t.isArrayType() || t.asClass().getSuperClass() == VM_Type.JavaLangObjectType);      p = VM_Type.JavaLangObjectType; //  TODO!! handle interfaces better    } else if (1 < depth) {  // t is a non Object, non top level class      p = t.asClass().getSuperClass();    } else {                 // t is a primitive      VM.assert(VM.NOT_REACHED);      p = null;    }    short[] psi = p.getSuperclassIds();    for (int i=0; i<depth; i++) {      tsi[i] = psi[i];    }    int id = t.getDictionaryId();    if (VM.VerifyAssertions) VM.assert(id <= 0xFFFF); // when this fails, make superclassIds int[]     tsi[depth] = (short) id;    return tsi;  }