[−][src]Struct rustc_mir::dataflow::move_paths::MovePath
MovePath is a canonicalized representation of a path that is
moved or assigned to.
It follows a tree structure.
Given struct X { m: M, n: N } and x: X, moves like drop x.m;
move out of the place x.m.
The MovePaths representing x.m and x.n are siblings (that is,
one of them will link to the other via the next_sibling field,
and the other will have no entry in its next_sibling field), and
they both have the MovePath representing x as their parent.
Fields
next_sibling: Option<MovePathIndex>first_child: Option<MovePathIndex>parent: Option<MovePathIndex>place: Place<'tcx>Implementations
impl<'tcx> MovePath<'tcx>[src]
pub fn parents<'a>(
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>[src]
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>
Returns an iterator over the parents of self.
pub fn children<'a>(
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>[src]
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>
Returns an iterator over the immediate children of self.
pub fn find_descendant(
&self,
move_paths: &IndexVec<MovePathIndex, MovePath<'_>>,
f: impl Fn(MovePathIndex) -> bool
) -> Option<MovePathIndex>[src]
&self,
move_paths: &IndexVec<MovePathIndex, MovePath<'_>>,
f: impl Fn(MovePathIndex) -> bool
) -> Option<MovePathIndex>
Finds the closest descendant of self for which f returns true using a breadth-first
search.
f will not be called on self.
Trait Implementations
impl<'tcx> Clone for MovePath<'tcx>[src]
impl<'tcx> Debug for MovePath<'tcx>[src]
impl<'tcx> Display for MovePath<'tcx>[src]
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for MovePath<'tcx>
impl<'tcx> !Send for MovePath<'tcx>
impl<'tcx> !Sync for MovePath<'tcx>
impl<'tcx> Unpin for MovePath<'tcx>
impl<'tcx> !UnwindSafe for MovePath<'tcx>
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> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
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.