Struct rustc_mir::dataflow::move_paths::MovePathLookup[−][src]

pub struct MovePathLookup {
    locals: IndexVec<Local, MovePathIndex>,
    projections: FxHashMap<(MovePathIndex, ProjectionElem<AbstractOperand, AbstractType>), MovePathIndex>,
}
Expand description

Tables mapping from a place to its MovePathIndex.

Fields

locals: IndexVec<Local, MovePathIndex>projections: FxHashMap<(MovePathIndex, ProjectionElem<AbstractOperand, AbstractType>), MovePathIndex>
Expand description

projections are made from a base-place and a projection elem. The base-place will have a unique MovePathIndex; we use the latter as the index into the outer vector (narrowing subsequent search so that it is solely relative to that base-place). For the remaining lookup, we map the projection elem to the associated MovePathIndex.

Implementations

impl MovePathLookup[src]

pub fn find(&self, place: PlaceRef<'_>) -> LookupResult[src]

pub fn find_local(&self, local: Local) -> MovePathIndex[src]

pub fn iter_locals_enumerated(
    &self
) -> Enumerated<Local, Iter<'_, MovePathIndex>>
[src]

An enumerated iterator of locals and their associated MovePathIndexes.

Trait Implementations

impl Debug for MovePathLookup[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl RefUnwindSafe for MovePathLookup

impl Send for MovePathLookup

impl Sync for MovePathLookup

impl Unpin for MovePathLookup

impl UnwindSafe for MovePathLookup

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]