about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/passes.rs
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2022-10-01 15:57:22 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2023-01-27 20:10:06 +0000
commit60e04d1e8c3afd392551db103651e0ac55b4bd7e (patch)
treee5be864f6a864d59b04fca3a2124493a0809e601 /compiler/rustc_interface/src/passes.rs
parent400cb9aa41815f874d7d29a545e6e6f8539459de (diff)
downloadrust-60e04d1e8c3afd392551db103651e0ac55b4bd7e.tar.gz
rust-60e04d1e8c3afd392551db103651e0ac55b4bd7e.zip
Compute generator saved locals on MIR.
Diffstat (limited to 'compiler/rustc_interface/src/passes.rs')
-rw-r--r--compiler/rustc_interface/src/passes.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs
index 37b381c534e..60b60edd2c8 100644
--- a/compiler/rustc_interface/src/passes.rs
+++ b/compiler/rustc_interface/src/passes.rs
@@ -893,6 +893,15 @@ fn analysis(tcx: TyCtxt<'_>, (): ()) -> Result<()> {
         }
     });
 
+    if tcx.sess.opts.unstable_opts.drop_tracking_mir {
+        tcx.hir().par_body_owners(|def_id| {
+            if let rustc_hir::def::DefKind::Generator = tcx.def_kind(def_id) {
+                tcx.ensure().mir_generator_witnesses(def_id);
+                tcx.ensure().check_generator_obligations(def_id);
+            }
+        });
+    }
+
     sess.time("layout_testing", || layout_test::test_layout(tcx));
 
     // Avoid overwhelming user with errors if borrow checking failed.