Module kailua_types::ty [] [src]

Individual types.

Modules

flags

A compact description of the type.

Structs

ClassId

Identifiers for nominal types (currently only used for instantiable classes).

ClassSystemId

Identifiers for disjoint set of nominal types (currently used for classes with different metaclasses, i.e. class systems).

DisplayState

A display state to catch recursive types and handle display hints.

Displayed

A fmt_displayed wrapper for a particular context (&DisplayState or &TypeContext).

Function

A function type.

NoTypeContext

An implementation of TypeContext that raises an error for most methods.

RVar

Row variables generated by TypeContext.

S

Slot types, used for variables and table values.

SeqIter

Yields each element type.

Slot

A container for slot types.

SlotSeq

A sequence of slot types.

SpannedSlotSeq

A sequence of spanned slot types. The sequence itself also contains its span.

SpannedTySeq

A sequence of spanned value types. The sequence itself also contains its span.

TVar

Anonymous, unifiable type variables generated by TypeContext.

Ty

A value type, which is also a sort of pointer (to handle recursively defined T).

TySeq

A sequence of value types.

Unioned

An expanded value type for unions.

Enums

Class

Nominal types.

DisplayName

A display name associated to the type or a portion of the type (in the Unioned).

Dyn

A dynamic type.

F

A slot type flexibility.

Functions

Function types.

Key

A key allowed in the row variable.

Nil

Different kinds of nil.

Numbers

Number types.

Strings

String types.

T

A value type, except for nil which is specially treated.

Tables

Table types.

Tag

A type tag for giving a type special meanings.

Traits

Display

Human-readable description of various types requiring the type context.

Dummy

Any type that can have a dummy value for errors.

Lattice

Any types with subtyping or equivalence relations.

TypeContext

A trait that provides every type-related operations.

TypeResolver

A superset of the type context that also provides type name resolution.

Union

Any types that can produce a union type, which is a supertype of two input types.