about summary refs log tree commit diff
path: root/compiler/rustc_errors/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-05-10 07:39:31 +0000
committerbors <bors@rust-lang.org>2023-05-10 07:39:31 +0000
commit7a41eacf170ed234e059608515115e94fbe721fe (patch)
treebba0f53fa3cae672594193a410b19c864c12cc5f /compiler/rustc_errors/src
parent7fb4332ce452875b0f86dd62be0b1356e6d9537d (diff)
parent68c7d2083f315a349caf3202a5495b1c99a38461 (diff)
downloadrust-7a41eacf170ed234e059608515115e94fbe721fe.tar.gz
rust-7a41eacf170ed234e059608515115e94fbe721fe.zip
Auto merge of #2885 - RalfJung:rustup, r=RalfJung
Rustup
Diffstat (limited to 'compiler/rustc_errors/src')
-rw-r--r--compiler/rustc_errors/src/diagnostic_builder.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_errors/src/diagnostic_builder.rs b/compiler/rustc_errors/src/diagnostic_builder.rs
index ef528d87cb2..db97d96fccd 100644
--- a/compiler/rustc_errors/src/diagnostic_builder.rs
+++ b/compiler/rustc_errors/src/diagnostic_builder.rs
@@ -571,6 +571,14 @@ impl<'a, G: EmissionGuarantee> DiagnosticBuilder<'a, G> {
         Some((diagnostic, handler))
     }
 
+    /// Retrieves the [`Handler`] if available
+    pub fn handler(&self) -> Option<&Handler> {
+        match self.inner.state {
+            DiagnosticBuilderState::Emittable(handler) => Some(handler),
+            DiagnosticBuilderState::AlreadyEmittedOrDuringCancellation => None,
+        }
+    }
+
     /// Buffers the diagnostic for later emission,
     /// unless handler has disabled such buffering.
     pub fn buffer(self, buffered_diagnostics: &mut Vec<Diagnostic>) {