Struct rustc_mir::transform::elaborate_drops::Elaborator[−][src]

struct Elaborator<'a, 'b, 'tcx> {
    ctxt: &'a mut ElaborateDropsCtxt<'b, 'tcx>,
}

Fields

ctxt: &'a mut ElaborateDropsCtxt<'b, 'tcx>

Trait Implementations

impl<'a, 'b, 'tcx> Debug for Elaborator<'a, 'b, 'tcx>[src]

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

Formats the value using the given formatter. Read more

impl<'a, 'b, 'tcx> DropElaborator<'a, 'tcx> for Elaborator<'a, 'b, 'tcx>[src]

type Path = MovePathIndex

The type representing paths that can be moved out of. Read more

fn patch(&mut self) -> &mut MirPatch<'tcx>[src]

fn body(&self) -> &'a Body<'tcx>[src]

fn tcx(&self) -> TyCtxt<'tcx>[src]

fn param_env(&self) -> ParamEnv<'tcx>[src]

fn drop_style(&self, path: Self::Path, mode: DropFlagMode) -> DropStyle[src]

Returns how path should be dropped, given mode.

fn clear_drop_flag(
    &mut self,
    loc: Location,
    path: Self::Path,
    mode: DropFlagMode
)
[src]

Modifies the MIR patch so that the drop flag of path (if any) is cleared at location. Read more

fn field_subpath(&self, path: Self::Path, field: Field) -> Option<Self::Path>[src]

Returns the subpath of a field of path (or None if there is no dedicated subpath). Read more

fn array_subpath(
    &self,
    path: Self::Path,
    index: u64,
    size: u64
) -> Option<Self::Path>
[src]

Returns the subpath of indexing a fixed-size array path. Read more

fn deref_subpath(&self, path: Self::Path) -> Option<Self::Path>[src]

Returns the subpath of a dereference of path (or None if there is no dedicated subpath). Read more

fn downcast_subpath(
    &self,
    path: Self::Path,
    variant: VariantIdx
) -> Option<Self::Path>
[src]

Returns the subpath of downcasting path to one of its variants. Read more

fn get_drop_flag(&mut self, path: Self::Path) -> Option<Operand<'tcx>>[src]

Returns the drop flag of path as a MIR Operand (or None if path has no drop flag).

Auto Trait Implementations

impl<'a, 'b, 'tcx> !RefUnwindSafe for Elaborator<'a, 'b, 'tcx>

impl<'a, 'b, 'tcx> !Send for Elaborator<'a, 'b, 'tcx>

impl<'a, 'b, 'tcx> !Sync for Elaborator<'a, 'b, 'tcx>

impl<'a, 'b, 'tcx> Unpin for Elaborator<'a, 'b, 'tcx> where
    'b: 'a,
    'tcx: 'a, 

impl<'a, 'b, 'tcx> !UnwindSafe for Elaborator<'a, 'b, 'tcx>

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]