Type

object Type
Companion:
class
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Type.type

Type members

Classlikes

sealed abstract class AggregateKind extends ValueKind

The type of an aggregate.

The type of an aggregate.

final case class Array(ty: Type, nullable: Boolean) extends RefKind

The type of an array reference.

The type of an array reference.

An Array is a reference to scala.Array[T]. It contains a header followed by a tail allocated buffer, which typically sit on the heap. That is unlike ArrayValue, which corresponds to LLVM's fixed-size array type.

final case class ArrayValue(ty: Type, n: Int) extends AggregateKind

The type of a homogeneous collection of data members.

The type of a homogeneous collection of data members.

case object Bool extends PrimitiveKind

The type of Boolean values.

The type of Boolean values.

case object Byte extends FixedSizeI

The type of a 8-bit signed integer.

The type of a 8-bit signed integer.

case object Char extends FixedSizeI

The type of a 16-bit unsigned integer.

The type of a 16-bit unsigned integer.

case object Double extends F

The type of a 64-bit IEEE 754 single-precision float.

The type of a 64-bit IEEE 754 single-precision float.

sealed abstract class F(width: Int) extends PrimitiveKind

The type of a floating-point number.

The type of a floating-point number.

Value parameters:
width

The bit width of the type's instances.

sealed abstract class FixedSizeI(width: Int, val signed: Boolean) extends PrimitiveKind with I

The type of a fixed-size integer.

The type of a fixed-size integer.

Value parameters:
signed

true iff the type's instances are signed.

width

The bit width of the type's instances.

case object Float extends F

The type of a 32-bit IEEE 754 single-precision float.

The type of a 32-bit IEEE 754 single-precision float.

final case class Function(args: Seq[Type], ret: Type) extends SpecialKind
sealed trait I extends ValueKind

The type of an integer.

The type of an integer.

case object Int extends FixedSizeI

The type of a 32-bit signed integer.

The type of a 32-bit signed integer.

case object Long extends FixedSizeI

The type of a 64-bit signed integer.

The type of a 64-bit signed integer.

case object Nothing extends SpecialKind
case object Null extends RefKind

The null reference type.

The null reference type.

sealed abstract class PrimitiveKind(val width: Int) extends ValueKind

A primitive value type.

A primitive value type.

Value parameters:
width

The bit width of the type's instances.

case object Ptr extends ValueKind

The type of pointers.

The type of pointers.

final case class Ref(name: Top, exact: Boolean, nullable: Boolean) extends RefKind

The type of a reference.

The type of a reference.

sealed abstract class RefKind extends Type

A reference type.

A reference type.

case object Short extends FixedSizeI

The type of a 16-bit signed integer.

The type of a 16-bit signed integer.

case object Size extends ValueKind with I

The type of a value suitable to represent the size of a container.

The type of a value suitable to represent the size of a container.

sealed abstract class SpecialKind extends Type

Second-class types.

Second-class types.

final case class StructValue(tys: Seq[Type]) extends AggregateKind

The type of a heterogeneous collection of data members.

The type of a heterogeneous collection of data members.

case object Unit extends RefKind

The unit type.

The unit type.

sealed abstract class ValueKind extends Type

The type of an aggregate or primitive value.

The type of an aggregate or primitive value.

final case class Var(ty: Type) extends SpecialKind
case object Vararg extends SpecialKind
case object Virtual extends SpecialKind
object unsigned

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from:
Mirror

The name of the type

The name of the type

Inherited from:
Mirror

Value members

Concrete methods

def isArray(clsTy: Ref): Boolean
def isArray(clsName: Top): Boolean
def normalize(ty: Type): Type
def typeToName(tpe: Type): Top

Concrete fields

val box: Map[Type, Type]
val boxesTo: Seq[(Type, Type)]