[][src]Crate lark_ty

Modules

base_inferred

A type family where we have fully inferred all the "base types" -- but all permissions are erased. This is the output of the base_type_check query.

declaration

A type family where we preserve what the user wrote in all cases. We do not support inference and bases and things may map to bound variables from generic declarations.

full_inferred

A type family where we have fully inferred all the types. Permissions are partly erased (aliasing information lost). This is the output of the full_type_check query.

identity
map_family

Structs

BaseData

The "base data" for a type.

BoundVar
Erased

Indicates something that we've opted not to track statically.

GenericDeclarations

The "generic declarations" list out the generic parameters for a given item. Since items inherit generic items from one another (e.g., from their parents),

GenericTyDeclaration

Declaration of an individual generic type parameter.

Generics

A set of generic arguments; e.g., in a type like Vec<i32>, this would be [i32].

Placeholder

A "placeholder" represents a dummy type (or permission, etc) meant to represent "any type". It is used when you are "inside" a "forall" binder -- so, for example, when we are type-checking a function like fn foo<T>, the T is represented by a placeholder.

Signature

Signature from a function or method: (T1, T2) -> T3. inputs are the list of the types of the arguments, and output is the return type.

Ty

A type is the combination of a permission and a base type.

Universe

Enums

BaseKind

The kinds of base types we have on offer.

BoundVarOr

A "bound variable" refers to one of the generic type parameters in scope within a declaration. So, for example, if you have struct Foo<T> { x: T }, then the bound var #0 would be T.

GenericKind

An enum that lists out the various "kinds" of generic arguments (currently only types) and a distinct type of value for each kind.

InferVarOr

Used as the value for inferable things during inference -- either a given Base (etc) maps to an inference variable or to some known value.

PermKind
ReprKind

Encodes whether we reach the data through pointer indirection or not.

Traits

TypeFamily

Type Definitions

Generic

The value of a single generic argument; e.g., in a type like Vec<i32>, this might be the i32.