RefBType

dotty.tools.backend.jvm.BTypes.RefBType
sealed trait RefBType extends BType

Attributes

Graph
Supertypes
trait BType
class Object
trait Matchable
class Any
Known subtypes
class ArrayBType
class ClassBType

Members list

Value members

Concrete methods

The class or array type of this reference type. Used for ANEWARRAY, MULTIANEWARRAY, INSTANCEOF and CHECKCAST instructions. Also used for emitting invokevirtual calls to (a: Array[T]).clone() for any T, see genApply.

The class or array type of this reference type. Used for ANEWARRAY, MULTIANEWARRAY, INSTANCEOF and CHECKCAST instructions. Also used for emitting invokevirtual calls to (a: Array[T]).clone() for any T, see genApply.

In contrast to the descriptor, this string does not contain the surrounding 'L' and ';' for class types, for example "java/lang/String". However, for array types, the full descriptor is used, for example "[Ljava/lang/String;".

This can be verified for example using javap or ASMifier.

Attributes

Inherited methods

Attributes

Inherited from:
BType

Attributes

Inherited from:
BType

Attributes

Inherited from:
BType

Attributes

Inherited from:
BType
final def conformsTo(other: BType): Boolean

Attributes

Inherited from:
BType
final def descriptor: String

Attributes

Returns

The Java descriptor of this type. Examples:

  • int: I
  • java.lang.String: Ljava/lang/String;
  • int[]: [I
  • Object m(String s, double d): (Ljava/lang/String;D)Ljava/lang/Object;
Inherited from:
BType
final def isArray: Boolean

Attributes

Inherited from:
BType
final def isBoxed: Boolean

Attributes

Inherited from:
BType
final def isClass: Boolean

Attributes

Inherited from:
BType
final def isIntSizedType: Boolean

Attributes

Inherited from:
BType
final def isIntegralType: Boolean

Attributes

Inherited from:
BType
final def isMethod: Boolean

Attributes

Inherited from:
BType

Attributes

Inherited from:
BType
final def isNothingType: Boolean

Attributes

Inherited from:
BType
final def isNullType: Boolean

Attributes

Inherited from:
BType
final def isNumericType: Boolean

Attributes

Inherited from:
BType
final def isPrimitive: Boolean

Attributes

Inherited from:
BType
final def isRealType: Boolean

Attributes

Inherited from:
BType
final def isRef: Boolean

Attributes

Inherited from:
BType
final def isWideType: Boolean

Attributes

Inherited from:
BType
final def maxType(other: BType): BType

Compute the upper bound of two types. Takes promotions of numeric primitives into account.

Compute the upper bound of two types. Takes promotions of numeric primitives into account.

Attributes

Inherited from:
BType
final def size: Int

Attributes

Returns

0 for void, 2 for long and double, 1 otherwise

Inherited from:
BType

The asm.Type corresponding to this BType.

The asm.Type corresponding to this BType.

Note about asm.Type.getObjectType (*): For class types, the method expects the internal name, i.e. without the surrounding 'L' and ';'. For array types on the other hand, the method expects a full descriptor, for example "[Ljava/lang/String;".

See method asm.Type.getType that creates a asm.Type from a type descriptor

  • for an OBJECT type, the 'L' and ';' are not part of the range of the created Type
  • for an ARRAY type, the full descriptor is part of the range

Attributes

Inherited from:
BType
final override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
BType -> Any
Inherited from:
BType
final def typedOpcode(opcode: Int): Int

Some JVM opcodes have typed variants. This method returns the correct opcode according to the type.

Some JVM opcodes have typed variants. This method returns the correct opcode according to the type.

Value parameters

opcode

A JVM instruction opcode. This opcode must be one of ILOAD, ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL, ISHR, IUSHR, IAND, IOR IXOR and IRETURN.

Attributes

Returns

The opcode adapted to this java type. For example, if this type is float and opcode is IRETURN, this method returns FRETURN.

Inherited from:
BType