Module rustc::middle::infer::unifyUnstable [-] [+] [src]

Reexports

pub use self::VarValue::*;

Structs

Delegate
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 committed 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 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 an Option wrapper (where None represents a variable whose value is not yet set).

Functions

err