Struct rustc_mir::dataflow::move_paths::MoveData[][src]

pub struct MoveData<'tcx> {
    pub move_paths: IndexVec<MovePathIndex, MovePath<'tcx>>,
    pub moves: IndexVec<MoveOutIndex, MoveOut>,
    pub loc_map: LocationMap<SmallVec<[MoveOutIndex; 4]>>,
    pub path_map: IndexVec<MovePathIndex, SmallVec<[MoveOutIndex; 4]>>,
    pub rev_lookup: MovePathLookup,
    pub inits: IndexVec<InitIndex, Init>,
    pub init_loc_map: LocationMap<SmallVec<[InitIndex; 4]>>,
    pub init_path_map: IndexVec<MovePathIndex, SmallVec<[InitIndex; 4]>>,
}

Fields

move_paths: IndexVec<MovePathIndex, MovePath<'tcx>>moves: IndexVec<MoveOutIndex, MoveOut>loc_map: LocationMap<SmallVec<[MoveOutIndex; 4]>>

Each Location l is mapped to the MoveOut’s that are effects of executing the code at l. (There can be multiple MoveOut’s for a given l because each MoveOut is associated with one particular path being moved.)

path_map: IndexVec<MovePathIndex, SmallVec<[MoveOutIndex; 4]>>rev_lookup: MovePathLookupinits: IndexVec<InitIndex, Init>init_loc_map: LocationMap<SmallVec<[InitIndex; 4]>>

Each Location l is mapped to the Inits that are effects of executing the code at l.

init_path_map: IndexVec<MovePathIndex, SmallVec<[InitIndex; 4]>>

Implementations

impl<'tcx> MoveData<'tcx>[src]

pub fn gather_moves(
    body: &Body<'tcx>,
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>
) -> Result<Self, (Self, Vec<(Place<'tcx>, MoveError<'tcx>)>)>
[src]

pub fn base_local(&self, mpi: MovePathIndex) -> Option<Local>[src]

For the move path mpi, returns the root local variable (if any) that starts the path. (e.g., for a path like a.b.c returns Some(a))

pub fn find_in_move_path_or_its_descendants(
    &self,
    root: MovePathIndex,
    pred: impl Fn(MovePathIndex) -> bool
) -> Option<MovePathIndex>
[src]

Trait Implementations

impl<'tcx> Debug for MoveData<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for MoveData<'tcx>

impl<'tcx> !Send for MoveData<'tcx>

impl<'tcx> !Sync for MoveData<'tcx>

impl<'tcx> Unpin for MoveData<'tcx>

impl<'tcx> !UnwindSafe for MoveData<'tcx>

Blanket Implementations

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

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

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

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

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

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.

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.

impl<T> WithConstness for T[src]