Make check_live_drops
into a MirLint
.
It's a thin wrapper around `check_live_drops`, but it's enough to fix the FIXME comment.
This commit is contained in:
parent
7023402691
commit
8949b443d5
@ -87,6 +87,7 @@ mod match_branches;
|
|||||||
mod mentioned_items;
|
mod mentioned_items;
|
||||||
mod multiple_return_terminators;
|
mod multiple_return_terminators;
|
||||||
mod nrvo;
|
mod nrvo;
|
||||||
|
mod post_drop_elaboration;
|
||||||
mod prettify;
|
mod prettify;
|
||||||
mod promote_consts;
|
mod promote_consts;
|
||||||
mod ref_prop;
|
mod ref_prop;
|
||||||
@ -480,11 +481,13 @@ pub fn run_analysis_to_runtime_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'
|
|||||||
pm::run_passes(
|
pm::run_passes(
|
||||||
tcx,
|
tcx,
|
||||||
body,
|
body,
|
||||||
&[&remove_uninit_drops::RemoveUninitDrops, &simplify::SimplifyCfg::RemoveFalseEdges],
|
&[
|
||||||
|
&remove_uninit_drops::RemoveUninitDrops,
|
||||||
|
&simplify::SimplifyCfg::RemoveFalseEdges,
|
||||||
|
&Lint(post_drop_elaboration::CheckLiveDrops),
|
||||||
|
],
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
// FIXME: make this a MIR lint
|
|
||||||
check_consts::post_drop_elaboration::check_live_drops(tcx, body);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
debug!("runtime_mir_lowering({:?})", did);
|
debug!("runtime_mir_lowering({:?})", did);
|
||||||
|
13
compiler/rustc_mir_transform/src/post_drop_elaboration.rs
Normal file
13
compiler/rustc_mir_transform/src/post_drop_elaboration.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
use rustc_const_eval::check_consts;
|
||||||
|
use rustc_middle::mir::*;
|
||||||
|
use rustc_middle::ty::TyCtxt;
|
||||||
|
|
||||||
|
use crate::MirLint;
|
||||||
|
|
||||||
|
pub(super) struct CheckLiveDrops;
|
||||||
|
|
||||||
|
impl<'tcx> MirLint<'tcx> for CheckLiveDrops {
|
||||||
|
fn run_lint(&self, tcx: TyCtxt<'tcx>, body: &Body<'tcx>) {
|
||||||
|
check_consts::post_drop_elaboration::check_live_drops(tcx, body);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user