about summary refs log tree commit diff
path: root/compiler/rustc_errors/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-01-12 00:30:04 +0000
committerMichael Goulet <michael@errs.io>2024-01-12 03:30:17 +0000
commit7df43d3c814b4d4a2d0231a5d02fe36e70901627 (patch)
treee369ba53a51df979b157128a66397275df4d3d0b /compiler/rustc_errors/src
parenteb79bc0470e0eefbc7608cffb99879969d68faea (diff)
downloadrust-7df43d3c814b4d4a2d0231a5d02fe36e70901627.tar.gz
rust-7df43d3c814b4d4a2d0231a5d02fe36e70901627.zip
Give me a way to emit all the delayed bugs
Diffstat (limited to 'compiler/rustc_errors/src')
-rw-r--r--compiler/rustc_errors/src/lib.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs
index aefebfec448..8c2752af659 100644
--- a/compiler/rustc_errors/src/lib.rs
+++ b/compiler/rustc_errors/src/lib.rs
@@ -533,6 +533,9 @@ pub struct DiagCtxtFlags {
     /// If Some, the Nth error-level diagnostic is upgraded to bug-level.
     /// (rustc: see `-Z treat-err-as-bug`)
     pub treat_err_as_bug: Option<NonZeroUsize>,
+    /// Eagerly emit delayed bugs as errors, so that the compiler debugger may
+    /// see all of the errors being emitted at once.
+    pub eagerly_emit_delayed_bugs: bool,
     /// Show macro backtraces.
     /// (rustc: see `-Z macro-backtrace`)
     pub macro_backtrace: bool,
@@ -1274,6 +1277,9 @@ impl DiagCtxtInner {
         // when an error is first emitted, also), but maybe there's a case
         // in which that's not sound? otherwise this is really inefficient.
         match diagnostic.level {
+            DelayedBug(_) if self.flags.eagerly_emit_delayed_bugs => {
+                diagnostic.level = Error;
+            }
             DelayedBug(DelayedBugKind::Normal) => {
                 let backtrace = std::backtrace::Backtrace::capture();
                 self.span_delayed_bugs