pub struct RemoveUninitDrops;
Expand description
Removes Drop
terminators whose target is known to be uninitialized at
that point.
This is redundant with drop elaboration, but we need to do it prior to const-checking, and running const-checking after drop elaboration makes it optimization dependent, causing issues like #90770.
Trait Implementations§
source§impl<'tcx> MirPass<'tcx> for RemoveUninitDrops
impl<'tcx> MirPass<'tcx> for RemoveUninitDrops
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>)
fn name(&self) -> &'static str
fn profiler_name(&self) -> &'static str
source§fn 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 RefUnwindSafe for RemoveUninitDrops
impl Send for RemoveUninitDrops
impl Sync for RemoveUninitDrops
impl Unpin for RemoveUninitDrops
impl UnwindSafe for RemoveUninitDrops
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn 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: 0 bytes