sealed abstract class ReferenceType extends FieldType
- Alphabetic
- By Inheritance
- ReferenceType
- FieldType
- Type
- Ordered
- Comparable
- UIDValue
- UID
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
adapt[T](targetType: Type)(implicit typeConversionFactory: TypeConversionFactory[T]): T
Returns the sequence of instructions that adapts values of
thistype to values of the target type.Returns the sequence of instructions that adapts values of
thistype to values of the target type.This method supports the following kind of adaptations:
- boxing
- unboxing
- Definition Classes
- FieldType
- Annotations
- @throws( ... )
-
abstract
def
id: Int
Each reference type is associated with a unique id.
Each reference type is associated with a unique id. Object types get ids >= 0 and array types get ids < 0.
- Definition Classes
- ReferenceType → Type → UID
-
abstract
def
toBinaryJavaName: String
Returns the binary name of this type as used by the Java runtime.
Returns the binary name of this type as used by the Java runtime. Basically returns the same name as produced by
Class.getName.- Definition Classes
- Type
- Annotations
- @throws( ... )
-
abstract
def
toJVMTypeName: String
Returns the representation of this type as used by the JVM in, for example, method descriptors or signatures.
Returns the representation of this type as used by the JVM in, for example, method descriptors or signatures.
- Definition Classes
- Type
-
abstract
def
toJava: String
A String representation of this type as it would be used in Java source code.
A String representation of this type as it would be used in Java source code.
- Definition Classes
- Type
-
abstract
def
toJavaClass: Class[_]
Returns the Java class object representing this type.
Returns the Java class object representing this type.
This is generally only useful in very special cases and – to be meaningful at all – it is necessary that the class path used for running the static analysis also contains the classes that are analyzed. This is (often) only the case for the JDK.
However, one example where this is useful is the creation of a real object of a specific type and to use that object when a method is called on that object. This avoids the reimplementation of the respective logic as part of the analysis. For example, if you want to get the
Stringthat is created by a specificStringBufferit is possible to implement the API of StringBuffer as part of your analysis or (probably more efficient) to just create an instance of aStringBufferobject and to redirect every call to the real object. In this case only some general logic is required to redirect calls and to convert the values between the representation used by the analysis and the representation required by the called method.- Definition Classes
- Type
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
<(other: Type): Boolean
- Definition Classes
- Type → Ordered
-
def
<=(other: Type): Boolean
- Definition Classes
- Type → Ordered
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
>(other: Type): Boolean
- Definition Classes
- Type → Ordered
-
def
>=(other: Type): Boolean
- Definition Classes
- Type → Ordered
-
def
asArrayType: ArrayType
- Definition Classes
- Type
- Annotations
- @throws( "if this type is not an array type" )
-
def
asBaseType: BaseType
- Definition Classes
- Type
- Annotations
- @throws( "if this type is not a base type" )
-
def
asBooleanType: BooleanType
- Definition Classes
- Type
- Annotations
- @throws( "if this is not a boolean type" )
- final def asFieldType: ReferenceType.this.type
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
asIntLikeType: IntLikeType
- Definition Classes
- Type
- Annotations
- @throws( "if this is not an int like type" )
-
def
asNumericType: NumericType
- Definition Classes
- Type
- Annotations
- @throws( "if this is not a numeric type" )
-
def
asObjectType: ObjectType
- Definition Classes
- Type
- Annotations
- @throws( ... )
-
final
def
asReferenceType: ReferenceType
- Definition Classes
- ReferenceType → Type
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
compare(that: Type): Int
Compares this type with the given type.
Compares this type with the given type.
Comparison of types is implemented by comparing the associated ids. I.e., the result of the comparison of two types is not stable across multiple runs of OPAL.
- Definition Classes
- Type → Ordered
-
def
compareTo(that: Type): Int
- Definition Classes
- Ordered → Comparable
-
final
def
computationalType: ComputationalTypeReference.type
The computational type of values of this type.
The computational type of values of this type.
- Definition Classes
- ReferenceType → Type
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
equals(that: UID): Boolean
- Definition Classes
- UIDValue
-
final
def
equals(other: Any): Boolean
- Definition Classes
- UIDValue → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
hashCode(): Int
- Definition Classes
- UIDValue → AnyRef → Any
-
def
isArrayType: Boolean
- Definition Classes
- Type
-
def
isBaseType: Boolean
Returns
trueif this type is a base type (also called primitive type).Returns
trueif this type is a base type (also called primitive type).- Definition Classes
- Type
-
def
isBooleanType: Boolean
Returns
trueif this type is the primitive typeboolean.Returns
trueif this type is the primitive typeboolean.- Definition Classes
- Type
-
def
isByteType: Boolean
Returns
trueif this type is the primitive typebyte.Returns
trueif this type is the primitive typebyte.- Definition Classes
- Type
-
def
isCharType: Boolean
Returns
trueif this type is the primitive typechar(Range: [0..65535]).Returns
trueif this type is the primitive typechar(Range: [0..65535]).- Definition Classes
- Type
-
def
isDoubleType: Boolean
Returns
trueif this type is the primitive typedouble.Returns
trueif this type is the primitive typedouble.- Definition Classes
- Type
-
final
def
isFieldType: Boolean
Returns
trueif this type can be used by fields. -
def
isFloatType: Boolean
Returns
trueif this type is the primitive typefloat.Returns
trueif this type is the primitive typefloat.- Definition Classes
- Type
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isIntLikeType: Boolean
- Definition Classes
- Type
-
def
isIntegerType: Boolean
Returns
trueif this type is the primitive typeint.Returns
trueif this type is the primitive typeint.- Definition Classes
- Type
-
def
isLongType: Boolean
Returns
trueif this type is the primitive typelong.Returns
trueif this type is the primitive typelong.- Definition Classes
- Type
-
def
isNumericType: Boolean
- Definition Classes
- Type
-
def
isObjectType: Boolean
- Definition Classes
- Type
-
final
def
isReferenceType: Boolean
Returns
trueif this type is a reference type; that is, an array type or an object type (class/interface type).Returns
trueif this type is a reference type; that is, an array type or an object type (class/interface type).- Definition Classes
- ReferenceType → Type
- Note
In general, we can distinguish the following three categories of types:
- base types,
- reference types,
- the type void.
-
def
isShortType: Boolean
Returns
trueif this type is the primitive typeshort.Returns
trueif this type is the primitive typeshort.- Definition Classes
- Type
-
def
isVoidType: Boolean
Returns
trueif this type representsvoid;falseotherwise.Returns
trueif this type representsvoid;falseotherwise.- Definition Classes
- Type
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
operandSize: Int
The number of operand stack slots/registers required to store a single value of this type.
The number of operand stack slots/registers required to store a single value of this type. In case of
VoidType0is returned.- Definition Classes
- Type
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )