205 ciType* array_type = array()->declared_type();
206 if (array_type == NULL || !array_type->is_loaded()) {
207 return NULL;
208 }
209 assert(array_type->is_array_klass(), "what else?");
210 ciArrayKlass* ak = (ciArrayKlass*)array_type;
211 return ak->element_type();
212 }
213
214
215 ciType* LoadField::declared_type() const {
216 return field()->type();
217 }
218
219
220 ciType* NewTypeArray::exact_type() const {
221 return ciTypeArrayKlass::make(elt_type());
222 }
223
224 ciType* NewObjectArray::exact_type() const {
225 return ciObjArrayKlass::make(klass());
226 }
227
228 ciType* NewArray::declared_type() const {
229 return exact_type();
230 }
231
232 ciType* NewInstance::exact_type() const {
233 return klass();
234 }
235
236 ciType* NewInstance::declared_type() const {
237 return exact_type();
238 }
239
240 Value NewValueTypeInstance::depends_on() {
241 if (_depends_on != this) {
242 if (_depends_on->as_NewValueTypeInstance() != NULL) {
243 return _depends_on->as_NewValueTypeInstance()->depends_on();
244 }
245 }
|
205 ciType* array_type = array()->declared_type();
206 if (array_type == NULL || !array_type->is_loaded()) {
207 return NULL;
208 }
209 assert(array_type->is_array_klass(), "what else?");
210 ciArrayKlass* ak = (ciArrayKlass*)array_type;
211 return ak->element_type();
212 }
213
214
215 ciType* LoadField::declared_type() const {
216 return field()->type();
217 }
218
219
220 ciType* NewTypeArray::exact_type() const {
221 return ciTypeArrayKlass::make(elt_type());
222 }
223
224 ciType* NewObjectArray::exact_type() const {
225 ciKlass* element_klass = klass();
226 if (element_klass->is_valuetype()) {
227 return ciValueArrayKlass::make(element_klass);
228 } else {
229 return ciObjArrayKlass::make(element_klass);
230 }
231 }
232
233 ciType* NewArray::declared_type() const {
234 return exact_type();
235 }
236
237 ciType* NewInstance::exact_type() const {
238 return klass();
239 }
240
241 ciType* NewInstance::declared_type() const {
242 return exact_type();
243 }
244
245 Value NewValueTypeInstance::depends_on() {
246 if (_depends_on != this) {
247 if (_depends_on->as_NewValueTypeInstance() != NULL) {
248 return _depends_on->as_NewValueTypeInstance()->depends_on();
249 }
250 }
|