Mercurial > hg > graal-compiler
comparison graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java @ 19800:3362ba500371
Connect required Assumptions with answer to CHA query
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 11 Mar 2015 17:32:04 -0700 |
parents | 3fc907b46313 |
children | deab43a789ad |
comparison
equal
deleted
inserted
replaced
19799:00c4aa355659 | 19800:3362ba500371 |
---|---|
23 package com.oracle.graal.api.meta; | 23 package com.oracle.graal.api.meta; |
24 | 24 |
25 import java.lang.annotation.*; | 25 import java.lang.annotation.*; |
26 import java.net.*; | 26 import java.net.*; |
27 | 27 |
28 import com.oracle.graal.api.meta.Assumptions.AssumptionResult; | |
29 | |
28 /** | 30 /** |
29 * Represents a resolved Java type. Types include primitives, objects, {@code void}, and arrays | 31 * Represents a resolved Java type. Types include primitives, objects, {@code void}, and arrays |
30 * thereof. Types, like fields and methods, are resolved through {@link ConstantPool constant pools} | 32 * thereof. Types, like fields and methods, are resolved through {@link ConstantPool constant pools} |
31 * . | 33 * . |
32 */ | 34 */ |
54 * Checks whether this type has any finalizable subclasses so far. Any decisions based on this | 56 * Checks whether this type has any finalizable subclasses so far. Any decisions based on this |
55 * information require the registration of a dependency, since this information may change. | 57 * information require the registration of a dependency, since this information may change. |
56 * | 58 * |
57 * @return {@code true} if this class has any subclasses with finalizers | 59 * @return {@code true} if this class has any subclasses with finalizers |
58 */ | 60 */ |
59 boolean hasFinalizableSubclass(); | 61 AssumptionResult<Boolean> hasFinalizableSubclass(); |
60 | 62 |
61 /** | 63 /** |
62 * Checks whether this type is an interface. | 64 * Checks whether this type is an interface. |
63 * | 65 * |
64 * @return {@code true} if this type is an interface | 66 * @return {@code true} if this type is an interface |
200 * If the compiler uses the result of this method for its compilation, it must register an | 202 * If the compiler uses the result of this method for its compilation, it must register an |
201 * assumption because dynamic class loading can invalidate the result of this method. | 203 * assumption because dynamic class loading can invalidate the result of this method. |
202 * | 204 * |
203 * @return the unique concrete subclass for this type as described above | 205 * @return the unique concrete subclass for this type as described above |
204 */ | 206 */ |
205 ResolvedJavaType findUniqueConcreteSubtype(); | 207 AssumptionResult<ResolvedJavaType> findUniqueConcreteSubtype(); |
206 | 208 |
207 ResolvedJavaType getComponentType(); | 209 ResolvedJavaType getComponentType(); |
208 | 210 |
209 default ResolvedJavaType getElementalType() { | 211 default ResolvedJavaType getElementalType() { |
210 ResolvedJavaType t = this; | 212 ResolvedJavaType t = this; |
255 * | 257 * |
256 * @param method the method A for which a unique concrete target is searched | 258 * @param method the method A for which a unique concrete target is searched |
257 * @return the unique concrete target or {@code null} if no such target exists or assumptions | 259 * @return the unique concrete target or {@code null} if no such target exists or assumptions |
258 * are not supported by this runtime | 260 * are not supported by this runtime |
259 */ | 261 */ |
260 ResolvedJavaMethod findUniqueConcreteMethod(ResolvedJavaMethod method); | 262 AssumptionResult<ResolvedJavaMethod> findUniqueConcreteMethod(ResolvedJavaMethod method); |
261 | 263 |
262 /** | 264 /** |
263 * Returns the instance fields of this class, including | 265 * Returns the instance fields of this class, including |
264 * {@linkplain ResolvedJavaField#isInternal() internal} fields. A zero-length array is returned | 266 * {@linkplain ResolvedJavaField#isInternal() internal} fields. A zero-length array is returned |
265 * for array and primitive types. The order of fields returned by this method is stable. That | 267 * for array and primitive types. The order of fields returned by this method is stable. That |