Disable drop range tracking in generators
Generator drop tracking caused an ICE for generators involving the Never type (Issue #93161). Since this breaks miri, we temporarily disable drop tracking so miri is unblocked while we properly fix the issue.
This commit is contained in:
parent
84e918971d
commit
13090889f5
6 changed files with 28 additions and 1 deletions
|
@ -22,6 +22,10 @@ use tracing::debug;
|
|||
|
||||
mod drop_ranges;
|
||||
|
||||
// FIXME(eholk): This flag is here to give a quick way to disable drop tracking in case we find
|
||||
// unexpected breakages while it's still new. It should be removed before too long.
|
||||
const ENABLE_DROP_TRACKING: bool = false;
|
||||
|
||||
struct InteriorVisitor<'a, 'tcx> {
|
||||
fcx: &'a FnCtxt<'a, 'tcx>,
|
||||
types: FxIndexSet<ty::GeneratorInteriorTypeCause<'tcx>>,
|
||||
|
@ -77,7 +81,10 @@ impl<'a, 'tcx> InteriorVisitor<'a, 'tcx> {
|
|||
yield_data.expr_and_pat_count, self.expr_count, source_span
|
||||
);
|
||||
|
||||
if self.drop_ranges.is_dropped_at(hir_id, yield_data.expr_and_pat_count)
|
||||
if ENABLE_DROP_TRACKING
|
||||
&& self
|
||||
.drop_ranges
|
||||
.is_dropped_at(hir_id, yield_data.expr_and_pat_count)
|
||||
{
|
||||
debug!("value is dropped at yield point; not recording");
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue