Type

scala.scalanative.nir.Type$
See theType companion class
object Type

Attributes

Companion
class
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Type.type

Members list

Type members

Classlikes

sealed abstract class AggregateKind extends ValueKind

Aggregate value types.

Aggregate value types.

Attributes

Supertypes
class ValueKind
class Type
class Object
trait Matchable
class Any
Known subtypes
class ArrayValue
class StructValue
final case class Array(ty: Type, nullable: Boolean) extends RefKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class RefKind
class Type
class Object
trait Matchable
class Any
Show all
final case class ArrayValue(ty: Type, n: Int) extends AggregateKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
case object Bool extends PrimitiveKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Bool.type
case object Byte extends I

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class I
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Byte.type
case object Char extends I

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class I
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Char.type
case object Double extends F

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class F
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Double.type
sealed abstract class F(width: Int) extends PrimitiveKind

Attributes

Companion
object
Supertypes
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Known subtypes
object Double.type
object Float.type
object F

Attributes

Companion
class
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
F.type
case object Float extends F

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class F
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Float.type
final case class Function(args: Seq[Type], ret: Type) extends SpecialKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class SpecialKind
class Type
class Object
trait Matchable
class Any
Show all
sealed abstract class I(width: Int, val signed: Boolean) extends PrimitiveKind

Attributes

Companion
object
Supertypes
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Known subtypes
object Byte.type
object Char.type
object Int.type
object Long.type
object Short.type
object I

Attributes

Companion
class
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
I.type
case object Int extends I

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class I
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Int.type
case object Long extends I

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class I
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Long.type
case object Nothing extends SpecialKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class SpecialKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Nothing.type
case object Null extends RefKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class RefKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Null.type
sealed abstract class PrimitiveKind(val width: Int) extends ValueKind

Primitive value types.

Primitive value types.

Attributes

Supertypes
class ValueKind
class Type
class Object
trait Matchable
class Any
Known subtypes
object Bool.type
class F
object Double.type
object Float.type
class I
object Byte.type
object Char.type
object Int.type
object Long.type
object Short.type
object Ptr.type
Show all
case object Ptr extends PrimitiveKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Ptr.type
final case class Ref(name: Global, exact: Boolean, nullable: Boolean) extends RefKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class RefKind
class Type
class Object
trait Matchable
class Any
Show all
sealed abstract class RefKind extends Type

Reference types.

Reference types.

Attributes

Supertypes
class Type
class Object
trait Matchable
class Any
Known subtypes
class Array
object Null.type
class Ref
object Unit.type
case object Short extends I

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class I
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Short.type
sealed abstract class SpecialKind extends Type

Second-class types.

Second-class types.

Attributes

Supertypes
class Type
class Object
trait Matchable
class Any
Known subtypes
class Function
object Nothing.type
class Var
object Vararg.type
object Virtual.type
final case class StructValue(tys: Seq[Type]) extends AggregateKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class ValueKind
class Type
class Object
trait Matchable
class Any
Show all
case object Unit extends RefKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class RefKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Unit.type
sealed abstract class ValueKind extends Type

Value types are either primitive or aggregate.

Value types are either primitive or aggregate.

Attributes

Supertypes
class Type
class Object
trait Matchable
class Any
Known subtypes
class ArrayValue
class StructValue
object Bool.type
class F
object Double.type
object Float.type
class I
object Byte.type
object Char.type
object Int.type
object Long.type
object Short.type
object Ptr.type
Show all
final case class Var(ty: Type) extends SpecialKind

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class SpecialKind
class Type
class Object
trait Matchable
class Any
Show all
case object Vararg extends SpecialKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class SpecialKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Vararg.type
case object Virtual extends SpecialKind

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class SpecialKind
class Type
class Object
trait Matchable
class Any
Show all
Self type
Virtual.type

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def isArray(clsTy: Ref): Boolean
def isArray(clsName: Global): Boolean
def isPtrBox(ty: Type): Boolean
def isPtrType(ty: Type): Boolean
def normalize(ty: Type): Type
def typeToName(tpe: Type): Global

Concrete fields

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