Module rustc::middle::typeck::infer::unify[src]

Structs

Node

Internal type used to represent the result of a get() operation. Conveys the current root and value of the key.

Snapshot

At any time, users may snapshot a unification table. The changes made during the snapshot may either be commited or rolled back.

UnificationTable

Table of unification keys and their values.

Enums

VarValue

Value of a unification key. We implement Tarjan's union-find algorithm: when two keys are unified, one of them is converted into a "redirect" pointing at the other. These redirects form a DAG: the roots of the DAG (nodes that are not redirected) are each associated with a value of type V and a rank. The rank is used to keep the DAG relatively balanced, which helps keep the running time of the algorithm under control. For more information, see http://en.wikipedia.org/wiki/Disjoint-set_data_structure.

Traits

InferCtxtMethodsForSimplyUnifiableTypes
SimplyUnifiable

Indicates a type that does not have any kind of subtyping relationship.

UnifyKey

This trait is implemented by any type that can serve as a type variable. We call such variables unification keys. For example, this trait is implemented by TyVid, which represents normal type variables, and IntVid, which represents integral variables.

UnifyValue

Trait for valid types that a type variable can be set to. Note that this is typically not the end type that the value will take on, but rather some wrapper: for example, for normal type variables, the associated type is not ty::t but rather Bounds<ty::t>.

Functions

err