diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-03-12 06:29:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-12 06:29:03 +0100 |
| commit | 0b127d82f3ec897996248c62589a8bcb827a4b53 (patch) | |
| tree | 5678881a5f665332c6937ce27b963e05efdd79ae /compiler/rustc_errors | |
| parent | 60f4b7a56e5968c97a0a5a5571793615fb29cff6 (diff) | |
| parent | cfbc1b96d5ea70b8f6dea8fa86450d40c72c7036 (diff) | |
| download | rust-0b127d82f3ec897996248c62589a8bcb827a4b53.tar.gz rust-0b127d82f3ec897996248c62589a8bcb827a4b53.zip | |
Rollup merge of #122194 - oli-obk:stash_delay_bug, r=nnethercote
Enable creating backtraces via -Ztreat-err-as-bug when stashing errors r? `@nnethercote` Otherwise I can't debug stashed errors because I can't find their source
Diffstat (limited to 'compiler/rustc_errors')
| -rw-r--r-- | compiler/rustc_errors/src/lib.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index d4f884d49ea..286d4621850 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -769,13 +769,10 @@ impl DiagCtxt { format!("invalid level in `stash_diagnostic`: {:?}", diag.level), ); } - Error => { - // This `unchecked_error_guaranteed` is valid. It is where the - // `ErrorGuaranteed` for stashed errors originates. See - // `DiagCtxtInner::drop`. - #[allow(deprecated)] - Some(ErrorGuaranteed::unchecked_error_guaranteed()) - } + // We delay a bug here so that `-Ztreat-err-as-bug -Zeagerly-emit-delayed-bugs` + // can be used to create a backtrace at the stashing site insted of whenever the + // diagnostic context is dropped and thus delayed bugs are emitted. + Error => Some(self.span_delayed_bug(span, "stashing {key:?}")), DelayedBug => return self.inner.borrow_mut().emit_diagnostic(diag), ForceWarning(_) | Warning | Note | OnceNote | Help | OnceHelp | FailureNote | Allow | Expect(_) => None, |
