Struct rustc_mir::dataflow::move_paths::MovePath [−][src]
pub struct MovePath<'tcx> {
pub next_sibling: Option<MovePathIndex>,
pub first_child: Option<MovePathIndex>,
pub parent: Option<MovePathIndex>,
pub place: Place<'tcx>,
}Expand description
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]
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]
pub fn parents<'a>(
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>[src]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]
pub fn children<'a>(
&self,
move_paths: &'a IndexVec<MovePathIndex, MovePath<'tcx>>
) -> impl 'a + Iterator<Item = (MovePathIndex, &'a MovePath<'tcx>)>[src]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]
pub fn find_descendant(
&self,
move_paths: &IndexVec<MovePathIndex, MovePath<'_>>,
f: impl Fn(MovePathIndex) -> bool
) -> Option<MovePathIndex>[src]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
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> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]