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

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

## Variants

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.

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.

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]

T: 'static + ?Sized,

`impl<T> Borrow<T> for T where`

T: ?Sized,

[src]

T: ?Sized,

`impl<T> BorrowMut<T> for T where`

T: ?Sized,

[src]

T: ?Sized,

`pub fn borrow_mut(&mut self) -> &mut T`

[src]

`impl<T> From<T> for T`

[src]

`impl<T, U> Into<U> for T where`

U: From<T>,

[src]

U: From<T>,

`impl<T, U> TryFrom<U> for T where`

U: Into<T>,

[src]

U: Into<T>,

`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]

`impl<T, U> TryInto<U> for T where`

U: TryFrom<T>,

[src]

U: TryFrom<T>,

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

The type returned in the event of a conversion error.