PrimitiveBType

sealed trait PrimitiveBType extends BType
trait BType
class Object
trait Matchable
class Any
object UNIT
object BOOL
object CHAR
object BYTE
object SHORT
object INT
object FLOAT
object LONG
object DOUBLE

Value members

Concrete methods

final def maxValueType(other: BType): BType

The upper bound of two primitive types. The other type has to be either a primitive type or Nothing.

The upper bound of two primitive types. The other type has to be either a primitive type or Nothing.

The maxValueType of (Char, Byte) and of (Char, Short) is Int, to encompass the negative values of Byte and Short. See ticket #2087.

Inherited methods

Inherited from
BType
Inherited from
BType
Inherited from
BType
final def conformsTo(other: BType): Boolean
Inherited from
BType
final def descriptor: String
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
Inherited from
BType
final def isBoxed: Boolean
Inherited from
BType
final def isClass: Boolean
Inherited from
BType
Inherited from
BType
Inherited from
BType
final def isMethod: Boolean
Inherited from
BType
Inherited from
BType
Inherited from
BType
final def isNullType: Boolean
Inherited from
BType
Inherited from
BType
final def isPrimitive: Boolean
Inherited from
BType
final def isRealType: Boolean
Inherited from
BType
final def isRef: Boolean
Inherited from
BType
final def isWideType: Boolean
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.

Inherited from
BType
final def size: Int
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
Inherited from
BType
final override def toString: String
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 Params
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.

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