Enum rustc_mir::borrow_check::Overlap[][src]

enum Overlap {
    Arbitrary,
    EqualOrDisjoint,
    Disjoint,
}
🔬 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?

The degree of overlap between 2 places for borrow-checking.

Variants

🔬 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?

The places might partially overlap - in this case, we give up and say that they might conflict. This occurs when different fields of a union are borrowed. For example, if u is a union, we have no way of telling how disjoint u.a.x and a.b.y are.

🔬 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?

The places have the same type, and are either completely disjoint or equal - i.e. they can't "partially" overlap as can occur with unions. This is the "base case" on which we recur for extensions of the place.

🔬 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?

The places are disjoint, so we know all extensions of them will also be disjoint.

Auto Trait Implementations

impl Send for Overlap

impl Sync for Overlap