rustc_mir_transform: Enforce rustc::potential_query_instability lint

Stop allowing `rustc::potential_query_instability` on all of
rustc_mir_transform and instead allow it on a case-by-case basis if it
is safe to do so. In this particular crate, all instances were safe to
allow.
This commit is contained in:
Martin Nordholts 2023-12-23 15:03:52 +01:00
parent b6a8c762ee
commit 6d8fb57d1a
3 changed files with 4 additions and 1 deletions

View file

@ -670,6 +670,8 @@ impl<'tcx> Visitor<'tcx> for ConstPropagator<'_, 'tcx> {
// This loop can get very hot for some bodies: it check each local in each bb.
// To avoid this quadratic behaviour, we only clear the locals that were modified inside
// the current block.
// The order in which we remove consts does not matter.
#[allow(rustc::potential_query_instability)]
for local in written_only_inside_own_block_locals.drain() {
debug_assert_eq!(
self.ecx.machine.can_const_prop[local],

View file

@ -1,4 +1,3 @@
#![allow(rustc::potential_query_instability)]
#![deny(rustc::untranslatable_diagnostic)]
#![deny(rustc::diagnostic_outside_of_impl)]
#![feature(box_patterns)]

View file

@ -54,6 +54,8 @@ impl MirPass<'_> for UnreachablePropagation {
patch.apply(body);
// We do want do keep some unreachable blocks, but make them empty.
// The order in which we clear bb statements does not matter.
#[allow(rustc::potential_query_instability)]
for bb in unreachable_blocks {
body.basic_blocks_mut()[bb].statements.clear();
}