Struct rustc_data_structures::unify::UnificationTable []

pub struct UnificationTable<S> where
    S: UnificationStore
{ /* fields omitted */ }
🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Table of unification keys and their values. You must define a key type K that implements the UnifyKey trait. Unification tables can be used in two-modes:

Methods

impl<S> UnificationTable<S> where
    S: UnificationStore

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Starts a new snapshot. Each snapshot must be either rolled back or committed in a "LIFO" (stack) order.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Reverses all changes since the last snapshot. Also removes any keys that have been created since then.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Commits all changes since the last snapshot. Of course, they can still be undone if there is a snapshot further out.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Creates a fresh key with the given value.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Returns the number of keys created so far.

impl<'tcx, S, K, V> UnificationTable<S> where
    K: UnifyKey<Value = V>,
    S: UnificationStore<Key = K, Value = V>,
    V: UnifyValue

//////////////////////////////////////////////////////////////////////// Public API

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Unions two keys without the possibility of failure; only applicable when unify values use NoError as their error type.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Unions a key and a value without the possibility of failure; only applicable when unify values use NoError as their error type.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Given two keys, indicates whether they have been unioned together.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Given a key, returns the (current) root key.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Unions together two variables, merging their values. If merging the values fails, the error is propagated and this method has no effect.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Sets the value of the key a_id to b, attempting to merge with the previous value.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Returns the current value for the given key. If the key has been union'd, this will give the value from the current root.

Trait Implementations

impl<S> Clone for UnificationTable<S> where
    S: UnificationStore + Clone

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<S> Debug for UnificationTable<S> where
    S: UnificationStore + Debug

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<S> Send for UnificationTable<S> where
    S: Send

impl<S> Sync for UnificationTable<S> where
    S: Sync