Adjust SanityCheck
.
The actual implementation remains in `rustc_mir_dataflow`, but this commit moves the `MirPass` impl to `rustc_mir_transform` and changes it to a `MirLint` (fixing a `FIXME` comment). (I originally tried moving the full implementation from `rustc_mir_dataflow` but I had some trait problems with `HasMoveData` and `RustcPeekAt` and `MaybeLiveLocals`. This commit was much smaller and simpler, but still will allow some follow-up cleanups.)
This commit is contained in:
parent
bd53aa3bf7
commit
5410900aaa
3 changed files with 50 additions and 42 deletions
|
@ -32,7 +32,6 @@ use rustc_middle::mir::{
|
|||
use rustc_middle::ty::{self, TyCtxt, TypeVisitableExt};
|
||||
use rustc_middle::util::Providers;
|
||||
use rustc_middle::{bug, query, span_bug};
|
||||
use rustc_mir_dataflow::rustc_peek;
|
||||
use rustc_span::source_map::Spanned;
|
||||
use rustc_span::{sym, DUMMY_SP};
|
||||
use rustc_trait_selection::traits;
|
||||
|
@ -96,6 +95,7 @@ mod remove_unneeded_drops;
|
|||
mod remove_zsts;
|
||||
mod required_consts;
|
||||
mod reveal_all;
|
||||
mod sanity_check;
|
||||
mod shim;
|
||||
mod ssa;
|
||||
// This pass is public to allow external drivers to perform MIR cleanup
|
||||
|
@ -288,7 +288,7 @@ fn mir_built(tcx: TyCtxt<'_>, def: LocalDefId) -> &Steal<Body<'_>> {
|
|||
&Lint(function_item_references::FunctionItemReferences),
|
||||
// What we need to do constant evaluation.
|
||||
&simplify::SimplifyCfg::Initial,
|
||||
&rustc_peek::SanityCheck, // Just a lint
|
||||
&Lint(sanity_check::SanityCheck),
|
||||
],
|
||||
None,
|
||||
);
|
||||
|
|
13
compiler/rustc_mir_transform/src/sanity_check.rs
Normal file
13
compiler/rustc_mir_transform/src/sanity_check.rs
Normal file
|
@ -0,0 +1,13 @@
|
|||
use rustc_middle::mir::Body;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use rustc_mir_dataflow::rustc_peek::sanity_check;
|
||||
|
||||
use crate::MirLint;
|
||||
|
||||
pub(super) struct SanityCheck;
|
||||
|
||||
impl<'tcx> MirLint<'tcx> for SanityCheck {
|
||||
fn run_lint(&self, tcx: TyCtxt<'tcx>, body: &Body<'tcx>) {
|
||||
sanity_check(tcx, body);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue