diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_errors/emitter.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/imports/import-crate-var.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/macros/must-use-in-macro-55516.stderr | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs index 98db0097c74..ee2a1b69cbd 100644 --- a/src/librustc_errors/emitter.rs +++ b/src/librustc_errors/emitter.rs @@ -6,6 +6,7 @@ use crate::{ Level, CodeSuggestion, DiagnosticBuilder, SubDiagnostic, SuggestionStyle, SourceMapperDyn, DiagnosticId, }; +use crate::Level::Error; use crate::snippet::{Annotation, AnnotationType, Line, MultilineAnnotation, StyledString, Style}; use crate::styled_buffer::StyledBuffer; @@ -72,6 +73,7 @@ impl Emitter for EmitterWriter { self.fix_multispans_in_std_macros(&mut primary_span, &mut children, + &db.level, db.handler.flags.external_macro_backtrace); self.emit_messages_default(&db.level, @@ -888,18 +890,27 @@ impl EmitterWriter { fn fix_multispans_in_std_macros(&mut self, span: &mut MultiSpan, children: &mut Vec<SubDiagnostic>, + level: &Level, backtrace: bool) { let mut spans_updated = self.fix_multispan_in_std_macros(span, backtrace); for child in children.iter_mut() { spans_updated |= self.fix_multispan_in_std_macros(&mut child.span, backtrace); } + let msg = if level == &Error { + "this error originates in a macro outside of the current crate \ + (in Nightly builds, run with -Z external-macro-backtrace \ + for more info)".to_string() + } else { + "this warning originates in a macro outside of the current crate \ + (in Nightly builds, run with -Z external-macro-backtrace \ + for more info)".to_string() + }; + if spans_updated { children.push(SubDiagnostic { level: Level::Note, message: vec![ - ("this error originates in a macro outside of the current crate \ - (in Nightly builds, run with -Z external-macro-backtrace \ - for more info)".to_string(), + (msg, Style::NoStyle), ], span: MultiSpan::new(), diff --git a/src/test/ui/imports/import-crate-var.stderr b/src/test/ui/imports/import-crate-var.stderr index 928256543bc..4c358a81cc1 100644 --- a/src/test/ui/imports/import-crate-var.stderr +++ b/src/test/ui/imports/import-crate-var.stderr @@ -5,5 +5,5 @@ LL | m!(); | ^^^^^ | = note: `use $crate;` was erroneously allowed and will become a hard error in a future release - = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) + = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) diff --git a/src/test/ui/macros/must-use-in-macro-55516.stderr b/src/test/ui/macros/must-use-in-macro-55516.stderr index 623b5745a35..302c8aa7e6a 100644 --- a/src/test/ui/macros/must-use-in-macro-55516.stderr +++ b/src/test/ui/macros/must-use-in-macro-55516.stderr @@ -6,5 +6,5 @@ LL | write!(&mut example, "{}", 42); | = note: `-W unused-must-use` implied by `-W unused` = note: this `Result` may be an `Err` variant, which should be handled - = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) + = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) |
