public class SubstrateType extends com.oracle.truffle.api.nodes.NodeClass implements SharedType, Replaced
| Modifier and Type | Field and Description |
|---|---|
protected static SubstrateType[] |
EMPTY_ARRAY |
protected DynamicHub |
uniqueConcreteImplementation |
| Constructor and Description |
|---|
SubstrateType(jdk.vm.ci.meta.JavaKind kind,
DynamicHub hub) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj) |
jdk.vm.ci.meta.ResolvedJavaField |
findInstanceFieldWithOffset(long offset,
jdk.vm.ci.meta.JavaKind expectedKind) |
jdk.vm.ci.meta.Assumptions.AssumptionResult<jdk.vm.ci.meta.ResolvedJavaType> |
findLeafConcreteSubtype() |
jdk.vm.ci.meta.ResolvedJavaType |
findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType) |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass) |
Annotation[] |
getAnnotations() |
jdk.vm.ci.meta.ResolvedJavaType |
getArrayClass() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getChildFields() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getChildrenFields() |
jdk.vm.ci.meta.ResolvedJavaMethod |
getClassInitializer() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getCloneableFields() |
jdk.vm.ci.meta.ResolvedJavaType |
getComponentType() |
Annotation[] |
getDeclaredAnnotations() |
jdk.vm.ci.meta.ResolvedJavaMethod[] |
getDeclaredConstructors() |
jdk.vm.ci.meta.ResolvedJavaMethod[] |
getDeclaredMethods() |
jdk.vm.ci.meta.ResolvedJavaType |
getEnclosingType() |
String |
getFieldName(Object field) |
Object |
getFieldObject(Object field,
com.oracle.truffle.api.nodes.Node receiver) |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getFields() |
Class<?> |
getFieldType(Object field) |
Object |
getFieldValue(Object field,
com.oracle.truffle.api.nodes.Node node) |
jdk.vm.ci.meta.ResolvedJavaType |
getHostClass() |
DynamicHub |
getHub() |
int |
getInstanceFieldCount() |
SubstrateField[] |
getInstanceFields(boolean includeSuperclasses) |
int |
getInstanceOfFromTypeID()
Gets the start of the type-ID range for instance-of checks.
|
int |
getInstanceOfNumTypeIDs()
Returns the size of the type-ID range for instance-of checks.
|
jdk.vm.ci.meta.ResolvedJavaType[] |
getInterfaces() |
jdk.vm.ci.meta.JavaKind |
getJavaKind() |
int |
getModifiers() |
String |
getName() |
com.oracle.truffle.api.nodes.NodeFieldAccessor |
getNodeClassField() |
protected Iterable<SubstrateField> |
getNodeFields() |
com.oracle.truffle.api.nodes.NodeFieldAccessor |
getParentField() |
Object |
getRawAllInstanceFields() |
jdk.vm.ci.meta.ResolvedJavaType |
getSingleImplementor() |
String |
getSourceFileName() |
jdk.vm.ci.meta.ResolvedJavaField[] |
getStaticFields() |
jdk.vm.ci.meta.JavaKind |
getStorageKind()
The kind of the field in memory (in contrast to
SubstrateType.getJavaKind(), which is the kind of
the field on the Java type system level). |
SubstrateType |
getSuperclass() |
Class<? extends com.oracle.truffle.api.nodes.Node> |
getType() |
jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> |
hasFinalizableSubclass() |
boolean |
hasFinalizer() |
int |
hashCode() |
void |
initialize() |
boolean |
isArray() |
boolean |
isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other) |
boolean |
isChildField(Object field) |
boolean |
isChildrenField(Object field) |
boolean |
isCloneableField(Object field) |
boolean |
isCloneableWithAllocation() |
boolean |
isEnum() |
boolean |
isInitialized() |
boolean |
isInstance(jdk.vm.ci.meta.JavaConstant obj) |
boolean |
isInstanceClass() |
boolean |
isInterface() |
boolean |
isJavaLangObject() |
boolean |
isLinked() |
boolean |
isLocal() |
boolean |
isMember() |
boolean |
isPrimitive() |
Iterator<com.oracle.truffle.api.nodes.Node> |
makeIterator(com.oracle.truffle.api.nodes.Node node) |
void |
putFieldObject(Object field,
com.oracle.truffle.api.nodes.Node receiver,
Object value) |
jdk.vm.ci.meta.ResolvedJavaType |
resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass) |
void |
setRawAllInstanceFields(SubstrateField[] allInstanceFields) |
void |
setTypeCheckData(int instanceOfFromTypeID,
int instanceOfNumTypeIDs,
DynamicHub uniqueConcreteImplementation) |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitfindUniqueConcreteMethod, resolveConcreteMethod, resolveMethodfindMethod, getElementalType, isLeaf, lookupType, resolveFieldgetUnqualifiedName, toClassName, toJavaName, toJavaNameisAbstract, isConcrete, isFinalFlagSet, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatilegetAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresentprotected static final SubstrateType[] EMPTY_ARRAY
protected DynamicHub uniqueConcreteImplementation
public SubstrateType(jdk.vm.ci.meta.JavaKind kind,
DynamicHub hub)
public void setRawAllInstanceFields(SubstrateField[] allInstanceFields)
public Object getRawAllInstanceFields()
public void setTypeCheckData(int instanceOfFromTypeID,
int instanceOfNumTypeIDs,
DynamicHub uniqueConcreteImplementation)
public final jdk.vm.ci.meta.JavaKind getStorageKind()
SubstrateType.getJavaKind(), which is the kind of
the field on the Java type system level). For example word types have a
SubstrateType.getJavaKind() of JavaKind.Object, but a primitive SubstrateType.getStorageKind().getStorageKind in interface SharedTypepublic DynamicHub getHub()
getHub in interface SharedTypepublic int getInstanceOfFromTypeID()
SharedType
Now if there is not a single type-ID range to be used for the check (e.g. for interface
types), then the instance-of check must be done with a bit test. In this case
SharedType.getInstanceOfNumTypeIDs() return -1 and this method returns the bit number to check
in the bit-set of the object's DynamicHub.
getInstanceOfFromTypeID in interface SharedTypepublic int getInstanceOfNumTypeIDs()
SharedTypeSharedType.getInstanceOfFromTypeID() returns the bit numbergetInstanceOfNumTypeIDs in interface SharedTypeSharedType.getInstanceOfFromTypeID()public String getName()
getName in interface jdk.vm.ci.meta.JavaTypepublic jdk.vm.ci.meta.JavaKind getJavaKind()
getJavaKind in interface jdk.vm.ci.meta.JavaTypepublic jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass)
resolve in interface jdk.vm.ci.meta.JavaTypepublic boolean hasFinalizer()
hasFinalizer in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> hasFinalizableSubclass()
hasFinalizableSubclass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isInterface()
isInterface in interface jdk.vm.ci.meta.ModifiersProviderisInterface in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isInstanceClass()
isInstanceClass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isArray()
isArray in interface jdk.vm.ci.meta.JavaTypepublic boolean isPrimitive()
isPrimitive in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isEnum()
isEnum in interface jdk.vm.ci.meta.ResolvedJavaTypepublic int getModifiers()
getModifiers in interface jdk.vm.ci.meta.ModifiersProviderpublic boolean isInitialized()
isInitialized in interface jdk.vm.ci.meta.ResolvedJavaTypepublic void initialize()
initialize in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other)
isAssignableFrom in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isInstance(jdk.vm.ci.meta.JavaConstant obj)
isInstance in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.Assumptions.AssumptionResult<jdk.vm.ci.meta.ResolvedJavaType> findLeafConcreteSubtype()
findLeafConcreteSubtype in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getSingleImplementor()
getSingleImplementor in interface jdk.vm.ci.meta.ResolvedJavaTypepublic SubstrateType getSuperclass()
getSuperclass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType[] getInterfaces()
getInterfaces in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType)
findLeastCommonAncestor in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isJavaLangObject()
isJavaLangObject in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getComponentType()
getComponentType in interface jdk.vm.ci.meta.JavaTypegetComponentType in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getArrayClass()
getArrayClass in interface jdk.vm.ci.meta.JavaTypegetArrayClass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic SubstrateField[] getInstanceFields(boolean includeSuperclasses)
getInstanceFields in interface jdk.vm.ci.meta.ResolvedJavaTypepublic int getInstanceFieldCount()
public jdk.vm.ci.meta.ResolvedJavaField[] getStaticFields()
getStaticFields in interface jdk.vm.ci.meta.ResolvedJavaTypepublic Annotation[] getAnnotations()
getAnnotations in interface AnnotatedElementpublic Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations in interface AnnotatedElementpublic <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation in interface AnnotatedElementpublic jdk.vm.ci.meta.ResolvedJavaField findInstanceFieldWithOffset(long offset,
jdk.vm.ci.meta.JavaKind expectedKind)
findInstanceFieldWithOffset in interface jdk.vm.ci.meta.ResolvedJavaTypepublic String getSourceFileName()
getSourceFileName in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isLocal()
isLocal in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isMember()
isMember in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getEnclosingType()
getEnclosingType in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaMethod[] getDeclaredConstructors()
getDeclaredConstructors in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaMethod[] getDeclaredMethods()
getDeclaredMethods in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaMethod getClassInitializer()
getClassInitializer in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isLinked()
isLinked in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isCloneableWithAllocation()
isCloneableWithAllocation in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getHostClass()
getHostClass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic com.oracle.truffle.api.nodes.NodeFieldAccessor getNodeClassField()
getNodeClassField in class com.oracle.truffle.api.nodes.NodeClasspublic com.oracle.truffle.api.nodes.NodeFieldAccessor[] getCloneableFields()
getCloneableFields in class com.oracle.truffle.api.nodes.NodeClasspublic com.oracle.truffle.api.nodes.NodeFieldAccessor[] getFields()
getFields in class com.oracle.truffle.api.nodes.NodeClasspublic com.oracle.truffle.api.nodes.NodeFieldAccessor getParentField()
getParentField in class com.oracle.truffle.api.nodes.NodeClasspublic com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildFields()
getChildFields in class com.oracle.truffle.api.nodes.NodeClasspublic com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildrenFields()
getChildrenFields in class com.oracle.truffle.api.nodes.NodeClasspublic Iterator<com.oracle.truffle.api.nodes.Node> makeIterator(com.oracle.truffle.api.nodes.Node node)
makeIterator in class com.oracle.truffle.api.nodes.NodeClasspublic Class<? extends com.oracle.truffle.api.nodes.Node> getType()
getType in class com.oracle.truffle.api.nodes.NodeClassprotected Iterable<SubstrateField> getNodeFields()
getNodeFields in class com.oracle.truffle.api.nodes.NodeClasspublic void putFieldObject(Object field, com.oracle.truffle.api.nodes.Node receiver, Object value)
putFieldObject in class com.oracle.truffle.api.nodes.NodeClasspublic Object getFieldObject(Object field, com.oracle.truffle.api.nodes.Node receiver)
getFieldObject in class com.oracle.truffle.api.nodes.NodeClasspublic Object getFieldValue(Object field, com.oracle.truffle.api.nodes.Node node)
getFieldValue in class com.oracle.truffle.api.nodes.NodeClasspublic boolean isChildField(Object field)
isChildField in class com.oracle.truffle.api.nodes.NodeClasspublic boolean isChildrenField(Object field)
isChildrenField in class com.oracle.truffle.api.nodes.NodeClasspublic boolean isCloneableField(Object field)
isCloneableField in class com.oracle.truffle.api.nodes.NodeClasspublic Class<?> getFieldType(Object field)
getFieldType in class com.oracle.truffle.api.nodes.NodeClass