From c45871ba02430c3af6453d5636f8ad0afb7eb35f Mon Sep 17 00:00:00 2001 From: Esteban Küber Date: Mon, 5 Nov 2018 16:27:28 -0800 Subject: Keep label on moved spans and point at macro invocation on parse error --- src/librustc_errors/diagnostic.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/librustc_errors') diff --git a/src/librustc_errors/diagnostic.rs b/src/librustc_errors/diagnostic.rs index a323282f233..ea425ad4c47 100644 --- a/src/librustc_errors/diagnostic.rs +++ b/src/librustc_errors/diagnostic.rs @@ -139,6 +139,17 @@ impl Diagnostic { self } + pub fn replace_span_with(&mut self, after: Span) -> &mut Self { + let before = self.span.clone(); + self.set_span(after); + for span_label in before.span_labels() { + if let Some(label) = span_label.label { + self.span_label(after, label); + } + } + self + } + pub fn note_expected_found(&mut self, label: &dyn fmt::Display, expected: DiagnosticStyledString, -- cgit 1.4.1-3-g733a5