Skip to content

Commit 1d3f5b4

Browse files
committed
Test drop_tracking_mir before querying generator.
1 parent 3cdd019 commit 1d3f5b4

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

compiler/rustc_metadata/src/rmeta/encoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1415,7 +1415,7 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
14151415
if encode_opt {
14161416
record!(self.tables.optimized_mir[def_id.to_def_id()] <- tcx.optimized_mir(def_id));
14171417

1418-
if let DefKind::Generator = self.tcx.def_kind(def_id) && tcx.sess.opts.unstable_opts.drop_tracking_mir {
1418+
if tcx.sess.opts.unstable_opts.drop_tracking_mir && let DefKind::Generator = self.tcx.def_kind(def_id) {
14191419
record!(self.tables.mir_generator_witnesses[def_id.to_def_id()] <- tcx.mir_generator_witnesses(def_id));
14201420
}
14211421
}

compiler/rustc_mir_transform/src/lib.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use rustc_const_eval::util;
2323
use rustc_data_structures::fx::FxIndexSet;
2424
use rustc_data_structures::steal::Steal;
2525
use rustc_hir as hir;
26+
use rustc_hir::def::DefKind;
2627
use rustc_hir::def_id::{DefId, LocalDefId};
2728
use rustc_hir::intravisit::{self, Visitor};
2829
use rustc_index::vec::IndexVec;
@@ -429,7 +430,9 @@ fn mir_drops_elaborated_and_const_checked(
429430
return tcx.mir_drops_elaborated_and_const_checked(def);
430431
}
431432

432-
if tcx.generator_kind(def.did).is_some() && tcx.sess.opts.unstable_opts.drop_tracking_mir {
433+
if tcx.sess.opts.unstable_opts.drop_tracking_mir
434+
&& let DefKind::Generator = tcx.def_kind(def.did)
435+
{
433436
tcx.ensure().mir_generator_witnesses(def.did);
434437
}
435438
let mir_borrowck = tcx.mir_borrowck_opt_const_arg(def);

0 commit comments

Comments
 (0)