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("}"); }
// ------------------------------------------------------------------ // 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(); } }
// ------------------------------------------------------------------ // 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; }