VarValue in rustc_data_structures::unify - Rust (original) (raw)
pub struct VarValue<K>
where
K: UnifyKey,
{
parent: K,
value: <K as UnifyKey>::Value,
rank: u32,
}Expand description
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, seehttp://en.wikipedia.org/wiki/Disjoint-set_data_structure.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.