diff options
| author | marmeladema <xademax@gmail.com> | 2020-04-17 15:53:37 +0100 |
|---|---|---|
| committer | marmeladema <xademax@gmail.com> | 2020-04-27 21:50:17 +0100 |
| commit | f2f0478de72e41b91e2bb493f060b74d134e82d9 (patch) | |
| tree | d704e510de2c4ab7dd97416b759be62c451cec56 | |
| parent | abd31ad6e8d709fa09b02eea77310c8cc19aa1ed (diff) | |
Use `LocalDefId` in `mir_built` query
| -rw-r--r-- | src/librustc_middle/query/mod.rs | 2 | ||||
| -rw-r--r-- | src/librustc_mir/transform/mod.rs | 10 | ||||
| -rw-r--r-- | src/librustc_mir_build/build/mod.rs | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/src/librustc_middle/query/mod.rs b/src/librustc_middle/query/mod.rs index fdefb8eee2e..d94ba63017c 100644 --- a/src/librustc_middle/query/mod.rs +++ b/src/librustc_middle/query/mod.rs @@ -170,7 +170,7 @@ rustc_queries! { /// Fetch the MIR for a given `DefId` right after it's built - this includes /// unreachable code. - query mir_built(_: DefId) -> &'tcx Steal<mir::Body<'tcx>> { + query mir_built(_: LocalDefId) -> &'tcx Steal<mir::Body<'tcx>> { desc { "building MIR for" } } diff --git a/src/librustc_mir/transform/mod.rs b/src/librustc_mir/transform/mod.rs index a13ecdccc43..eced410d332 100644 --- a/src/librustc_mir/transform/mod.rs +++ b/src/librustc_mir/transform/mod.rs @@ -211,17 +211,21 @@ fn mir_const_qualif(tcx: TyCtxt<'_>, def_id: DefId) -> ConstQualifs { } fn mir_const(tcx: TyCtxt<'_>, def_id: DefId) -> &Steal<Body<'_>> { + let def_id = def_id.expect_local(); + // Unsafety check uses the raw mir, so make sure it is run - let _ = tcx.unsafety_check_result(def_id.expect_local()); + let _ = tcx.unsafety_check_result(def_id); let mut body = tcx.mir_built(def_id).steal(); - util::dump_mir(tcx, None, "mir_map", &0, MirSource::item(def_id), &body, |_, _| Ok(())); + util::dump_mir(tcx, None, "mir_map", &0, MirSource::item(def_id.to_def_id()), &body, |_, _| { + Ok(()) + }); run_passes( tcx, &mut body, - InstanceDef::Item(def_id), + InstanceDef::Item(def_id.to_def_id()), None, MirPhase::Const, &[&[ diff --git a/src/librustc_mir_build/build/mod.rs b/src/librustc_mir_build/build/mod.rs index 4dbe4bf7628..a37c927b35a 100644 --- a/src/librustc_mir_build/build/mod.rs +++ b/src/librustc_mir_build/build/mod.rs @@ -21,8 +21,8 @@ use rustc_target::spec::PanicStrategy; use super::lints; -crate fn mir_built(tcx: TyCtxt<'_>, def_id: DefId) -> &ty::steal::Steal<Body<'_>> { - tcx.alloc_steal_mir(mir_build(tcx, def_id.expect_local())) +crate fn mir_built(tcx: TyCtxt<'_>, def_id: LocalDefId) -> &ty::steal::Steal<Body<'_>> { + tcx.alloc_steal_mir(mir_build(tcx, def_id)) } /// Construct the MIR for a given `DefId`. |
