Trait rustc_typeck::middle::infer::unify::UnifyKeyExperimental [-]  [+] [src]

pub trait UnifyKey<'tcx, V>: Repr<'tcx> + PartialEq<Self> + Clone + Show {
    fn index(&self) -> uint;
    fn from_index(u: uint) -> Self;
    fn unification_table(infcx: &'v InferCtxt) -> &'v RefCell<UnificationTable<Self, V>>;
    fn tag(k: Option<Self>) -> &'static str;
}

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.

Each key type has an associated value type V. For example, for IntVid, this is Option<IntVarValue>, representing some (possibly not yet known) sort of integer.

Implementations of this trait are at the end of this file.

Required Methods

fn index(&self) -> uint

fn from_index(u: uint) -> Self

fn unification_table(infcx: &'v InferCtxt) -> &'v RefCell<UnificationTable<Self, V>>

fn tag(k: Option<Self>) -> &'static str

Implementors