Struct rustc_mir::dataflow::move_paths::MoveData [−][src]
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: MovePathLookup
inits: 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]
body: &Body<'tcx>,
tcx: TyCtxt<'tcx>,
param_env: ParamEnv<'tcx>
) -> Result<Self, (Self, Vec<(Place<'tcx>, MoveError<'tcx>)>)>
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]
&self,
root: MovePathIndex,
pred: impl Fn(MovePathIndex) -> bool
) -> Option<MovePathIndex>
Trait Implementations
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]
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.