if (RHSDimension != LHSDimension) return false; VM_Type RHSInnermostElementType = RHSType.asArray().getInnermostElementType(); if (RHSInnermostElementType.isPrimitiveType()) return false; return instanceOfNonArray(LHSInnermostElementType.asClass(), RHSInnermostElementType.getTypeInformationBlock());
if (RHSDimension == LHSDimension) { VM_Type RHSInnermostElementType = RHSType.asArray().getInnermostElementType(); if (RHSInnermostElementType.isPrimitiveType()) return false; return instanceOfNonArray(LHSInnermostElementType.asClass(), RHSInnermostElementType.getTypeInformationBlock()); } else {    return (LHSDimension < RHSDimension && (LHSInnermostElementType == VM_Type.JavaLangCloneableType || LHSInnermostElementType == VM_Type.JavaIoSerializableType)); }
  public static boolean instanceOfResolved(VM_Type LHSType, VM_Type RHSType) {    int LHSDimension = LHSType.getDimensionality();    int RHSDimension = RHSType.getDimensionality();    if (LHSDimension < 0 || RHSDimension < 0) return false;    if (LHSDimension == 0) return instanceOfNonArray(LHSType.asClass(),                                                      RHSType.getTypeInformationBlock());    VM_Type LHSInnermostElementType = LHSType.asArray().getInnermostElementType();    if (LHSInnermostElementType == VM_Type.JavaLangObjectType){      if (RHSDimension < LHSDimension) return false;      if (RHSDimension > LHSDimension) return true;      return RHSType.asArray().getInnermostElementType().isClassType(); // !primitive     } else if (!LHSInnermostElementType.isPrimitiveType()) {      if (RHSDimension != LHSDimension) return false;      VM_Type RHSInnermostElementType = RHSType.asArray().getInnermostElementType();      if (RHSInnermostElementType.isPrimitiveType()) return false;      return instanceOfNonArray(LHSInnermostElementType.asClass(),                                 RHSInnermostElementType.getTypeInformationBlock());    } else {      return false;    }  }