Struct rustc_const_eval::transform::promote_consts::PromoteTemps
source · Expand description
A MirPass
for promotion.
Promotion is the extraction of promotable temps into separate MIR bodies so they can have
'static
lifetime.
After this pass is run, promoted_fragments
will hold the MIR body corresponding to each
newly created Constant
.
Fields
promoted_fragments: Cell<IndexVec<Promoted, Body<'tcx>>>
Trait Implementations
sourceimpl<'tcx> Default for PromoteTemps<'tcx>
impl<'tcx> Default for PromoteTemps<'tcx>
sourcefn default() -> PromoteTemps<'tcx>
fn default() -> PromoteTemps<'tcx>
Returns the “default value” for a type. Read more
sourceimpl<'tcx> MirPass<'tcx> for PromoteTemps<'tcx>
impl<'tcx> MirPass<'tcx> for PromoteTemps<'tcx>
sourcefn phase_change(&self) -> Option<MirPhase>
fn phase_change(&self) -> Option<MirPhase>
If this pass causes the MIR to enter a new phase, return that phase.
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>)
fn name(&self) -> Cow<'_, str>
sourcefn is_enabled(&self, _sess: &Session) -> bool
fn is_enabled(&self, _sess: &Session) -> bool
Returns
true
if this pass is enabled with the current combination of compiler flags.fn is_mir_dump_enabled(&self) -> bool
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for PromoteTemps<'tcx>
impl<'tcx> !Send for PromoteTemps<'tcx>
impl<'tcx> !Sync for PromoteTemps<'tcx>
impl<'tcx> Unpin for PromoteTemps<'tcx>
impl<'tcx> !UnwindSafe for PromoteTemps<'tcx>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes