void TypeArrayKlass::print_on(outputStream* st) const {
#ifndef PRODUCT
    assert(is_klass(), "must be klass");
    print_value_on(st);
    Klass::print_on(st);
#endif //PRODUCT
}
void TypeArrayKlass::print_value_on(outputStream* st) const {
    assert(is_klass(), "must be klass");
    st->print("{type array ");
    switch (element_type()) {
    case T_BOOLEAN:
        st->print("bool");
        break;
    case T_CHAR:
        st->print("char");
        break;
    case T_FLOAT:
        st->print("float");
        break;
    case T_DOUBLE:
        st->print("double");
        break;
    case T_BYTE:
        st->print("byte");
        break;
    case T_SHORT:
        st->print("short");
        break;
    case T_INT:
        st->print("int");
        break;
    case T_LONG:
        st->print("long");
        break;
    default:
        ShouldNotReachHere();
    }
    st->print("}");
}
Exemple #3
0
// ------------------------------------------------------------------
// ciType::name
//
// Return the name of this type
const char* ciType::name() {
  if (is_primitive_type()) {
    return type2name(basic_type());
  } else {
    assert(is_klass(), "must be");
    return as_klass()->name()->as_utf8();
  }
}
Exemple #4
0
// ------------------------------------------------------------------
// ciType::is_subtype_of
//
bool ciType::is_subtype_of(ciType* type) {
  if (this == type)  return true;
  if (is_klass() && type->is_klass())
    return this->as_klass()->is_subtype_of(type->as_klass());
  return false;
}
 ciKlass*                 as_klass() {
   assert(is_klass(), "bad cast");
   return (ciKlass*)this;
 }