about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2023-08-20 01:59:44 +0200
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2023-08-20 13:10:14 +0200
commit4170ca4be92f1a8e4bfd1d2815c12804710b7087 (patch)
treeffccd48c97ea96945326364b673c221db4bdc60c
parentd06ca0ffaf4ac72732665f99dd9ad962194cd0b3 (diff)
downloadrust-4170ca4be92f1a8e4bfd1d2815c12804710b7087.tar.gz
rust-4170ca4be92f1a8e4bfd1d2815c12804710b7087.zip
Ensure that THIR unsafety check is done before stealing it. Fixes #111520.
-rw-r--r--compiler/rustc_mir_build/src/build/mod.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_mir_build/src/build/mod.rs b/compiler/rustc_mir_build/src/build/mod.rs
index 2a23a69b584..e614046e83e 100644
--- a/compiler/rustc_mir_build/src/build/mod.rs
+++ b/compiler/rustc_mir_build/src/build/mod.rs
@@ -56,7 +56,8 @@ pub(crate) fn closure_saved_names_of_captured_variables<'tcx>(
 /// Construct the MIR for a given `DefId`.
 fn mir_build(tcx: TyCtxt<'_>, def: LocalDefId) -> Body<'_> {
     // Ensure unsafeck and abstract const building is ran before we steal the THIR.
-    tcx.ensure_with_value().thir_check_unsafety(def);
+    tcx.ensure_with_value()
+        .thir_check_unsafety(tcx.typeck_root_def_id(def.to_def_id()).expect_local());
     tcx.ensure_with_value().thir_abstract_const(def);
     if let Err(e) = tcx.check_match(def) {
         return construct_error(tcx, def, e);