Skip to content

Commit 6d31ac2

Browse files
committed
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.
1 parent 1558852 commit 6d31ac2

File tree

2 files changed

+8
-18
lines changed

2 files changed

+8
-18
lines changed

compiler/rustc_errors/src/lib.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -1038,10 +1038,6 @@ impl DiagCtxt {
10381038
}
10391039
}
10401040

1041-
pub fn take_future_breakage_diagnostics(&self) -> Vec<Diagnostic> {
1042-
std::mem::take(&mut self.inner.borrow_mut().future_breakage_diagnostics)
1043-
}
1044-
10451041
pub fn abort_if_errors(&self) {
10461042
let mut inner = self.inner.borrow_mut();
10471043
inner.emit_stashed_diagnostics();
@@ -1149,8 +1145,12 @@ impl DiagCtxt {
11491145
self.inner.borrow_mut().emitter.emit_artifact_notification(path, artifact_type);
11501146
}
11511147

1152-
pub fn emit_future_breakage_report(&self, diags: Vec<Diagnostic>) {
1153-
self.inner.borrow_mut().emitter.emit_future_breakage_report(diags)
1148+
pub fn emit_future_breakage_report(&self) {
1149+
let mut inner = self.inner.borrow_mut();
1150+
let diags = std::mem::take(&mut inner.future_breakage_diagnostics);
1151+
if !diags.is_empty() {
1152+
inner.emitter.emit_future_breakage_report(diags);
1153+
}
11541154
}
11551155

11561156
pub fn emit_unused_externs(

compiler/rustc_session/src/session.rs

+2-12
Original file line numberDiff line numberDiff line change
@@ -288,19 +288,9 @@ impl Session {
288288
pub fn finish_diagnostics(&self, registry: &Registry) {
289289
self.check_miri_unleashed_features();
290290
self.dcx().print_error_count(registry);
291-
self.emit_future_breakage();
292-
}
293-
294-
fn emit_future_breakage(&self) {
295-
if !self.opts.json_future_incompat {
296-
return;
297-
}
298-
299-
let diags = self.dcx().take_future_breakage_diagnostics();
300-
if diags.is_empty() {
301-
return;
291+
if self.opts.json_future_incompat {
292+
self.dcx().emit_future_breakage_report();
302293
}
303-
self.dcx().emit_future_breakage_report(diags);
304294
}
305295

306296
/// Returns true if the crate is a testing one.

0 commit comments

Comments
 (0)