about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Burka <alex@alexburka.com>2017-11-20 18:03:20 +0000
committerAlex Burka <alex@alexburka.com>2017-11-20 18:03:20 +0000
commitb34a7ffb2524bbe2e8d563a846f6c9f8e2453c1a (patch)
tree34577c495feedd5f61208cc3a85c78f458604349
parent30a661409cbdd0fb7ab4386952d9e0ecdd78abfa (diff)
downloadrust-b34a7ffb2524bbe2e8d563a846f6c9f8e2453c1a.tar.gz
rust-b34a7ffb2524bbe2e8d563a846f6c9f8e2453c1a.zip
address review comments
-rw-r--r--src/librustc/session/config.rs10
-rw-r--r--src/librustc/session/mod.rs20
-rw-r--r--src/librustc_driver/lib.rs5
-rw-r--r--src/librustc_driver/test.rs2
-rw-r--r--src/librustc_errors/emitter.rs16
-rw-r--r--src/librustc_errors/lib.rs62
-rw-r--r--src/librustc_trans/back/write.rs2
-rw-r--r--src/librustdoc/core.rs1
-rw-r--r--src/librustdoc/test.rs4
-rw-r--r--src/libsyntax/parse/lexer/mod.rs2
-rw-r--r--src/libsyntax/parse/mod.rs1
-rw-r--r--src/libsyntax/parse/obsolete.rs2
-rw-r--r--src/libsyntax/test_snippet.rs2
-rw-r--r--src/test/ui/codemap_tests/bad-format-args.stderr6
-rw-r--r--src/test/ui/codemap_tests/issue-28308.stderr2
-rw-r--r--src/test/ui/cross-crate-macro-backtrace/main.stderr2
-rw-r--r--src/test/ui/fmt/format-string-error.stderr4
-rw-r--r--src/test/ui/lifetimes/borrowck-let-suggestion.stderr2
-rw-r--r--src/test/ui/macro_backtrace/main.rs2
-rw-r--r--src/test/ui/macros/format-foreign.stderr2
-rw-r--r--src/test/ui/macros/format-unused-lables.stderr6
-rw-r--r--src/test/ui/reachable/expr_again.stderr2
-rw-r--r--src/test/ui/reachable/expr_block.stderr2
-rw-r--r--src/test/ui/reachable/expr_if.stderr2
-rw-r--r--src/test/ui/reachable/expr_loop.stderr6
-rw-r--r--src/test/ui/reachable/expr_match.stderr4
-rw-r--r--src/test/ui/reachable/expr_while.stderr6
-rw-r--r--src/test/ui/span/coerce-suggestions.stderr2
-rw-r--r--src/test/ui/span/issue-33884.stderr2
-rw-r--r--src/test/ui/span/issue-40157.stderr2
-rw-r--r--src/test/ui/span/slice-borrow.stderr2
-rw-r--r--src/test/ui/type-check/cannot_infer_local_or_vec.stderr2
-rw-r--r--src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr2
-rw-r--r--src/tools/toolstate.toml2
34 files changed, 109 insertions, 82 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 25123acdc67..ee197a009f8 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1036,8 +1036,8 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
           "run all passes except translation; no output"),
     treat_err_as_bug: bool = (false, parse_bool, [TRACKED],
           "treat all errors that occur as bugs"),
-    macro_backtrace: bool = (false, parse_bool, [UNTRACKED],
-          "show macro backtraces even for foreign macros"),
+    external_macro_backtrace: bool = (false, parse_bool, [UNTRACKED],
+          "show macro backtraces even for non-local macros"),
     continue_parse_after_error: bool = (false, parse_bool, [TRACKED],
           "attempt to recover from parse errors (experimental)"),
     incremental: Option<String> = (None, parse_opt_string, [UNTRACKED],
@@ -2102,7 +2102,7 @@ mod tests {
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
-            assert!(!sess.diagnostic().can_emit_warnings);
+            assert!(!sess.diagnostic().flags.can_emit_warnings);
         }
 
         {
@@ -2113,7 +2113,7 @@ mod tests {
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
-            assert!(sess.diagnostic().can_emit_warnings);
+            assert!(sess.diagnostic().flags.can_emit_warnings);
         }
 
         {
@@ -2123,7 +2123,7 @@ mod tests {
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
-            assert!(sess.diagnostic().can_emit_warnings);
+            assert!(sess.diagnostic().flags.can_emit_warnings);
         }
     }
 
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index ab270648f3a..b2a27d927de 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -727,11 +727,11 @@ pub fn build_session_with_codemap(sopts: config::Options,
         .unwrap_or(false);
     let cap_lints_allow = sopts.lint_cap.map_or(false, |cap| cap == lint::Allow);
 
-    let can_print_warnings = !(warnings_allow || cap_lints_allow);
+    let can_emit_warnings = !(warnings_allow || cap_lints_allow);
 
     let treat_err_as_bug = sopts.debugging_opts.treat_err_as_bug;
 
-    let macro_backtrace = sopts.debugging_opts.macro_backtrace;
+    let external_macro_backtrace = sopts.debugging_opts.external_macro_backtrace;
 
     let emitter: Box<Emitter> = match (sopts.error_format, emitter_dest) {
         (config::ErrorOutputType::HumanReadable(color_config), None) => {
@@ -755,10 +755,14 @@ pub fn build_session_with_codemap(sopts: config::Options,
     };
 
     let diagnostic_handler =
-        errors::Handler::with_emitter(can_print_warnings,
-                                      treat_err_as_bug,
-                                      macro_backtrace,
-                                      emitter);
+        errors::Handler::with_emitter_and_flags(
+            emitter,
+            errors::HandlerFlags {
+                can_emit_warnings,
+                treat_err_as_bug,
+                external_macro_backtrace,
+                .. Default::default()
+            });
 
     build_session_(sopts,
                    local_crate_source_file,
@@ -928,7 +932,7 @@ pub fn early_error(output: config::ErrorOutputType, msg: &str) -> ! {
             Box::new(EmitterWriter::stderr(color_config, None, true))
         }
     };
-    let handler = errors::Handler::with_emitter(true, false, false, emitter);
+    let handler = errors::Handler::with_emitter(true, false, emitter);
     handler.emit(&MultiSpan::new(), msg, errors::Level::Fatal);
     panic!(errors::FatalError);
 }
@@ -943,7 +947,7 @@ pub fn early_warn(output: config::ErrorOutputType, msg: &str) {
             Box::new(EmitterWriter::stderr(color_config, None, true))
         }
     };
-    let handler = errors::Handler::with_emitter(true, false, false, emitter);
+    let handler = errors::Handler::with_emitter(true, false, emitter);
     handler.emit(&MultiSpan::new(), msg, errors::Level::Warning);
 }
 
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index 5ed549d0bbd..c5cce70c945 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -141,8 +141,7 @@ pub fn run<F>(run_compiler: F) -> isize
                         errors::emitter::EmitterWriter::stderr(errors::ColorConfig::Auto,
                                                                None,
                                                                true);
-                    let handler = errors::Handler::with_emitter(true, false, false,
-                                                                Box::new(emitter));
+                    let handler = errors::Handler::with_emitter(true, false, Box::new(emitter));
                     handler.emit(&MultiSpan::new(),
                                  "aborting due to previous error(s)",
                                  errors::Level::Fatal);
@@ -1222,7 +1221,7 @@ pub fn monitor<F: FnOnce() + Send + 'static>(f: F) {
                 Box::new(errors::emitter::EmitterWriter::stderr(errors::ColorConfig::Auto,
                                                                 None,
                                                                 false));
-            let handler = errors::Handler::with_emitter(true, false, false, emitter);
+            let handler = errors::Handler::with_emitter(true, false, emitter);
 
             // a .span_bug or .bug call has already printed what
             // it wants to print.
diff --git a/src/librustc_driver/test.rs b/src/librustc_driver/test.rs
index 8a4cc237805..78ce959e5c9 100644
--- a/src/librustc_driver/test.rs
+++ b/src/librustc_driver/test.rs
@@ -104,7 +104,7 @@ fn test_env<F>(source_string: &str,
     let mut options = config::basic_options();
     options.debugging_opts.verbose = true;
     options.unstable_features = UnstableFeatures::Allow;
-    let diagnostic_handler = errors::Handler::with_emitter(true, false, false, emitter);
+    let diagnostic_handler = errors::Handler::with_emitter(true, false, emitter);
 
     let cstore = Rc::new(CStore::new(::DefaultTransCrate::metadata_loader()));
     let sess = session::build_session_(options,
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index f3f5b443a43..17ed1734fe2 100644
--- a/src/librustc_errors/emitter.rs
+++ b/src/librustc_errors/emitter.rs
@@ -64,11 +64,11 @@ impl Emitter for EmitterWriter {
             }
         }
 
-        if !db.handler.macro_backtrace {
+        if !db.handler.flags.external_macro_backtrace {
             self.fix_multispans_in_std_macros(&mut primary_span, &mut children);
         }
         self.emit_messages_default(&db.level,
-                                   db.handler.macro_backtrace,
+                                   db.handler.flags.external_macro_backtrace,
                                    &db.styled_message(),
                                    &db.code,
                                    &primary_span,
@@ -798,7 +798,7 @@ impl EmitterWriter {
                 level: Level::Note,
                 message: vec![
                     (["this error originates in a macro outside of the current crate",
-                      "(run with -Z macro-backtrace for more info)"].join(" "),
+                      "(run with -Z external-macro-backtrace for more info)"].join(" "),
                      Style::NoStyle),
                 ],
                 span: MultiSpan::new(),
@@ -888,7 +888,7 @@ impl EmitterWriter {
                             msg: &Vec<(String, Style)>,
                             code: &Option<DiagnosticId>,
                             level: &Level,
-                            macro_backtrace: bool,
+                            external_macro_backtrace: bool,
                             max_line_num_len: usize,
                             is_secondary: bool)
                             -> io::Result<()> {
@@ -1086,7 +1086,7 @@ impl EmitterWriter {
             }
         }
 
-        if macro_backtrace {
+        if external_macro_backtrace {
             if let Some(ref primary_span) = msp.primary_span().as_ref() {
                 self.render_macro_backtrace_old_school(primary_span, &mut buffer)?;
             }
@@ -1183,7 +1183,7 @@ impl EmitterWriter {
     }
     fn emit_messages_default(&mut self,
                              level: &Level,
-                             macro_backtrace: bool,
+                             external_macro_backtrace: bool,
                              message: &Vec<(String, Style)>,
                              code: &Option<DiagnosticId>,
                              span: &MultiSpan,
@@ -1196,7 +1196,7 @@ impl EmitterWriter {
                                         message,
                                         code,
                                         level,
-                                        macro_backtrace,
+                                        external_macro_backtrace,
                                         max_line_num_len,
                                         false) {
             Ok(()) => {
@@ -1218,7 +1218,7 @@ impl EmitterWriter {
                                                         &child.styled_message(),
                                                         &None,
                                                         &child.level,
-                                                        macro_backtrace,
+                                                        external_macro_backtrace,
                                                         max_line_num_len,
                                                         true) {
                             Err(e) => panic!("failed to emit error: {}", e),
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 99d94aaf912..605cfc5ed12 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -233,11 +233,10 @@ pub use diagnostic_builder::DiagnosticBuilder;
 /// (fatal, bug, unimpl) may cause immediate exit,
 /// others log errors for later reporting.
 pub struct Handler {
+    pub flags: HandlerFlags,
+
     err_count: Cell<usize>,
     emitter: RefCell<Box<Emitter>>,
-    pub can_emit_warnings: bool,
-    treat_err_as_bug: bool,
-    pub macro_backtrace: bool,
     continue_after_error: Cell<bool>,
     delayed_span_bug: RefCell<Option<Diagnostic>>,
     tracked_diagnostics: RefCell<Option<Vec<Diagnostic>>>,
@@ -248,28 +247,55 @@ pub struct Handler {
     emitted_diagnostics: RefCell<FxHashSet<u128>>,
 }
 
+#[derive(Default)]
+pub struct HandlerFlags {
+    pub can_emit_warnings: bool,
+    pub treat_err_as_bug: bool,
+    pub external_macro_backtrace: bool,
+}
+
 impl Handler {
     pub fn with_tty_emitter(color_config: ColorConfig,
                             can_emit_warnings: bool,
                             treat_err_as_bug: bool,
-                            macro_backtrace: bool,
                             cm: Option<Rc<CodeMapper>>)
                             -> Handler {
+        Handler::with_tty_emitter_and_flags(
+            color_config,
+            cm,
+            HandlerFlags {
+                can_emit_warnings,
+                treat_err_as_bug,
+                .. Default::default()
+            })
+    }
+
+    pub fn with_tty_emitter_and_flags(color_config: ColorConfig,
+                                      cm: Option<Rc<CodeMapper>>,
+                                      flags: HandlerFlags)
+                                      -> Handler {
         let emitter = Box::new(EmitterWriter::stderr(color_config, cm, false));
-        Handler::with_emitter(can_emit_warnings, treat_err_as_bug, macro_backtrace, emitter)
+        Handler::with_emitter_and_flags(emitter, flags)
     }
 
     pub fn with_emitter(can_emit_warnings: bool,
                         treat_err_as_bug: bool,
-                        macro_backtrace: bool,
                         e: Box<Emitter>)
                         -> Handler {
+        Handler::with_emitter_and_flags(
+            e,
+            HandlerFlags {
+                can_emit_warnings,
+                treat_err_as_bug,
+                .. Default::default()
+            })
+    }
+
+    pub fn with_emitter_and_flags(e: Box<Emitter>, flags: HandlerFlags) -> Handler {
         Handler {
+            flags,
             err_count: Cell::new(0),
             emitter: RefCell::new(e),
-            can_emit_warnings,
-            treat_err_as_bug,
-            macro_backtrace,
             continue_after_error: Cell::new(true),
             delayed_span_bug: RefCell::new(None),
             tracked_diagnostics: RefCell::new(None),
@@ -297,7 +323,7 @@ impl Handler {
                                                     -> DiagnosticBuilder<'a> {
         let mut result = DiagnosticBuilder::new(self, Level::Warning, msg);
         result.set_span(sp);
-        if !self.can_emit_warnings {
+        if !self.flags.can_emit_warnings {
             result.cancel();
         }
         result
@@ -310,14 +336,14 @@ impl Handler {
         let mut result = DiagnosticBuilder::new(self, Level::Warning, msg);
         result.set_span(sp);
         result.code(code);
-        if !self.can_emit_warnings {
+        if !self.flags.can_emit_warnings {
             result.cancel();
         }
         result
     }
     pub fn struct_warn<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a> {
         let mut result = DiagnosticBuilder::new(self, Level::Warning, msg);
-        if !self.can_emit_warnings {
+        if !self.flags.can_emit_warnings {
             result.cancel();
         }
         result
@@ -380,7 +406,7 @@ impl Handler {
     }
 
     fn panic_if_treat_err_as_bug(&self) {
-        if self.treat_err_as_bug {
+        if self.flags.treat_err_as_bug {
             panic!("encountered error with `-Z treat_err_as_bug");
         }
     }
@@ -422,7 +448,7 @@ impl Handler {
         panic!(ExplicitBug);
     }
     pub fn delay_span_bug<S: Into<MultiSpan>>(&self, sp: S, msg: &str) {
-        if self.treat_err_as_bug {
+        if self.flags.treat_err_as_bug {
             self.span_bug(sp, msg);
         }
         let mut diagnostic = Diagnostic::new(Level::Bug, msg);
@@ -447,7 +473,7 @@ impl Handler {
         self.span_bug(sp, &format!("unimplemented {}", msg));
     }
     pub fn fatal(&self, msg: &str) -> FatalError {
-        if self.treat_err_as_bug {
+        if self.flags.treat_err_as_bug {
             self.bug(msg);
         }
         let mut db = DiagnosticBuilder::new(self, Fatal, msg);
@@ -455,7 +481,7 @@ impl Handler {
         FatalError
     }
     pub fn err(&self, msg: &str) {
-        if self.treat_err_as_bug {
+        if self.flags.treat_err_as_bug {
             self.bug(msg);
         }
         let mut db = DiagnosticBuilder::new(self, Error, msg);
@@ -508,7 +534,7 @@ impl Handler {
         panic!(self.fatal(&s));
     }
     pub fn emit(&self, msp: &MultiSpan, msg: &str, lvl: Level) {
-        if lvl == Warning && !self.can_emit_warnings {
+        if lvl == Warning && !self.flags.can_emit_warnings {
             return;
         }
         let mut db = DiagnosticBuilder::new(self, lvl, msg);
@@ -519,7 +545,7 @@ impl Handler {
         }
     }
     pub fn emit_with_code(&self, msp: &MultiSpan, msg: &str, code: DiagnosticId, lvl: Level) {
-        if lvl == Warning && !self.can_emit_warnings {
+        if lvl == Warning && !self.flags.can_emit_warnings {
             return;
         }
         let mut db = DiagnosticBuilder::new_with_code(self, lvl, Some(code), msg);
diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs
index 180a2f4ed6c..e443f13a7a1 100644
--- a/src/librustc_trans/back/write.rs
+++ b/src/librustc_trans/back/write.rs
@@ -353,7 +353,7 @@ pub struct CodegenContext {
 
 impl CodegenContext {
     pub fn create_diag_handler(&self) -> Handler {
-        Handler::with_emitter(true, false, false, Box::new(self.diag_emitter.clone()))
+        Handler::with_emitter(true, false, Box::new(self.diag_emitter.clone()))
     }
 
     pub fn config(&self, kind: ModuleKind) -> &ModuleConfig {
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 8db6cb51ce4..9172bfcde3f 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -141,7 +141,6 @@ pub fn run_core(search_paths: SearchPaths,
     let diagnostic_handler = errors::Handler::with_tty_emitter(ColorConfig::Auto,
                                                                true,
                                                                false,
-                                                               false,
                                                                Some(codemap.clone()));
 
     let cstore = Rc::new(CStore::new(box rustc_trans::LlvmMetadataLoader));
diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs
index cc59afb00d4..ea0d32e2a2d 100644
--- a/src/librustdoc/test.rs
+++ b/src/librustdoc/test.rs
@@ -82,7 +82,7 @@ pub fn run(input: &str,
     let codemap = Rc::new(CodeMap::new(sessopts.file_path_mapping()));
     let handler =
         errors::Handler::with_tty_emitter(ColorConfig::Auto,
-                                          true, false, false,
+                                          true, false,
                                           Some(codemap.clone()));
 
     let cstore = Rc::new(CStore::new(box rustc_trans::LlvmMetadataLoader));
@@ -246,7 +246,7 @@ fn run_test(test: &str, cratename: &str, filename: &str, cfgs: Vec<String>, libs
     let _bomb = Bomb(data.clone(), old.unwrap_or(box io::stdout()));
 
     // Compile the code
-    let diagnostic_handler = errors::Handler::with_emitter(true, false, false, box emitter);
+    let diagnostic_handler = errors::Handler::with_emitter(true, false, box emitter);
 
     let cstore = Rc::new(CStore::new(box rustc_trans::LlvmMetadataLoader));
     let mut sess = session::build_session_(
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs
index 924183fd64e..951163d35fa 100644
--- a/src/libsyntax/parse/lexer/mod.rs
+++ b/src/libsyntax/parse/lexer/mod.rs
@@ -1726,7 +1726,7 @@ mod tests {
                                                           Some(cm.clone()),
                                                           false);
         ParseSess {
-            span_diagnostic: errors::Handler::with_emitter(true, false, false, Box::new(emitter)),
+            span_diagnostic: errors::Handler::with_emitter(true, false, Box::new(emitter)),
             unstable_features: UnstableFeatures::from_environment(),
             config: CrateConfig::new(),
             included_mod_stack: RefCell::new(Vec::new()),
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs
index 11e4abdb350..c679efd41ea 100644
--- a/src/libsyntax/parse/mod.rs
+++ b/src/libsyntax/parse/mod.rs
@@ -58,7 +58,6 @@ impl ParseSess {
         let handler = Handler::with_tty_emitter(ColorConfig::Auto,
                                                 true,
                                                 false,
-                                                false,
                                                 Some(cm.clone()));
         ParseSess::with_span_handler(handler, cm)
     }
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 078e86aa294..49a697edf41 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -58,7 +58,7 @@ impl<'a> ParserObsoleteMethods for parser::Parser<'a> {
         };
 
         if !self.obsolete_set.contains(&kind) &&
-            (error || self.sess.span_diagnostic.can_emit_warnings) {
+            (error || self.sess.span_diagnostic.flags.can_emit_warnings) {
             err.note(desc);
             self.obsolete_set.insert(kind);
         }
diff --git a/src/libsyntax/test_snippet.rs b/src/libsyntax/test_snippet.rs
index 10ad440ca85..a29250ea5f1 100644
--- a/src/libsyntax/test_snippet.rs
+++ b/src/libsyntax/test_snippet.rs
@@ -62,7 +62,7 @@ fn test_harness(file_text: &str, span_labels: Vec<SpanLabel>, expected_output: &
     let emitter = EmitterWriter::new(Box::new(Shared { data: output.clone() }),
                                      Some(code_map.clone()),
                                      false);
-    let handler = Handler::with_emitter(true, false, false, Box::new(emitter));
+    let handler = Handler::with_emitter(true, false, Box::new(emitter));
     handler.span_err(msp, "foo");
 
     assert!(expected_output.chars().next() == Some('\n'),
diff --git a/src/test/ui/codemap_tests/bad-format-args.stderr b/src/test/ui/codemap_tests/bad-format-args.stderr
index ba7e88103f5..7faabc6b3a6 100644
--- a/src/test/ui/codemap_tests/bad-format-args.stderr
+++ b/src/test/ui/codemap_tests/bad-format-args.stderr
@@ -4,7 +4,7 @@ error: requires at least a format string argument
 12 |     format!();
    |     ^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: expected token: `,`
   --> $DIR/bad-format-args.rs:13:5
@@ -12,7 +12,7 @@ error: expected token: `,`
 13 |     format!("" 1);
    |     ^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: expected token: `,`
   --> $DIR/bad-format-args.rs:14:5
@@ -20,7 +20,7 @@ error: expected token: `,`
 14 |     format!("", 1 1);
    |     ^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/codemap_tests/issue-28308.stderr b/src/test/ui/codemap_tests/issue-28308.stderr
index a065e06926b..bb91bbbc9e3 100644
--- a/src/test/ui/codemap_tests/issue-28308.stderr
+++ b/src/test/ui/codemap_tests/issue-28308.stderr
@@ -4,7 +4,7 @@ error[E0600]: cannot apply unary operator `!` to type `&'static str`
 12 |     assert!("foo");
    |     ^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/cross-crate-macro-backtrace/main.stderr b/src/test/ui/cross-crate-macro-backtrace/main.stderr
index a6e589160a5..7d5055deb89 100644
--- a/src/test/ui/cross-crate-macro-backtrace/main.stderr
+++ b/src/test/ui/cross-crate-macro-backtrace/main.stderr
@@ -4,7 +4,7 @@ error: 1 positional argument in format string, but no arguments were given
 16 |     myprintln!("{}"); //~ ERROR in this macro
    |     ^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/fmt/format-string-error.stderr b/src/test/ui/fmt/format-string-error.stderr
index 9d45c84c03c..1da8833e0f8 100644
--- a/src/test/ui/fmt/format-string-error.stderr
+++ b/src/test/ui/fmt/format-string-error.stderr
@@ -5,7 +5,7 @@ error: invalid format string: expected `'}'` but string was terminated
    |     ^^^^^^^^^^^^^^
    |
    = note: if you intended to print `{`, you can escape it using `{{`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: invalid format string: unmatched `}` found
   --> $DIR/format-string-error.rs:14:5
@@ -14,7 +14,7 @@ error: invalid format string: unmatched `}` found
    |     ^^^^^^^^^^^^^^
    |
    = note: if you intended to print `}`, you can escape it using `}}`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/lifetimes/borrowck-let-suggestion.stderr b/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
index 70cde44e4c7..ea8aafadc8e 100644
--- a/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
+++ b/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
@@ -9,7 +9,7 @@ error[E0597]: borrowed value does not live long enough
    | - temporary value needs to live until here
    |
    = note: consider using a `let` binding to increase its lifetime
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/macro_backtrace/main.rs b/src/test/ui/macro_backtrace/main.rs
index 443574073f8..488aeddbf54 100644
--- a/src/test/ui/macro_backtrace/main.rs
+++ b/src/test/ui/macro_backtrace/main.rs
@@ -10,7 +10,7 @@
 
 // Test that the macro backtrace facility works
 // aux-build:ping.rs
-// compile-flags: -Z macro-backtrace
+// compile-flags: -Z external-macro-backtrace
 
 #[macro_use] extern crate ping;
 
diff --git a/src/test/ui/macros/format-foreign.stderr b/src/test/ui/macros/format-foreign.stderr
index 4d82aa437fb..cb27bb2281d 100644
--- a/src/test/ui/macros/format-foreign.stderr
+++ b/src/test/ui/macros/format-foreign.stderr
@@ -11,7 +11,7 @@ error: multiple unused formatting arguments
    = help: `%.*3$s` should be written as `{:.2$}`
    = help: `%s` should be written as `{}`
    = note: printf formatting not supported; see the documentation for `std::fmt`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: argument never used
   --> $DIR/format-foreign.rs:13:29
diff --git a/src/test/ui/macros/format-unused-lables.stderr b/src/test/ui/macros/format-unused-lables.stderr
index 1169ec11d2a..0205e9a9bfc 100644
--- a/src/test/ui/macros/format-unused-lables.stderr
+++ b/src/test/ui/macros/format-unused-lables.stderr
@@ -8,7 +8,7 @@ error: multiple unused formatting arguments
    |                      |    unused
    |                      unused
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: multiple unused formatting arguments
   --> $DIR/format-unused-lables.rs:14:5
@@ -23,7 +23,7 @@ error: multiple unused formatting arguments
 18 | |     );
    | |______^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: named argument never used
   --> $DIR/format-unused-lables.rs:20:35
@@ -47,7 +47,7 @@ error: multiple unused formatting arguments
    |
    = help: `$STUFF` should be written as `{STUFF}`
    = note: shell formatting not supported; see the documentation for `std::fmt`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 4 previous errors
 
diff --git a/src/test/ui/reachable/expr_again.stderr b/src/test/ui/reachable/expr_again.stderr
index ec659af008e..54b1d47710c 100644
--- a/src/test/ui/reachable/expr_again.stderr
+++ b/src/test/ui/reachable/expr_again.stderr
@@ -9,7 +9,7 @@ note: lint level defined here
    |
 13 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/reachable/expr_block.stderr b/src/test/ui/reachable/expr_block.stderr
index 074d43d3b39..8a17d4e6278 100644
--- a/src/test/ui/reachable/expr_block.stderr
+++ b/src/test/ui/reachable/expr_block.stderr
@@ -16,7 +16,7 @@ error: unreachable statement
 36 |         println!("foo");
    |         ^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/reachable/expr_if.stderr b/src/test/ui/reachable/expr_if.stderr
index c3841a85100..2b77f5bb3ca 100644
--- a/src/test/ui/reachable/expr_if.stderr
+++ b/src/test/ui/reachable/expr_if.stderr
@@ -9,7 +9,7 @@ note: lint level defined here
    |
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/reachable/expr_loop.stderr b/src/test/ui/reachable/expr_loop.stderr
index d9066a9ad93..bcfe2c5bd63 100644
--- a/src/test/ui/reachable/expr_loop.stderr
+++ b/src/test/ui/reachable/expr_loop.stderr
@@ -9,7 +9,7 @@ note: lint level defined here
    |
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: unreachable statement
   --> $DIR/expr_loop.rs:31:5
@@ -17,7 +17,7 @@ error: unreachable statement
 31 |     println!("I am dead.");
    |     ^^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: unreachable statement
   --> $DIR/expr_loop.rs:41:5
@@ -25,7 +25,7 @@ error: unreachable statement
 41 |     println!("I am dead.");
    |     ^^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/reachable/expr_match.stderr b/src/test/ui/reachable/expr_match.stderr
index 0580016070c..dcfefe109c3 100644
--- a/src/test/ui/reachable/expr_match.stderr
+++ b/src/test/ui/reachable/expr_match.stderr
@@ -16,7 +16,7 @@ error: unreachable statement
 25 |     println!("I am dead");
    |     ^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: unreachable statement
   --> $DIR/expr_match.rs:35:5
@@ -24,7 +24,7 @@ error: unreachable statement
 35 |     println!("I am dead");
    |     ^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/reachable/expr_while.stderr b/src/test/ui/reachable/expr_while.stderr
index 98c6cb66d59..31e63c324d2 100644
--- a/src/test/ui/reachable/expr_while.stderr
+++ b/src/test/ui/reachable/expr_while.stderr
@@ -9,7 +9,7 @@ note: lint level defined here
    |
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: unreachable statement
   --> $DIR/expr_while.rs:33:9
@@ -17,7 +17,7 @@ error: unreachable statement
 33 |         println!("I am dead.");
    |         ^^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: unreachable statement
   --> $DIR/expr_while.rs:35:5
@@ -25,7 +25,7 @@ error: unreachable statement
 35 |     println!("I am, too.");
    |     ^^^^^^^^^^^^^^^^^^^^^^^
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/span/coerce-suggestions.stderr b/src/test/ui/span/coerce-suggestions.stderr
index 426f7b74624..07f49d999a4 100644
--- a/src/test/ui/span/coerce-suggestions.stderr
+++ b/src/test/ui/span/coerce-suggestions.stderr
@@ -56,7 +56,7 @@ error[E0308]: mismatched types
    = note: expected type `&mut std::string::String`
               found type `std::string::String`
    = help: try with `&mut format!("foo")`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to 6 previous errors
 
diff --git a/src/test/ui/span/issue-33884.stderr b/src/test/ui/span/issue-33884.stderr
index bee9b20099f..22eecb9d882 100644
--- a/src/test/ui/span/issue-33884.stderr
+++ b/src/test/ui/span/issue-33884.stderr
@@ -6,7 +6,7 @@ error[E0308]: mismatched types
    |
    = note: expected type `std::fmt::Arguments<'_>`
               found type `std::string::String`
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/span/issue-40157.stderr b/src/test/ui/span/issue-40157.stderr
index c7f8ebab476..0879cb5fac2 100644
--- a/src/test/ui/span/issue-40157.stderr
+++ b/src/test/ui/span/issue-40157.stderr
@@ -8,7 +8,7 @@ error[E0597]: `foo` does not live long enough
    |      |                                              borrow occurs here
    |      borrowed value needs to live until here
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/span/slice-borrow.stderr b/src/test/ui/span/slice-borrow.stderr
index dcfeb9fa16e..f9dbddd226f 100644
--- a/src/test/ui/span/slice-borrow.stderr
+++ b/src/test/ui/span/slice-borrow.stderr
@@ -9,7 +9,7 @@ error[E0597]: borrowed value does not live long enough
 19 | }
    | - temporary value needs to live until here
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/type-check/cannot_infer_local_or_vec.stderr b/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
index 5e11af14f1b..923dcd01070 100644
--- a/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
+++ b/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
@@ -6,7 +6,7 @@ error[E0282]: type annotations needed
    |         |
    |         consider giving `x` a type
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr b/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
index a6936e9ea1f..24f2cef4a6c 100644
--- a/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
+++ b/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
@@ -6,7 +6,7 @@ error[E0282]: type annotations needed
    |         |
    |         consider giving the pattern a type
    |
-   = note: this error originates in a macro outside of the current crate (run with -Z macro-backtrace for more info)
+   = note: this error originates in a macro outside of the current crate (run with -Z external-macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/tools/toolstate.toml b/src/tools/toolstate.toml
index 59b8e1856dc..744a0f96ad7 100644
--- a/src/tools/toolstate.toml
+++ b/src/tools/toolstate.toml
@@ -32,4 +32,4 @@ clippy = "Testing"
 rls = "Testing"
 
 # ping @nrc
-rustfmt = "Broken"
+rustfmt = "Testing"