Auto merge of #132954 - matthiaskrgr:rollup-x3rww9h, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #131831 (extend the "if-unchanged" logic for compiler builds)
 - #132541 (Proper support for cross-crate recursive const stability checks)
 - #132657 (AIX: add run-make support)
 - #132901 (Warn about invalid `mir-enable-passes` pass names)
 - #132923 (Triagebot: Consolidate the T-compiler ad hoc assignment groups)
 - #132938 (Make precise capturing suggestion machine-applicable only if it has no APITs)
 - #132947 (clarify `must_produce_diag` ICE for debugging)

r? `@ghost`
`@rustbot` modify labels: rollup
This commit is contained in:
bors
2024-11-12 18:04:27 +00:00
63 changed files with 753 additions and 348 deletions

View File

@@ -623,12 +623,25 @@ impl Drop for DiagCtxtInner {
self.flush_delayed()
}
// Sanity check: did we use some of the expensive `trimmed_def_paths` functions
// unexpectedly, that is, without producing diagnostics? If so, for debugging purposes, we
// suggest where this happened and how to avoid it.
if !self.has_printed && !self.suppressed_expected_diag && !std::thread::panicking() {
if let Some(backtrace) = &self.must_produce_diag {
let suggestion = match backtrace.status() {
BacktraceStatus::Disabled => String::from(
"Backtraces are currently disabled: set `RUST_BACKTRACE=1` and re-run \
to see where it happened.",
),
BacktraceStatus::Captured => format!(
"This happened in the following `must_produce_diag` call's backtrace:\n\
{backtrace}",
),
_ => String::from("(impossible to capture backtrace where this happened)"),
};
panic!(
"must_produce_diag: `trimmed_def_paths` called but no diagnostics emitted; \
`with_no_trimmed_paths` for debugging. \
called at: {backtrace}"
"`trimmed_def_paths` called, diagnostics were expected but none were emitted. \
Use `with_no_trimmed_paths` for debugging. {suggestion}"
);
}
}