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

enum Overlap {
    Arbitrary,
    EqualOrDisjoint,
    Disjoint,
}
Expand description

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

Variants

Arbitrary
Expand description

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.

EqualOrDisjoint
Expand description

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.

Disjoint
Expand description

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

Auto Trait Implementations

impl RefUnwindSafe for Overlap

impl Send for Overlap

impl Sync for Overlap

impl Unpin for Overlap

impl UnwindSafe for Overlap

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]