Simplify future breakage control flow.
`emit_future_breakage` calls `self.dcx().take_future_breakage_diagnostics()` and then passes the result to `self.dcx().emit_future_breakage_report(diags)`. This commit removes the first of these and lets `emit_future_breakage_report` do the taking. It also inlines and removes what is left of `emit_future_breakage`, which has a single call site.
This commit is contained in:
parent
b506cce579
commit
0621cd46f2
@ -1038,10 +1038,6 @@ pub fn print_error_count(&self, registry: &Registry) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn take_future_breakage_diagnostics(&self) -> Vec<Diagnostic> {
|
|
||||||
std::mem::take(&mut self.inner.borrow_mut().future_breakage_diagnostics)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn abort_if_errors(&self) {
|
pub fn abort_if_errors(&self) {
|
||||||
let mut inner = self.inner.borrow_mut();
|
let mut inner = self.inner.borrow_mut();
|
||||||
inner.emit_stashed_diagnostics();
|
inner.emit_stashed_diagnostics();
|
||||||
@ -1149,8 +1145,12 @@ pub fn emit_artifact_notification(&self, path: &Path, artifact_type: &str) {
|
|||||||
self.inner.borrow_mut().emitter.emit_artifact_notification(path, artifact_type);
|
self.inner.borrow_mut().emitter.emit_artifact_notification(path, artifact_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn emit_future_breakage_report(&self, diags: Vec<Diagnostic>) {
|
pub fn emit_future_breakage_report(&self) {
|
||||||
self.inner.borrow_mut().emitter.emit_future_breakage_report(diags)
|
let mut inner = self.inner.borrow_mut();
|
||||||
|
let diags = std::mem::take(&mut inner.future_breakage_diagnostics);
|
||||||
|
if !diags.is_empty() {
|
||||||
|
inner.emitter.emit_future_breakage_report(diags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn emit_unused_externs(
|
pub fn emit_unused_externs(
|
||||||
|
@ -288,19 +288,9 @@ fn check_miri_unleashed_features(&self) {
|
|||||||
pub fn finish_diagnostics(&self, registry: &Registry) {
|
pub fn finish_diagnostics(&self, registry: &Registry) {
|
||||||
self.check_miri_unleashed_features();
|
self.check_miri_unleashed_features();
|
||||||
self.dcx().print_error_count(registry);
|
self.dcx().print_error_count(registry);
|
||||||
self.emit_future_breakage();
|
if self.opts.json_future_incompat {
|
||||||
|
self.dcx().emit_future_breakage_report();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn emit_future_breakage(&self) {
|
|
||||||
if !self.opts.json_future_incompat {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let diags = self.dcx().take_future_breakage_diagnostics();
|
|
||||||
if diags.is_empty() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
self.dcx().emit_future_breakage_report(diags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the crate is a testing one.
|
/// Returns true if the crate is a testing one.
|
||||||
|
Loading…
Reference in New Issue
Block a user