about summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authormark <markm@cs.wisc.edu>2020-05-26 12:49:11 -0500
committermark <markm@cs.wisc.edu>2020-06-15 18:25:58 -0500
commite855b90a8e159d27e014847ef50d9536aa1249d0 (patch)
tree0d005058016fdbc1add5bb925d7e8c9c7b502249 /src/librustc_errors
parent268decbac8bad298299702a0d17c9213f0a14f2e (diff)
track caller for delay_span_bug
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/lib.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 7261c638ce0..0c1418d3cad 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -5,6 +5,7 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 #![feature(crate_visibility_modifier)]
 #![feature(nll)]
+#![feature(track_caller)]
 
 pub use emitter::ColorConfig;
 
@@ -621,6 +622,7 @@ impl Handler {
         self.inner.borrow_mut().span_bug(span, msg)
     }
 
+    #[track_caller]
     pub fn delay_span_bug(&self, span: impl Into<MultiSpan>, msg: &str) {
         self.inner.borrow_mut().delay_span_bug(span, msg)
     }
@@ -873,6 +875,7 @@ impl HandlerInner {
         self.emit_diagnostic(diag.set_span(sp));
     }
 
+    #[track_caller]
     fn delay_span_bug(&mut self, sp: impl Into<MultiSpan>, msg: &str) {
         // This is technically `self.treat_err_as_bug()` but `delay_span_bug` is called before
         // incrementing `err_count` by one, so we need to +1 the comparing.
@@ -883,6 +886,7 @@ impl HandlerInner {
         }
         let mut diagnostic = Diagnostic::new(Level::Bug, msg);
         diagnostic.set_span(sp.into());
+        diagnostic.note(&format!("delayed at {}", std::panic::Location::caller()));
         self.delay_as_bug(diagnostic)
     }