mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
rustc_mir: remove dead code for downgrading errors.
This commit is contained in:
parent
ece6f833df
commit
aff9c833e5
@ -105,9 +105,6 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||
format!("{} occurs due to use{}", desired_action.as_noun(), use_spans.describe()),
|
||||
);
|
||||
|
||||
// This error should not be downgraded to a warning,
|
||||
// even in migrate mode.
|
||||
self.disable_error_downgrading();
|
||||
err.buffer(&mut self.errors_buffer);
|
||||
} else {
|
||||
if let Some((reported_place, _)) = self.move_error_reported.get(&move_out_indices) {
|
||||
|
@ -7,7 +7,6 @@ use rustc::hir::def_id::DefId;
|
||||
use rustc::infer::InferCtxt;
|
||||
use rustc::lint::builtin::UNUSED_MUT;
|
||||
use rustc::lint::builtin::{MUTABLE_BORROW_RESERVATION_CONFLICT};
|
||||
use rustc::middle::borrowck::SignalledError;
|
||||
use rustc::mir::{AggregateKind, BasicBlock, BorrowCheckResult, BorrowKind};
|
||||
use rustc::mir::{
|
||||
ClearCrossCrate, Local, Location, Body, Mutability, Operand, Place, PlaceBase, PlaceElem,
|
||||
@ -18,7 +17,7 @@ use rustc::mir::{Terminator, TerminatorKind};
|
||||
use rustc::ty::query::Providers;
|
||||
use rustc::ty::{self, TyCtxt};
|
||||
|
||||
use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder, Level};
|
||||
use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder};
|
||||
use rustc_data_structures::bit_set::BitSet;
|
||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
use rustc_data_structures::graph::dominators::Dominators;
|
||||
@ -259,8 +258,6 @@ fn do_mir_borrowck<'a, 'tcx>(
|
||||
move_error_reported: BTreeMap::new(),
|
||||
uninitialized_error_reported: Default::default(),
|
||||
errors_buffer,
|
||||
// FIXME(Centril): throw out the migration infrastructure.
|
||||
disable_error_downgrading: true,
|
||||
nonlexical_regioncx: regioncx,
|
||||
used_mut: Default::default(),
|
||||
used_mut_upvars: SmallVec::new(),
|
||||
@ -372,33 +369,6 @@ fn do_mir_borrowck<'a, 'tcx>(
|
||||
if !mbcx.errors_buffer.is_empty() {
|
||||
mbcx.errors_buffer.sort_by_key(|diag| diag.span.primary_span());
|
||||
|
||||
if !mbcx.disable_error_downgrading && tcx.migrate_borrowck() {
|
||||
// When borrowck=migrate, check if AST-borrowck would
|
||||
// error on the given code.
|
||||
|
||||
// rust-lang/rust#55492, rust-lang/rust#58776 check the base def id
|
||||
// for errors. AST borrowck is responsible for aggregating
|
||||
// `signalled_any_error` from all of the nested closures here.
|
||||
let base_def_id = tcx.closure_base_def_id(def_id);
|
||||
|
||||
match tcx.borrowck(base_def_id).signalled_any_error {
|
||||
SignalledError::NoErrorsSeen => {
|
||||
// if AST-borrowck signalled no errors, then
|
||||
// downgrade all the buffered MIR-borrowck errors
|
||||
// to warnings.
|
||||
|
||||
for err in mbcx.errors_buffer.iter_mut() {
|
||||
downgrade_if_error(err);
|
||||
}
|
||||
}
|
||||
SignalledError::SawSomeError => {
|
||||
// if AST-borrowck signalled a (cancelled) error,
|
||||
// then we will just emit the buffered
|
||||
// MIR-borrowck errors as normal.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for diag in mbcx.errors_buffer.drain(..) {
|
||||
mbcx.infcx.tcx.sess.diagnostic().emit_diagnostic(&diag);
|
||||
}
|
||||
@ -414,21 +384,6 @@ fn do_mir_borrowck<'a, 'tcx>(
|
||||
result
|
||||
}
|
||||
|
||||
fn downgrade_if_error(diag: &mut Diagnostic) {
|
||||
if diag.is_error() {
|
||||
diag.level = Level::Warning;
|
||||
diag.warn(
|
||||
"this error has been downgraded to a warning for backwards \
|
||||
compatibility with previous releases",
|
||||
).warn(
|
||||
"this represents potential undefined behavior in your code and \
|
||||
this warning will become a hard error in the future",
|
||||
).note(
|
||||
"for more information, try `rustc --explain E0729`"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
crate struct MirBorrowckCtxt<'cx, 'tcx> {
|
||||
crate infcx: &'cx InferCtxt<'cx, 'tcx>,
|
||||
body: &'cx Body<'tcx>,
|
||||
@ -489,9 +444,6 @@ crate struct MirBorrowckCtxt<'cx, 'tcx> {
|
||||
uninitialized_error_reported: FxHashSet<PlaceRef<'cx, 'tcx>>,
|
||||
/// Errors to be reported buffer
|
||||
errors_buffer: Vec<Diagnostic>,
|
||||
/// If there are no errors reported by the HIR borrow checker, we downgrade
|
||||
/// all NLL errors to warnings. Setting this flag disables downgrading.
|
||||
disable_error_downgrading: bool,
|
||||
/// This field keeps track of all the local variables that are declared mut and are mutated.
|
||||
/// Used for the warning issued by an unused mutable local variable.
|
||||
used_mut: FxHashSet<Local>,
|
||||
@ -932,12 +884,6 @@ impl InitializationRequiringAction {
|
||||
}
|
||||
|
||||
impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||
/// If there are no errors reported by the HIR borrow checker, we downgrade
|
||||
/// all NLL errors to warnings. Calling this disables downgrading.
|
||||
crate fn disable_error_downgrading(&mut self) {
|
||||
self.disable_error_downgrading = true;
|
||||
}
|
||||
|
||||
/// Checks an access to the given place to see if it is allowed. Examines the set of borrows
|
||||
/// that are in scope, as well as which paths have been initialized, to ensure that (a) the
|
||||
/// place is initialized and (b) it is not borrowed in some way that would prevent this
|
||||
|
Loading…
Reference in New Issue
Block a user