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:
parent
b6a8c762ee
commit
6d8fb57d1a
@ -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.
|
// 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
|
// To avoid this quadratic behaviour, we only clear the locals that were modified inside
|
||||||
// the current block.
|
// 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() {
|
for local in written_only_inside_own_block_locals.drain() {
|
||||||
debug_assert_eq!(
|
debug_assert_eq!(
|
||||||
self.ecx.machine.can_const_prop[local],
|
self.ecx.machine.can_const_prop[local],
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#![allow(rustc::potential_query_instability)]
|
|
||||||
#![deny(rustc::untranslatable_diagnostic)]
|
#![deny(rustc::untranslatable_diagnostic)]
|
||||||
#![deny(rustc::diagnostic_outside_of_impl)]
|
#![deny(rustc::diagnostic_outside_of_impl)]
|
||||||
#![feature(box_patterns)]
|
#![feature(box_patterns)]
|
||||||
|
@ -54,6 +54,8 @@ impl MirPass<'_> for UnreachablePropagation {
|
|||||||
patch.apply(body);
|
patch.apply(body);
|
||||||
|
|
||||||
// We do want do keep some unreachable blocks, but make them empty.
|
// 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 {
|
for bb in unreachable_blocks {
|
||||||
body.basic_blocks_mut()[bb].statements.clear();
|
body.basic_blocks_mut()[bb].statements.clear();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user