diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 7da1a6525537e..5d3861d9572ca 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -16,6 +16,7 @@ pub use emitter::ColorConfig;
 use Level::*;
 
 use emitter::{Emitter, EmitterWriter};
+use registry::Registry;
 
 use rustc_data_structures::sync::{self, Lrc, Lock, AtomicUsize, AtomicBool, SeqCst};
 use rustc_data_structures::fx::FxHashSet;
@@ -651,7 +652,7 @@ impl Handler {
         self.err_count() > 0
     }
 
-    pub fn print_error_count(&self) {
+    pub fn print_error_count(&self, registry: &Registry) {
         let s = match self.err_count() {
             0 => return,
             1 => "aborting due to previous error".to_string(),
@@ -666,19 +667,22 @@ impl Handler {
         let can_show_explain = self.emitter.borrow().should_show_explain();
         let are_there_diagnostics = !self.emitted_diagnostic_codes.borrow().is_empty();
         if can_show_explain && are_there_diagnostics {
-            let mut error_codes =
-                self.emitted_diagnostic_codes.borrow()
-                                             .iter()
-                                             .filter_map(|x| match *x {
-                                                 DiagnosticId::Error(ref s) => Some(s.clone()),
-                                                 _ => None,
-                                             })
-                                             .collect::<Vec<_>>();
+            let mut error_codes = self
+                .emitted_diagnostic_codes
+                .borrow()
+                .iter()
+                .filter_map(|x| match &x {
+                    DiagnosticId::Error(s) if registry.find_description(s).is_some() => {
+                        Some(s.clone())
+                    }
+                    _ => None,
+                })
+                .collect::<Vec<_>>();
             if !error_codes.is_empty() {
                 error_codes.sort();
                 if error_codes.len() > 1 {
                     let limit = if error_codes.len() > 9 { 9 } else { error_codes.len() };
-                    self.failure(&format!("Some errors occurred: {}{}",
+                    self.failure(&format!("Some errors have detailed explanations: {}{}",
                                           error_codes[..limit].join(", "),
                                           if error_codes.len() > 9 { "..." } else { "." }));
                     self.failure(&format!("For more information about an error, try \
diff --git a/src/librustc_interface/interface.rs b/src/librustc_interface/interface.rs
index 23575e51dfcd9..f2a21d61aed4a 100644
--- a/src/librustc_interface/interface.rs
+++ b/src/librustc_interface/interface.rs
@@ -111,7 +111,9 @@ where
         crate_name: config.crate_name,
     };
 
-    let _sess_abort_error = OnDrop(|| compiler.sess.diagnostic().print_error_count());
+    let _sess_abort_error = OnDrop(|| {
+        compiler.sess.diagnostic().print_error_count(&util::diagnostics_registry());
+    });
 
     if compiler.sess.profile_queries() {
         profile::begin(&compiler.sess);
diff --git a/src/test/ui-fulldeps/hash-stable-is-unstable.stderr b/src/test/ui-fulldeps/hash-stable-is-unstable.stderr
index b598c86c0e041..2c1aa1f5d869e 100644
--- a/src/test/ui-fulldeps/hash-stable-is-unstable.stderr
+++ b/src/test/ui-fulldeps/hash-stable-is-unstable.stderr
@@ -49,5 +49,5 @@ LL | #[derive(HashStable)]
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0601, E0658.
+Some errors have detailed explanations: E0601, E0658.
 For more information about an error, try `rustc --explain E0601`.
diff --git a/src/test/ui-fulldeps/macro-crate-rlib.stderr b/src/test/ui-fulldeps/macro-crate-rlib.stderr
index 0651cee56f772..a5a5456a316d1 100644
--- a/src/test/ui-fulldeps/macro-crate-rlib.stderr
+++ b/src/test/ui-fulldeps/macro-crate-rlib.stderr
@@ -6,4 +6,3 @@ LL | #![plugin(rlib_crate_test)]
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0457`.
diff --git a/src/test/ui/E0594.ast.nll.stderr b/src/test/ui/E0594.ast.nll.stderr
index cc1c968474170..4bc7fcf5c0f4a 100644
--- a/src/test/ui/E0594.ast.nll.stderr
+++ b/src/test/ui/E0594.ast.nll.stderr
@@ -6,4 +6,3 @@ LL |     NUM = 20;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/E0594.ast.stderr b/src/test/ui/E0594.ast.stderr
index 0c5316da75821..06171f1a9c15c 100644
--- a/src/test/ui/E0594.ast.stderr
+++ b/src/test/ui/E0594.ast.stderr
@@ -6,4 +6,3 @@ LL |     NUM = 20;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/E0594.mir.stderr b/src/test/ui/E0594.mir.stderr
index cc1c968474170..4bc7fcf5c0f4a 100644
--- a/src/test/ui/E0594.mir.stderr
+++ b/src/test/ui/E0594.mir.stderr
@@ -6,4 +6,3 @@ LL |     NUM = 20;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/E0660.stderr b/src/test/ui/E0660.stderr
index d355531ef5d91..ce34a9b01d755 100644
--- a/src/test/ui/E0660.stderr
+++ b/src/test/ui/E0660.stderr
@@ -12,4 +12,3 @@ LL |     asm!("nop" "nop" : "=r"(a));
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0660`.
diff --git a/src/test/ui/E0661.stderr b/src/test/ui/E0661.stderr
index 1f41f89608fdf..30a23fd58c57c 100644
--- a/src/test/ui/E0661.stderr
+++ b/src/test/ui/E0661.stderr
@@ -6,4 +6,3 @@ LL |     asm!("nop" : "r"(a));
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0661`.
diff --git a/src/test/ui/E0662.stderr b/src/test/ui/E0662.stderr
index 5dea744998d8a..0d3701aa955ec 100644
--- a/src/test/ui/E0662.stderr
+++ b/src/test/ui/E0662.stderr
@@ -6,4 +6,3 @@ LL |          : "=test"("a")
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0662`.
diff --git a/src/test/ui/E0663.stderr b/src/test/ui/E0663.stderr
index 01bf89ec79af9..46a079af15252 100644
--- a/src/test/ui/E0663.stderr
+++ b/src/test/ui/E0663.stderr
@@ -6,4 +6,3 @@ LL |          : "+test"("a")
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0663`.
diff --git a/src/test/ui/E0664.stderr b/src/test/ui/E0664.stderr
index 9c9f65ee6a96d..3a99fce6eed0f 100644
--- a/src/test/ui/E0664.stderr
+++ b/src/test/ui/E0664.stderr
@@ -6,4 +6,3 @@ LL |          : "{eax}"
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0664`.
diff --git a/src/test/ui/E0665.stderr b/src/test/ui/E0665.stderr
index 2c2b498e39a43..84fe3c013946a 100644
--- a/src/test/ui/E0665.stderr
+++ b/src/test/ui/E0665.stderr
@@ -6,4 +6,3 @@ LL | #[derive(Default)]
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0665`.
diff --git a/src/test/ui/anonymous-higher-ranked-lifetime.stderr b/src/test/ui/anonymous-higher-ranked-lifetime.stderr
index 9e84b14950964..86547303978d6 100644
--- a/src/test/ui/anonymous-higher-ranked-lifetime.stderr
+++ b/src/test/ui/anonymous-higher-ranked-lifetime.stderr
@@ -308,4 +308,3 @@ LL | fn h2<F>(_: F) where F: for<'t0> Fn(&(), Box<Fn(&())>, &'t0 (), fn(&(), &()
 
 error: aborting due to 22 previous errors
 
-For more information about this error, try `rustc --explain E0631`.
diff --git a/src/test/ui/asm/asm-bad-clobber.stderr b/src/test/ui/asm/asm-bad-clobber.stderr
index a279421241fac..15a14e776babd 100644
--- a/src/test/ui/asm/asm-bad-clobber.stderr
+++ b/src/test/ui/asm/asm-bad-clobber.stderr
@@ -6,4 +6,3 @@ LL |         asm!("xor %eax, %eax" : : : "{eax}");
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0664`.
diff --git a/src/test/ui/asm/asm-in-bad-modifier.stderr b/src/test/ui/asm/asm-in-bad-modifier.stderr
index 21e80fb98027a..b71eb8649bae0 100644
--- a/src/test/ui/asm/asm-in-bad-modifier.stderr
+++ b/src/test/ui/asm/asm-in-bad-modifier.stderr
@@ -12,5 +12,3 @@ LL |         asm!("mov $1, $0" : "=r"(y) : "+r"(5));
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0662, E0663.
-For more information about an error, try `rustc --explain E0662`.
diff --git a/src/test/ui/asm/asm-out-no-modifier.stderr b/src/test/ui/asm/asm-out-no-modifier.stderr
index 99134ceba3327..387a603f90e3a 100644
--- a/src/test/ui/asm/asm-out-no-modifier.stderr
+++ b/src/test/ui/asm/asm-out-no-modifier.stderr
@@ -6,4 +6,3 @@ LL |         asm!("mov $1, $0" : "r"(x) : "r"(5));
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0661`.
diff --git a/src/test/ui/associated-path-shl.stderr b/src/test/ui/associated-path-shl.stderr
index e1a1e63637271..23918ed2e3912 100644
--- a/src/test/ui/associated-path-shl.stderr
+++ b/src/test/ui/associated-path-shl.stderr
@@ -39,5 +39,5 @@ LL |     let 0 ..= <<A>::B>::C;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0029, E0412.
+Some errors have detailed explanations: E0029, E0412.
 For more information about an error, try `rustc --explain E0029`.
diff --git a/src/test/ui/associated-type/associated-type-projection-from-multiple-supertraits.stderr b/src/test/ui/associated-type/associated-type-projection-from-multiple-supertraits.stderr
index 0994dc87c994b..dd46ad64692c0 100644
--- a/src/test/ui/associated-type/associated-type-projection-from-multiple-supertraits.stderr
+++ b/src/test/ui/associated-type/associated-type-projection-from-multiple-supertraits.stderr
@@ -45,5 +45,5 @@ LL | fn paint<C:BoxCar>(c: C, d: C::Color) {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0191, E0221.
+Some errors have detailed explanations: E0191, E0221.
 For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/ui/associated-types/associated-types-eq-3.stderr b/src/test/ui/associated-types/associated-types-eq-3.stderr
index 31d2c5f318e50..66fa4c288ca46 100644
--- a/src/test/ui/associated-types/associated-types-eq-3.stderr
+++ b/src/test/ui/associated-types/associated-types-eq-3.stderr
@@ -33,5 +33,5 @@ LL |     baz(&a);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0271, E0308.
+Some errors have detailed explanations: E0271, E0308.
 For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/ui/associated-types/associated-types-eq-hr.stderr b/src/test/ui/associated-types/associated-types-eq-hr.stderr
index 82d15b92b55fe..353829c2f7631 100644
--- a/src/test/ui/associated-types/associated-types-eq-hr.stderr
+++ b/src/test/ui/associated-types/associated-types-eq-hr.stderr
@@ -122,5 +122,5 @@ LL | | }
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0271, E0277.
+Some errors have detailed explanations: E0271, E0277.
 For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/ui/associated-types/associated-types-overridden-binding.stderr b/src/test/ui/associated-types/associated-types-overridden-binding.stderr
index a26ee23894f6d..fced38caaba91 100644
--- a/src/test/ui/associated-types/associated-types-overridden-binding.stderr
+++ b/src/test/ui/associated-types/associated-types-overridden-binding.stderr
@@ -12,4 +12,3 @@ LL | trait Foo: Iterator<Item = i32> {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0284`.
diff --git a/src/test/ui/associated-types/associated-types-path-1.stderr b/src/test/ui/associated-types/associated-types-path-1.stderr
index b6d3b53ba59b0..a10cf7f890c15 100644
--- a/src/test/ui/associated-types/associated-types-path-1.stderr
+++ b/src/test/ui/associated-types/associated-types-path-1.stderr
@@ -18,5 +18,5 @@ LL | pub fn f2<T: Foo + Bar>(a: T, x: T::A) {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0220, E0221.
+Some errors have detailed explanations: E0220, E0221.
 For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/ui/associated-types/associated-types-path-2.stderr b/src/test/ui/associated-types/associated-types-path-2.stderr
index be7097a018255..13d874bdb574d 100644
--- a/src/test/ui/associated-types/associated-types-path-2.stderr
+++ b/src/test/ui/associated-types/associated-types-path-2.stderr
@@ -48,5 +48,5 @@ LL |     let _: i32 = f2(2i32);
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn-body.stderr b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn-body.stderr
index d5310c47fcf1e..63d662f44658a 100644
--- a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn-body.stderr
+++ b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn-body.stderr
@@ -11,4 +11,3 @@ LL |     let z: I::A = if cond { x } else { y };
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn.stderr b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn.stderr
index e06ad648613d9..09f4f99703f9c 100644
--- a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn.stderr
+++ b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-fn.stderr
@@ -6,4 +6,3 @@ LL |     x: I::A)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0212`.
diff --git a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-struct.stderr b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-struct.stderr
index 4c9b7951393c5..189b19461f479 100644
--- a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-struct.stderr
+++ b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-struct.stderr
@@ -6,4 +6,3 @@ LL |     field: I::A
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0212`.
diff --git a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-trait-method.stderr b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-trait-method.stderr
index 445e1b19023f5..e1c169028c5c4 100644
--- a/src/test/ui/associated-types/associated-types-project-from-hrtb-in-trait-method.stderr
+++ b/src/test/ui/associated-types/associated-types-project-from-hrtb-in-trait-method.stderr
@@ -6,4 +6,3 @@ LL |     fn some_method(&self, arg: I::A);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0212`.
diff --git a/src/test/ui/associated-types/associated-types-subtyping-1.stderr b/src/test/ui/associated-types/associated-types-subtyping-1.stderr
index 58ceec9040b9d..660e5b3928acf 100644
--- a/src/test/ui/associated-types/associated-types-subtyping-1.stderr
+++ b/src/test/ui/associated-types/associated-types-subtyping-1.stderr
@@ -18,4 +18,3 @@ LL |     let _c: <T as Trait<'a>>::Type = b;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/associated-types/associated-types-unconstrained.stderr b/src/test/ui/associated-types/associated-types-unconstrained.stderr
index da14a69ae306a..26e5a6a503c6f 100644
--- a/src/test/ui/associated-types/associated-types-unconstrained.stderr
+++ b/src/test/ui/associated-types/associated-types-unconstrained.stderr
@@ -6,4 +6,3 @@ LL |     let x: isize = Foo::bar();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0284`.
diff --git a/src/test/ui/associated-types/cache/project-fn-ret-contravariant.krisskross.stderr b/src/test/ui/associated-types/cache/project-fn-ret-contravariant.krisskross.stderr
index fa4c6adb5fff7..dc9a549586bab 100644
--- a/src/test/ui/associated-types/cache/project-fn-ret-contravariant.krisskross.stderr
+++ b/src/test/ui/associated-types/cache/project-fn-ret-contravariant.krisskross.stderr
@@ -22,4 +22,3 @@ LL |    (a, b)
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/associated-types/cache/project-fn-ret-contravariant.transmute.stderr b/src/test/ui/associated-types/cache/project-fn-ret-contravariant.transmute.stderr
index 4309373f123f9..15bebce47dd6a 100644
--- a/src/test/ui/associated-types/cache/project-fn-ret-contravariant.transmute.stderr
+++ b/src/test/ui/associated-types/cache/project-fn-ret-contravariant.transmute.stderr
@@ -23,4 +23,3 @@ LL |    bar(foo, x)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/associated-types/cache/project-fn-ret-invariant.krisskross.stderr b/src/test/ui/associated-types/cache/project-fn-ret-invariant.krisskross.stderr
index 5009e0868a7d4..6accf8110ad1e 100644
--- a/src/test/ui/associated-types/cache/project-fn-ret-invariant.krisskross.stderr
+++ b/src/test/ui/associated-types/cache/project-fn-ret-invariant.krisskross.stderr
@@ -21,4 +21,3 @@ LL |    let b = bar(foo, x);
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/associated-types/cache/project-fn-ret-invariant.oneuse.stderr b/src/test/ui/associated-types/cache/project-fn-ret-invariant.oneuse.stderr
index 65d16440ac9b0..ef036bd8fbaa8 100644
--- a/src/test/ui/associated-types/cache/project-fn-ret-invariant.oneuse.stderr
+++ b/src/test/ui/associated-types/cache/project-fn-ret-invariant.oneuse.stderr
@@ -11,4 +11,3 @@ LL |    let b = bar(f, y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/associated-types/cache/project-fn-ret-invariant.transmute.stderr b/src/test/ui/associated-types/cache/project-fn-ret-invariant.transmute.stderr
index b8b1a979c363a..62b4cb10911fb 100644
--- a/src/test/ui/associated-types/cache/project-fn-ret-invariant.transmute.stderr
+++ b/src/test/ui/associated-types/cache/project-fn-ret-invariant.transmute.stderr
@@ -19,4 +19,3 @@ LL | fn baz<'a,'b>(x: Type<'a>) -> Type<'static> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/augmented-assignments.nll.stderr b/src/test/ui/augmented-assignments.nll.stderr
index e205e2a87810f..1b3c2fccf95a1 100644
--- a/src/test/ui/augmented-assignments.nll.stderr
+++ b/src/test/ui/augmented-assignments.nll.stderr
@@ -18,5 +18,5 @@ LL |     y
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0505, E0596.
+Some errors have detailed explanations: E0505, E0596.
 For more information about an error, try `rustc --explain E0505`.
diff --git a/src/test/ui/augmented-assignments.stderr b/src/test/ui/augmented-assignments.stderr
index e429bf2a594fe..c0eddb40cf2d5 100644
--- a/src/test/ui/augmented-assignments.stderr
+++ b/src/test/ui/augmented-assignments.stderr
@@ -20,5 +20,5 @@ LL |     x;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0382, E0596.
+Some errors have detailed explanations: E0382, E0596.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/auto-trait-validation.stderr b/src/test/ui/auto-trait-validation.stderr
index e077982069e07..ae21984c06d72 100644
--- a/src/test/ui/auto-trait-validation.stderr
+++ b/src/test/ui/auto-trait-validation.stderr
@@ -18,5 +18,4 @@ LL | auto trait MyTrait { fn foo() {} }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0380, E0567, E0568.
-For more information about an error, try `rustc --explain E0380`.
+For more information about this error, try `rustc --explain E0380`.
diff --git a/src/test/ui/await-keyword/2018-edition-error.stderr b/src/test/ui/await-keyword/2018-edition-error.stderr
index 19bf11a67d1c1..67ff6c5675abf 100644
--- a/src/test/ui/await-keyword/2018-edition-error.stderr
+++ b/src/test/ui/await-keyword/2018-edition-error.stderr
@@ -36,4 +36,3 @@ LL |     match await { await => () }
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0721`.
diff --git a/src/test/ui/await-keyword/post_expansion_error.stderr b/src/test/ui/await-keyword/post_expansion_error.stderr
index 76ae35b7517e3..9483f77422759 100644
--- a/src/test/ui/await-keyword/post_expansion_error.stderr
+++ b/src/test/ui/await-keyword/post_expansion_error.stderr
@@ -6,4 +6,3 @@ LL |     await!()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0721`.
diff --git a/src/test/ui/bad/bad-env-capture.stderr b/src/test/ui/bad/bad-env-capture.stderr
index 04975b0378098..f78a38a3dd45e 100644
--- a/src/test/ui/bad/bad-env-capture.stderr
+++ b/src/test/ui/bad/bad-env-capture.stderr
@@ -20,5 +20,5 @@ LL |     fn bar() { log(debug, x); }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0425, E0434.
+Some errors have detailed explanations: E0425, E0434.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/bad/bad-env-capture2.stderr b/src/test/ui/bad/bad-env-capture2.stderr
index f7524c6a09f0e..57c807fd7dfdf 100644
--- a/src/test/ui/bad/bad-env-capture2.stderr
+++ b/src/test/ui/bad/bad-env-capture2.stderr
@@ -20,5 +20,5 @@ LL |     fn bar() { log(debug, x); }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0425, E0434.
+Some errors have detailed explanations: E0425, E0434.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/bad/bad-env-capture3.stderr b/src/test/ui/bad/bad-env-capture3.stderr
index 137612c979088..d6eb4f86e11e0 100644
--- a/src/test/ui/bad/bad-env-capture3.stderr
+++ b/src/test/ui/bad/bad-env-capture3.stderr
@@ -20,5 +20,5 @@ LL |         fn bar() { log(debug, x); }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0425, E0434.
+Some errors have detailed explanations: E0425, E0434.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/bad/bad-expr-lhs.stderr b/src/test/ui/bad/bad-expr-lhs.stderr
index 3e41b7e658555..a0de6a73797e2 100644
--- a/src/test/ui/bad/bad-expr-lhs.stderr
+++ b/src/test/ui/bad/bad-expr-lhs.stderr
@@ -30,5 +30,5 @@ LL |     None = Some(3);
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0067, E0070.
+Some errors have detailed explanations: E0067, E0070.
 For more information about an error, try `rustc --explain E0067`.
diff --git a/src/test/ui/bad/bad-expr-path.stderr b/src/test/ui/bad/bad-expr-path.stderr
index 6dec74efd7185..15ac7f2b86f59 100644
--- a/src/test/ui/bad/bad-expr-path.stderr
+++ b/src/test/ui/bad/bad-expr-path.stderr
@@ -27,5 +27,5 @@ LL | fn main(arguments: Vec<String>) {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0425, E0580.
+Some errors have detailed explanations: E0425, E0580.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/bad/bad-expr-path2.stderr b/src/test/ui/bad/bad-expr-path2.stderr
index 8212b2392c4ac..45723168f197b 100644
--- a/src/test/ui/bad/bad-expr-path2.stderr
+++ b/src/test/ui/bad/bad-expr-path2.stderr
@@ -27,5 +27,5 @@ LL | fn main(arguments: Vec<String>) {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0423, E0425, E0580.
+Some errors have detailed explanations: E0423, E0425, E0580.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/bad/bad-extern-link-attrs.stderr b/src/test/ui/bad/bad-extern-link-attrs.stderr
index a77f5f9f4383f..18b0dc9ea386e 100644
--- a/src/test/ui/bad/bad-extern-link-attrs.stderr
+++ b/src/test/ui/bad/bad-extern-link-attrs.stderr
@@ -20,5 +20,5 @@ LL | #[link(name = "foo", kind = "bar")]
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0454, E0458, E0459.
+Some errors have detailed explanations: E0454, E0458, E0459.
 For more information about an error, try `rustc --explain E0454`.
diff --git a/src/test/ui/bad/bad-intrinsic-monomorphization.stderr b/src/test/ui/bad/bad-intrinsic-monomorphization.stderr
index dee33f574d84a..34fdba11367ea 100644
--- a/src/test/ui/bad/bad-intrinsic-monomorphization.stderr
+++ b/src/test/ui/bad/bad-intrinsic-monomorphization.stderr
@@ -18,4 +18,3 @@ LL |     simd_add(a, b)
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/bad/bad-sized.stderr b/src/test/ui/bad/bad-sized.stderr
index 51b8474555293..321f97541587c 100644
--- a/src/test/ui/bad/bad-sized.stderr
+++ b/src/test/ui/bad/bad-sized.stderr
@@ -26,5 +26,5 @@ LL |     let x: Vec<Trait + Sized> = Vec::new();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0225, E0277.
+Some errors have detailed explanations: E0225, E0277.
 For more information about an error, try `rustc --explain E0225`.
diff --git a/src/test/ui/binop/binop-move-semantics.nll.stderr b/src/test/ui/binop/binop-move-semantics.nll.stderr
index 7d54de655bf58..146e378146333 100644
--- a/src/test/ui/binop/binop-move-semantics.nll.stderr
+++ b/src/test/ui/binop/binop-move-semantics.nll.stderr
@@ -91,5 +91,5 @@ LL | |     &mut f;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0382, E0502, E0505, E0507.
+Some errors have detailed explanations: E0382, E0502, E0505, E0507.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/binop/binop-move-semantics.stderr b/src/test/ui/binop/binop-move-semantics.stderr
index acc2620681b6a..1e48ad22d870f 100644
--- a/src/test/ui/binop/binop-move-semantics.stderr
+++ b/src/test/ui/binop/binop-move-semantics.stderr
@@ -76,5 +76,5 @@ LL |     &mut f;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0382, E0502, E0505, E0507.
+Some errors have detailed explanations: E0382, E0502, E0505, E0507.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/block-result/issue-20862.stderr b/src/test/ui/block-result/issue-20862.stderr
index fb4feff37134a..6dc17815facd5 100644
--- a/src/test/ui/block-result/issue-20862.stderr
+++ b/src/test/ui/block-result/issue-20862.stderr
@@ -25,5 +25,5 @@ LL |       let x = foo(5)(2);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0618.
+Some errors have detailed explanations: E0308, E0618.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/block-result/issue-22645.stderr b/src/test/ui/block-result/issue-22645.stderr
index e1e6428eda255..d2ec0dc06bd80 100644
--- a/src/test/ui/block-result/issue-22645.stderr
+++ b/src/test/ui/block-result/issue-22645.stderr
@@ -22,5 +22,5 @@ LL |   b + 3
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.nll.stderr b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.nll.stderr
index af45c8a980dfc..17969137a9881 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.nll.stderr
+++ b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.nll.stderr
@@ -72,5 +72,4 @@ LL |         let _h = to_fn_mut(move || { set(&mut z); to_fn(move || z = 42); })
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
index 09adb350e00de..f979f385c9443 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
+++ b/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
@@ -74,5 +74,5 @@ LL |         let _h = to_fn_mut(move || { set(&mut z); to_fn(move || z = 42); })
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0387, E0594, E0596.
+Some errors have detailed explanations: E0387, E0596.
 For more information about an error, try `rustc --explain E0387`.
diff --git a/src/test/ui/borrowck/borrow-tuple-fields.nll.stderr b/src/test/ui/borrowck/borrow-tuple-fields.nll.stderr
index 5c40555c501cb..503ea49d74ee0 100644
--- a/src/test/ui/borrowck/borrow-tuple-fields.nll.stderr
+++ b/src/test/ui/borrowck/borrow-tuple-fields.nll.stderr
@@ -61,5 +61,5 @@ LL |     a.use_mut();
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0499, E0502, E0505.
+Some errors have detailed explanations: E0499, E0502, E0505.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrow-tuple-fields.stderr b/src/test/ui/borrowck/borrow-tuple-fields.stderr
index f7fc06e1b4fbd..83017564c247b 100644
--- a/src/test/ui/borrowck/borrow-tuple-fields.stderr
+++ b/src/test/ui/borrowck/borrow-tuple-fields.stderr
@@ -60,5 +60,5 @@ LL | }
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0499, E0502, E0505.
+Some errors have detailed explanations: E0499, E0502, E0505.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-access-permissions.ast.stderr b/src/test/ui/borrowck/borrowck-access-permissions.ast.stderr
index a1cc0638af36e..10f8d5f857eb2 100644
--- a/src/test/ui/borrowck/borrowck-access-permissions.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-access-permissions.ast.stderr
@@ -42,5 +42,5 @@ LL |         let _y = &mut *foo_ref.f;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0389, E0596.
+Some errors have detailed explanations: E0389, E0596.
 For more information about an error, try `rustc --explain E0389`.
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-variant.nll.stderr b/src/test/ui/borrowck/borrowck-anon-fields-variant.nll.stderr
index 6c8a32ee39167..649fe3e13526b 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-variant.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-anon-fields-variant.nll.stderr
@@ -39,5 +39,5 @@ LL |     *a += 1;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0503.
+Some errors have detailed explanations: E0499, E0503.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-asm.ast.nll.stderr b/src/test/ui/borrowck/borrowck-asm.ast.nll.stderr
index dd6e5ebe0ed3d..3fb1c9b22cf5d 100644
--- a/src/test/ui/borrowck/borrowck-asm.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-asm.ast.nll.stderr
@@ -77,5 +77,5 @@ LL |             asm!("nop" : : "r"(x), "r"(x) );
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0381, E0382, E0384, E0503, E0506.
+Some errors have detailed explanations: E0381, E0382, E0384, E0503, E0506.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-asm.ast.stderr b/src/test/ui/borrowck/borrowck-asm.ast.stderr
index 8418bb7c5afb6..6d568061f3865 100644
--- a/src/test/ui/borrowck/borrowck-asm.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-asm.ast.stderr
@@ -72,5 +72,5 @@ LL |             asm!("nop" : : "r"(x), "r"(x) );
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0381, E0382, E0384, E0503, E0506.
+Some errors have detailed explanations: E0381, E0382, E0384, E0503, E0506.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-asm.mir.stderr b/src/test/ui/borrowck/borrowck-asm.mir.stderr
index dd6e5ebe0ed3d..3fb1c9b22cf5d 100644
--- a/src/test/ui/borrowck/borrowck-asm.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-asm.mir.stderr
@@ -77,5 +77,5 @@ LL |             asm!("nop" : : "r"(x), "r"(x) );
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0381, E0382, E0384, E0503, E0506.
+Some errors have detailed explanations: E0381, E0382, E0384, E0503, E0506.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.nll.stderr b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.nll.stderr
index d8ccf36852a51..38fcfbfc2a026 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.nll.stderr
@@ -16,4 +16,3 @@ LL |     *s.pointer += 1;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.nll.stderr b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.nll.stderr
index 0aacaf9cf4797..d6bd32a2e1601 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.nll.stderr
@@ -20,5 +20,5 @@ LL |         *z.pointer += 1;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0503, E0506.
+Some errors have detailed explanations: E0503, E0506.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.ast.nll.stderr b/src/test/ui/borrowck/borrowck-assign-to-constants.ast.nll.stderr
index 626e1ef8ad872..703a9222c5fb3 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-constants.ast.nll.stderr
@@ -6,4 +6,3 @@ LL |     foo = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.ast.stderr b/src/test/ui/borrowck/borrowck-assign-to-constants.ast.stderr
index e755785ef51b3..98ff53edc7eeb 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-constants.ast.stderr
@@ -6,4 +6,3 @@ LL |     foo = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.mir.stderr b/src/test/ui/borrowck/borrowck-assign-to-constants.mir.stderr
index 626e1ef8ad872..703a9222c5fb3 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-assign-to-constants.mir.stderr
@@ -6,4 +6,3 @@ LL |     foo = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.nll.stderr b/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.nll.stderr
index ad6bd7dc94262..134f5107daa3d 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.nll.stderr
@@ -112,5 +112,5 @@ LL |     let bar1 = &mut foo.bar1;
 
 error: aborting due to 11 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr b/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
index a4fb28d0e8151..95f6f03d4e564 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
@@ -164,5 +164,5 @@ LL | }
 
 error: aborting due to 15 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.nll.stderr b/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.nll.stderr
index b5c6184791875..ce5ce56dea27f 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.nll.stderr
@@ -112,5 +112,5 @@ LL |     let bar1 = &mut foo.bar1;
 
 error: aborting due to 11 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr b/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
index fe60d944a44fb..845aaa22be088 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
@@ -120,5 +120,5 @@ LL |     let bar1 = &mut foo.bar1;
 
 error: aborting due to 11 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.nll.stderr b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.nll.stderr
index 7c1c063d260b2..8115e3150fbce 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.nll.stderr
@@ -27,5 +27,5 @@ LL |     let x:  &mut isize = &mut **t0;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0502, E0594, E0596.
+Some errors have detailed explanations: E0502, E0596.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
index 709a797edcb4e..e2e5fb6d0f85e 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
@@ -25,5 +25,5 @@ LL |     let x:  &mut isize = &mut **t0;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0389, E0502.
+Some errors have detailed explanations: E0389, E0502.
 For more information about an error, try `rustc --explain E0389`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.nll.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.nll.stderr
index 4fc320c505947..dc52685363e39 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.nll.stderr
@@ -84,5 +84,4 @@ LL |     *x.y_mut() = 3;
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
index 2fe1461a303d5..ba799b1cbf621 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
@@ -84,5 +84,4 @@ LL |     *x.y_mut() = 3;
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.nll.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.nll.stderr
index cc4d91a58e937..1755b22f59dc2 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.nll.stderr
@@ -42,5 +42,4 @@ LL |     **x = 3;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
index fb79ccb701fb1..c44327df91664 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
+++ b/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
@@ -42,5 +42,4 @@ LL |     **x = 3;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-box-insensitivity.ast.stderr b/src/test/ui/borrowck/borrowck-box-insensitivity.ast.stderr
index 60c8b33ba15d3..6e6bc721ca20f 100644
--- a/src/test/ui/borrowck/borrowck-box-insensitivity.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-box-insensitivity.ast.stderr
@@ -161,5 +161,5 @@ LL | }
 
 error: aborting due to 16 previous errors
 
-Some errors occurred: E0382, E0502, E0503, E0505.
+Some errors have detailed explanations: E0382, E0502, E0503, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.nll.stderr b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.nll.stderr
index aac5fdf62aaa4..a41738f6ca8b5 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.nll.stderr
@@ -112,5 +112,5 @@ LL |     drop(c1);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0502, E0506.
+Some errors have detailed explanations: E0502, E0506.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.stderr b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.stderr
index d672d0ce0502c..d506599eb68d6 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.ast.stderr
@@ -92,5 +92,5 @@ LL | }
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0502, E0506.
+Some errors have detailed explanations: E0502, E0506.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.mir.stderr b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.mir.stderr
index aac5fdf62aaa4..a41738f6ca8b5 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-and-imm.mir.stderr
@@ -112,5 +112,5 @@ LL |     drop(c1);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0502, E0506.
+Some errors have detailed explanations: E0502, E0506.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.nll.stderr b/src/test/ui/borrowck/borrowck-closures-mut-of-imm.nll.stderr
index 0064417c57bf9..3be7d725eda3a 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-of-imm.nll.stderr
@@ -28,5 +28,4 @@ LL |     c2(); c1();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0524, E0596.
-For more information about an error, try `rustc --explain E0524`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr b/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr
index 2f7c6a1a56a5b..9890c04057ecd 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr
@@ -28,5 +28,4 @@ LL |     let mut c2 = || set(&mut *x);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0524, E0596.
-For more information about an error, try `rustc --explain E0524`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.nll.stderr b/src/test/ui/borrowck/borrowck-closures-mut-of-mut.nll.stderr
index 471173e595f47..a174388712158 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-of-mut.nll.stderr
@@ -15,4 +15,3 @@ LL |     c2(); c1();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0524`.
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr b/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr
index 2c5587710a154..efdcedb5f1d7f 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr
@@ -15,4 +15,3 @@ LL | }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0524`.
diff --git a/src/test/ui/borrowck/borrowck-closures-unique.nll.stderr b/src/test/ui/borrowck/borrowck-closures-unique.nll.stderr
index 3106f36ac8ba9..ea5250a5658d3 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-unique.nll.stderr
@@ -50,5 +50,4 @@ LL |     let c1 = |y: &'static mut isize| x = y;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0500, E0524, E0594.
-For more information about an error, try `rustc --explain E0500`.
+For more information about this error, try `rustc --explain E0500`.
diff --git a/src/test/ui/borrowck/borrowck-closures-unique.stderr b/src/test/ui/borrowck/borrowck-closures-unique.stderr
index 238b16f654e38..09dcb2c7779e3 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-unique.stderr
@@ -65,5 +65,5 @@ LL |     x
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0500, E0524, E0595.
+Some errors have detailed explanations: E0500, E0595.
 For more information about an error, try `rustc --explain E0500`.
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
index c6144695f7ae2..1883da59ebbd4 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
@@ -379,5 +379,5 @@ LL |                 drop(x);
 
 error: aborting due to 30 previous errors
 
-Some errors occurred: E0382, E0499, E0502, E0503.
+Some errors have detailed explanations: E0382, E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.stderr b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.stderr
index d892db8811ee2..beb009dbfe4ac 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.stderr
@@ -242,5 +242,5 @@ LL |                 drop(x);
 
 error: aborting due to 26 previous errors
 
-Some errors occurred: E0382, E0499, E0502, E0503.
+Some errors have detailed explanations: E0382, E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr b/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
index af78340ffdf37..595c3f6b0c5e4 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
@@ -373,5 +373,5 @@ LL |                 drop(x);
 
 error: aborting due to 32 previous errors
 
-Some errors occurred: E0382, E0499, E0502, E0503.
+Some errors have detailed explanations: E0382, E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr b/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
index b3451659bec5a..89523235481ad 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
@@ -128,5 +128,5 @@ LL |     x.b = box 1;
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0381, E0382, E0499, E0505.
+Some errors have detailed explanations: E0381, E0382, E0499, E0505.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity.stderr b/src/test/ui/borrowck/borrowck-field-sensitivity.stderr
index 0cf6f3f2182e3..d345d0a2fb14f 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity.stderr
+++ b/src/test/ui/borrowck/borrowck-field-sensitivity.stderr
@@ -125,5 +125,5 @@ LL |     drop(x.b);
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0381, E0382, E0499, E0505.
+Some errors have detailed explanations: E0381, E0382, E0499, E0505.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-insert-during-each.nll.stderr b/src/test/ui/borrowck/borrowck-insert-during-each.nll.stderr
index b004447bf45fb..200ce8ff44e22 100644
--- a/src/test/ui/borrowck/borrowck-insert-during-each.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-insert-during-each.nll.stderr
@@ -26,5 +26,5 @@ LL |             f.n.insert(*a);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0500, E0501.
+Some errors have detailed explanations: E0500, E0501.
 For more information about an error, try `rustc --explain E0500`.
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.ast.nll.stderr b/src/test/ui/borrowck/borrowck-issue-14498.ast.nll.stderr
index b53cfddbe9386..59576a2837e56 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-issue-14498.ast.nll.stderr
@@ -104,5 +104,4 @@ LL |     drop(p);
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0506, E0594.
-For more information about an error, try `rustc --explain E0506`.
+For more information about this error, try `rustc --explain E0506`.
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.ast.stderr b/src/test/ui/borrowck/borrowck-issue-14498.ast.stderr
index b002ee79083df..18391cfced798 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-issue-14498.ast.stderr
@@ -78,5 +78,5 @@ LL |     **y.a = 2;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0389, E0506.
+Some errors have detailed explanations: E0389, E0506.
 For more information about an error, try `rustc --explain E0389`.
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.mir.stderr b/src/test/ui/borrowck/borrowck-issue-14498.mir.stderr
index b53cfddbe9386..59576a2837e56 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-issue-14498.mir.stderr
@@ -104,5 +104,4 @@ LL |     drop(p);
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0506, E0594.
-For more information about an error, try `rustc --explain E0506`.
+For more information about this error, try `rustc --explain E0506`.
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-loop.ast.stderr b/src/test/ui/borrowck/borrowck-lend-flow-loop.ast.stderr
index ab10caa8e31b4..83462ecd06b71 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-loop.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-lend-flow-loop.ast.stderr
@@ -89,5 +89,5 @@ LL | }
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.nll.stderr b/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.nll.stderr
index ad74a89f6689c..aa874c34a22ed 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.nll.stderr
@@ -24,5 +24,5 @@ LL |     *q + 3; // OK to use the new alias `q`
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0502, E0503.
+Some errors have detailed explanations: E0502, E0503.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr b/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
index d180e3e701c61..fee3c7992ea99 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
+++ b/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
@@ -21,5 +21,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0502, E0503.
+Some errors have detailed explanations: E0502, E0503.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-move-error-with-note.nll.stderr b/src/test/ui/borrowck/borrowck-move-error-with-note.nll.stderr
index 25eb8d0134c30..de75210fcd2f8 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-move-error-with-note.nll.stderr
@@ -63,5 +63,5 @@ LL |         n => {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0507, E0509.
+Some errors have detailed explanations: E0507, E0509.
 For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-error-with-note.stderr b/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
index 8b0722916dbfe..55edb79296e06 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
+++ b/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
@@ -34,5 +34,5 @@ LL |         n => {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0507, E0509.
+Some errors have detailed explanations: E0507, E0509.
 For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-multiple-captures.nll.stderr b/src/test/ui/borrowck/borrowck-multiple-captures.nll.stderr
index 32c7067acc892..b6b46e4fe6b3d 100644
--- a/src/test/ui/borrowck/borrowck-multiple-captures.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-multiple-captures.nll.stderr
@@ -99,5 +99,5 @@ LL |         drop(x);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0382, E0505.
+Some errors have detailed explanations: E0382, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-multiple-captures.stderr b/src/test/ui/borrowck/borrowck-multiple-captures.stderr
index f25b19e3d2ee8..fba42010fd009 100644
--- a/src/test/ui/borrowck/borrowck-multiple-captures.stderr
+++ b/src/test/ui/borrowck/borrowck-multiple-captures.stderr
@@ -80,5 +80,5 @@ LL |         drop(x);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0382, E0504.
+Some errors have detailed explanations: E0382, E0504.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.nll.stderr b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.nll.stderr
index 925930acf8651..f2baee09376e2 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.nll.stderr
@@ -22,5 +22,5 @@ LL |     p.use_mut();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
index fb73dbd45104b..96fa571006a56 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
+++ b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
@@ -22,5 +22,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-mutate-in-guard.nll.stderr b/src/test/ui/borrowck/borrowck-mutate-in-guard.nll.stderr
index c1b794fc86e3b..f44c76534a2ed 100644
--- a/src/test/ui/borrowck/borrowck-mutate-in-guard.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-mutate-in-guard.nll.stderr
@@ -20,5 +20,5 @@ LL |         Enum::A(_) if { let y = &mut x; *y = Enum::B(false); false } => 1,
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0301, E0302.
+Some errors have detailed explanations: E0301, E0302.
 For more information about an error, try `rustc --explain E0301`.
diff --git a/src/test/ui/borrowck/borrowck-mutate-in-guard.stderr b/src/test/ui/borrowck/borrowck-mutate-in-guard.stderr
index 9e40856deb031..b475116b49bad 100644
--- a/src/test/ui/borrowck/borrowck-mutate-in-guard.stderr
+++ b/src/test/ui/borrowck/borrowck-mutate-in-guard.stderr
@@ -18,5 +18,5 @@ LL |         Enum::A(_) if { let y = &mut x; *y = Enum::B(false); false } => 1,
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0301, E0302.
+Some errors have detailed explanations: E0301, E0302.
 For more information about an error, try `rustc --explain E0301`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-call.nll.stderr b/src/test/ui/borrowck/borrowck-overloaded-call.nll.stderr
index b7fcaa645af2f..ddb63b5ec0fbe 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-call.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-call.nll.stderr
@@ -30,5 +30,5 @@ LL |     s(" world".to_string());
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0502, E0596.
+Some errors have detailed explanations: E0382, E0502, E0596.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-call.stderr b/src/test/ui/borrowck/borrowck-overloaded-call.stderr
index 97223a2307c6b..1a32c55be792b 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-call.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-call.stderr
@@ -30,5 +30,5 @@ LL |     s(" world".to_string());
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0502, E0596.
+Some errors have detailed explanations: E0382, E0502, E0596.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.nll.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.nll.stderr
index 5f34749ca89eb..978e1291722a3 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.nll.stderr
@@ -80,5 +80,5 @@ LL |     p.use_mut();
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
index 73cab8868eab6..ae763be718c44 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
@@ -76,5 +76,5 @@ LL |     *f = g;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.nll.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-move-index.nll.stderr
index de60067f1a613..5414b01cb0d60 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-move-index.nll.stderr
@@ -36,5 +36,5 @@ LL |     f[s] = 10;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0505.
+Some errors have detailed explanations: E0382, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr
index 7ea311f3e7f2f..e84cbcad06a21 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr
@@ -29,5 +29,5 @@ LL |     f[s] = 10;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0505.
+Some errors have detailed explanations: E0382, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.nll.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.nll.stderr
index 2010e8f496245..d09ce5d18056b 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.nll.stderr
@@ -29,5 +29,4 @@ LL |     s[2] = 20;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0502, E0594.
-For more information about an error, try `rustc --explain E0502`.
+For more information about this error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.stderr
index f97f0464fc009..251b5cd8b32ee 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.ast.stderr
@@ -31,5 +31,4 @@ LL | }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0502, E0594.
-For more information about an error, try `rustc --explain E0502`.
+For more information about this error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.mir.stderr b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.mir.stderr
index 2010e8f496245..d09ce5d18056b 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.mir.stderr
@@ -29,5 +29,4 @@ LL |     s[2] = 20;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0502, E0594.
-For more information about an error, try `rustc --explain E0502`.
+For more information about this error, try `rustc --explain E0502`.
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-mut.nll.stderr b/src/test/ui/borrowck/borrowck-reborrow-from-mut.nll.stderr
index 21bc8bb06cc06..284cab2960842 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-mut.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-reborrow-from-mut.nll.stderr
@@ -112,5 +112,5 @@ LL |     let _bar1 = &mut foo.bar1;
 
 error: aborting due to 11 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr b/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr
index ea624018ad4c0..bcb239494e0ab 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr
+++ b/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr
@@ -120,5 +120,5 @@ LL |     let _bar1 = &mut foo.bar1;
 
 error: aborting due to 11 previous errors
 
-Some errors occurred: E0499, E0502, E0596.
+Some errors have detailed explanations: E0499, E0502, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr b/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
index 67b6f64eaa64f..4142fc488c0dd 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
+++ b/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
@@ -10,4 +10,3 @@ LL |     S { pointer: &mut *p.pointer }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.nll.stderr b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.nll.stderr
index ee8f90edcd3fd..db73d4c04acc8 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.nll.stderr
@@ -36,5 +36,5 @@ LL |         y.use_mut();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
index 79aec6c2edaad..a3e6682453a93 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
+++ b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
@@ -36,5 +36,5 @@ LL |     };
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-unboxed-closures.nll.stderr b/src/test/ui/borrowck/borrowck-unboxed-closures.nll.stderr
index ec1cf4a4e2b06..40b8e31348470 100644
--- a/src/test/ui/borrowck/borrowck-unboxed-closures.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-unboxed-closures.nll.stderr
@@ -30,5 +30,5 @@ LL |     f(1, 2);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0502, E0596.
+Some errors have detailed explanations: E0382, E0502, E0596.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-unboxed-closures.stderr b/src/test/ui/borrowck/borrowck-unboxed-closures.stderr
index 2e0773aebc4cc..0be9e5aa2f082 100644
--- a/src/test/ui/borrowck/borrowck-unboxed-closures.stderr
+++ b/src/test/ui/borrowck/borrowck-unboxed-closures.stderr
@@ -29,5 +29,5 @@ LL |     f(1, 2);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0502, E0596.
+Some errors have detailed explanations: E0382, E0502, E0596.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-uninit-field-access.ast.nll.stderr b/src/test/ui/borrowck/borrowck-uninit-field-access.ast.nll.stderr
index a6e5f0b0e9db7..da4d016bc2a1d 100644
--- a/src/test/ui/borrowck/borrowck-uninit-field-access.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-uninit-field-access.ast.nll.stderr
@@ -26,5 +26,5 @@ LL |     line2.consume();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0381, E0382.
+Some errors have detailed explanations: E0381, E0382.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-uninit-field-access.ast.stderr b/src/test/ui/borrowck/borrowck-uninit-field-access.ast.stderr
index 58fc1d4b62149..00cacfe8a316d 100644
--- a/src/test/ui/borrowck/borrowck-uninit-field-access.ast.stderr
+++ b/src/test/ui/borrowck/borrowck-uninit-field-access.ast.stderr
@@ -26,5 +26,5 @@ LL |     line2.consume();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0381, E0382.
+Some errors have detailed explanations: E0381, E0382.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-uninit-field-access.mir.stderr b/src/test/ui/borrowck/borrowck-uninit-field-access.mir.stderr
index a6e5f0b0e9db7..da4d016bc2a1d 100644
--- a/src/test/ui/borrowck/borrowck-uninit-field-access.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-uninit-field-access.mir.stderr
@@ -26,5 +26,5 @@ LL |     line2.consume();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0381, E0382.
+Some errors have detailed explanations: E0381, E0382.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/borrowck-union-borrow.nll.stderr b/src/test/ui/borrowck/borrowck-union-borrow.nll.stderr
index 518f062ba1af8..ca10e299c5857 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-union-borrow.nll.stderr
@@ -127,5 +127,5 @@ LL |             drop(rma);
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0499, E0502, E0503, E0506.
+Some errors have detailed explanations: E0499, E0502, E0503, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-union-borrow.stderr b/src/test/ui/borrowck/borrowck-union-borrow.stderr
index 1cda7e499298a..a8fd5ae060383 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow.stderr
+++ b/src/test/ui/borrowck/borrowck-union-borrow.stderr
@@ -114,5 +114,5 @@ LL |             u.b = 1;
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0499, E0502, E0503, E0506.
+Some errors have detailed explanations: E0499, E0502, E0503, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
index aafcb3160d176..d0bbe10d05274 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
@@ -113,5 +113,5 @@ LL |     let a = vec[0];
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0506, E0508.
+Some errors have detailed explanations: E0506, E0508.
 For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
index 0e3f514c662ab..8f6c31b8bc0ae 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
@@ -80,5 +80,5 @@ LL |     let a = vec[0];
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0506, E0508.
+Some errors have detailed explanations: E0506, E0508.
 For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/borrowck/index-mut-help.nll.stderr b/src/test/ui/borrowck/index-mut-help.nll.stderr
index 92b94209c4e43..fbc427a6e6d09 100644
--- a/src/test/ui/borrowck/index-mut-help.nll.stderr
+++ b/src/test/ui/borrowck/index-mut-help.nll.stderr
@@ -22,5 +22,4 @@ LL |     let _ = &mut map["peter"];
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/index-mut-help.stderr b/src/test/ui/borrowck/index-mut-help.stderr
index 434dd11eea2e9..11663fdbe8648 100644
--- a/src/test/ui/borrowck/index-mut-help.stderr
+++ b/src/test/ui/borrowck/index-mut-help.stderr
@@ -24,5 +24,4 @@ LL |     let _ = &mut map["peter"];
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/issue-45983.nll.stderr b/src/test/ui/borrowck/issue-45983.nll.stderr
index 0a03858d568ee..3e5ae4519704e 100644
--- a/src/test/ui/borrowck/issue-45983.nll.stderr
+++ b/src/test/ui/borrowck/issue-45983.nll.stderr
@@ -18,5 +18,3 @@ LL |     give_any(|y| x = Some(y));
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0521, E0594.
-For more information about an error, try `rustc --explain E0521`.
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.ast.stderr b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.ast.stderr
index 565272af39049..a9c091d391c18 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.ast.stderr
+++ b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.ast.stderr
@@ -120,5 +120,4 @@ LL |         println!("{:?} {:?}", v.x, v.y);
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0382, E0594.
-For more information about an error, try `rustc --explain E0382`.
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.nll.stderr b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.nll.stderr
index 1184907f307cb..ec150c5ea48e4 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.nll.stderr
+++ b/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.nll.stderr
@@ -84,5 +84,4 @@ LL |         v.y = 2;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0382, E0594.
-For more information about an error, try `rustc --explain E0382`.
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.ast.stderr b/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.ast.stderr
index ea6b63b7a297d..36e20077226d4 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.ast.stderr
+++ b/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.ast.stderr
@@ -87,5 +87,4 @@ LL |         println!("{:?} {:?}", v.x, v.y);
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0381, E0594.
-For more information about an error, try `rustc --explain E0381`.
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
index 434f318ad1449..26efff2286e60 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
+++ b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.migrate.stderr
@@ -50,5 +50,4 @@ LL |         || { &mut x.0; };
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
index 434f318ad1449..26efff2286e60 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
+++ b/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.nll.stderr
@@ -50,5 +50,4 @@ LL |         || { &mut x.0; };
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.migrate.stderr b/src/test/ui/borrowck/issue-58776-borrowck-scans-children.migrate.stderr
index bd8f2286f170c..1c227b5b0db54 100644
--- a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.migrate.stderr
+++ b/src/test/ui/borrowck/issue-58776-borrowck-scans-children.migrate.stderr
@@ -28,5 +28,5 @@ LL |     println!("thread result: {:?}", res);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0505, E0506.
+Some errors have detailed explanations: E0505, E0506.
 For more information about an error, try `rustc --explain E0505`.
diff --git a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.nll.stderr b/src/test/ui/borrowck/issue-58776-borrowck-scans-children.nll.stderr
index bd8f2286f170c..1c227b5b0db54 100644
--- a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.nll.stderr
+++ b/src/test/ui/borrowck/issue-58776-borrowck-scans-children.nll.stderr
@@ -28,5 +28,5 @@ LL |     println!("thread result: {:?}", res);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0505, E0506.
+Some errors have detailed explanations: E0505, E0506.
 For more information about an error, try `rustc --explain E0505`.
diff --git a/src/test/ui/borrowck/mutability-errors.nll.stderr b/src/test/ui/borrowck/mutability-errors.nll.stderr
index 11bc78894432d..545de5d0e75bf 100644
--- a/src/test/ui/borrowck/mutability-errors.nll.stderr
+++ b/src/test/ui/borrowck/mutability-errors.nll.stderr
@@ -375,5 +375,4 @@ LL |     &mut X.0;
 
 error: aborting due to 38 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/mutability-errors.stderr b/src/test/ui/borrowck/mutability-errors.stderr
index cf4f37edde0b8..561acadfc08e5 100644
--- a/src/test/ui/borrowck/mutability-errors.stderr
+++ b/src/test/ui/borrowck/mutability-errors.stderr
@@ -304,5 +304,5 @@ LL |     &mut X.0;
 
 error: aborting due to 35 previous errors
 
-Some errors occurred: E0387, E0594, E0595, E0596.
+Some errors have detailed explanations: E0387, E0595, E0596.
 For more information about an error, try `rustc --explain E0387`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields.stderr b/src/test/ui/borrowck/reassignment_immutable_fields.stderr
index 74f0217ef8a99..6aa58313834a8 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields.stderr
@@ -52,5 +52,4 @@ LL |     drop(x);
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0381, E0594.
-For more information about an error, try `rustc --explain E0381`.
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.nll.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.nll.stderr
index 5f1313f286ee9..649c127dcc9d4 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.nll.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.nll.stderr
@@ -15,5 +15,4 @@ LL |     x.b = 22;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0381, E0594.
-For more information about an error, try `rustc --explain E0381`.
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
index 673c1572ca5f8..ea16ce45b42f4 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
@@ -17,4 +17,3 @@ LL |     x.b = 22;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_twice.nll.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_twice.nll.stderr
index 553ee24cca234..9a2824ccb3cd2 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_twice.nll.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_twice.nll.stderr
@@ -15,5 +15,4 @@ LL |     x.0 = 1;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0381, E0594.
-For more information about an error, try `rustc --explain E0381`.
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr b/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
index db1c74d94afb5..1704360b49fb2 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
+++ b/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
@@ -35,4 +35,3 @@ LL |     x.1 = 44;
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr b/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
index 8d6ac6275062e..cc6d5c55bd58f 100644
--- a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
+++ b/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
@@ -55,5 +55,5 @@ LL |     fn another_bound<'x: 't>(self, x: Inv<'x>, y: Inv<'t>) {
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0195, E0276, E0308.
+Some errors have detailed explanations: E0195, E0276, E0308.
 For more information about an error, try `rustc --explain E0195`.
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
index 223de36f0df31..62ab00fd5e110 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
+++ b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
@@ -67,5 +67,5 @@ LL |     i[i[3]] = i[4];
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0382, E0499, E0502.
+Some errors have detailed explanations: E0382, E0499, E0502.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.stderr b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.stderr
index d98b272944fdc..1d2824617aedd 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.stderr
+++ b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.stderr
@@ -109,5 +109,5 @@ LL |     t.m(t.i(10));
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0382, E0499, E0502, E0503.
+Some errors have detailed explanations: E0382, E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr b/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
index 223de36f0df31..62ab00fd5e110 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
+++ b/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
@@ -67,5 +67,5 @@ LL |     i[i[3]] = i[4];
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0382, E0499, E0502.
+Some errors have detailed explanations: E0382, E0499, E0502.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/two-phase-surprise-no-conflict.ast.stderr b/src/test/ui/borrowck/two-phase-surprise-no-conflict.ast.stderr
index a2e5c7e88e820..81503380b79dd 100644
--- a/src/test/ui/borrowck/two-phase-surprise-no-conflict.ast.stderr
+++ b/src/test/ui/borrowck/two-phase-surprise-no-conflict.ast.stderr
@@ -129,5 +129,5 @@ LL |     reg.register_ref(&CapturePass::new_mut(&mut reg.sess_mut));
 
 error: aborting due to 16 previous errors
 
-Some errors occurred: E0499, E0502, E0503.
+Some errors have detailed explanations: E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/two-phase-surprise-no-conflict.nll.stderr b/src/test/ui/borrowck/two-phase-surprise-no-conflict.nll.stderr
index 1ac3a696704bb..09a2072030146 100644
--- a/src/test/ui/borrowck/two-phase-surprise-no-conflict.nll.stderr
+++ b/src/test/ui/borrowck/two-phase-surprise-no-conflict.nll.stderr
@@ -150,5 +150,5 @@ LL |     reg.register_ref(&CapturePass::new_mut(&mut reg.sess_mut));
 
 error: aborting due to 15 previous errors
 
-Some errors occurred: E0499, E0502, E0503.
+Some errors have detailed explanations: E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/borrowck/two-phase-surprise-no-conflict.no2pb.stderr b/src/test/ui/borrowck/two-phase-surprise-no-conflict.no2pb.stderr
index 9b46567318c05..37df02ac4938e 100644
--- a/src/test/ui/borrowck/two-phase-surprise-no-conflict.no2pb.stderr
+++ b/src/test/ui/borrowck/two-phase-surprise-no-conflict.no2pb.stderr
@@ -155,5 +155,5 @@ LL |     reg.register_ref(&CapturePass::new_mut(&mut reg.sess_mut));
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0499, E0502, E0503.
+Some errors have detailed explanations: E0499, E0502, E0503.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/break-outside-loop.stderr b/src/test/ui/break-outside-loop.stderr
index c1aa580f89edd..8f4656ab394cd 100644
--- a/src/test/ui/break-outside-loop.stderr
+++ b/src/test/ui/break-outside-loop.stderr
@@ -30,5 +30,5 @@ LL |     let unconstrained = break;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0267, E0268.
+Some errors have detailed explanations: E0267, E0268.
 For more information about an error, try `rustc --explain E0267`.
diff --git a/src/test/ui/c-variadic/variadic-ffi-3.stderr b/src/test/ui/c-variadic/variadic-ffi-3.stderr
index 6e19fc1262102..287622525722f 100644
--- a/src/test/ui/c-variadic/variadic-ffi-3.stderr
+++ b/src/test/ui/c-variadic/variadic-ffi-3.stderr
@@ -72,5 +72,5 @@ LL |         foo(1, 2, 1u16);
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0060, E0308, E0617.
+Some errors have detailed explanations: E0060, E0308, E0617.
 For more information about an error, try `rustc --explain E0060`.
diff --git a/src/test/ui/c-variadic/variadic-ffi-4.stderr b/src/test/ui/c-variadic/variadic-ffi-4.stderr
index 311e2173702c8..80b765671c5d0 100644
--- a/src/test/ui/c-variadic/variadic-ffi-4.stderr
+++ b/src/test/ui/c-variadic/variadic-ffi-4.stderr
@@ -194,5 +194,5 @@ LL |     ap0 = &mut ap1;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0308, E0490, E0495, E0621.
+Some errors have detailed explanations: E0308, E0621.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/c-variadic/variadic-ffi-5.stderr b/src/test/ui/c-variadic/variadic-ffi-5.stderr
index 8f1dfe8ba9b63..27421010a97c4 100644
--- a/src/test/ui/c-variadic/variadic-ffi-5.stderr
+++ b/src/test/ui/c-variadic/variadic-ffi-5.stderr
@@ -69,5 +69,5 @@ LL | }
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0597, E0621.
+Some errors have detailed explanations: E0597, E0621.
 For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/ui/cannot-mutate-captured-non-mut-var.ast.nll.stderr b/src/test/ui/cannot-mutate-captured-non-mut-var.ast.nll.stderr
index 581dcde59f5e9..9b444badeb3ac 100644
--- a/src/test/ui/cannot-mutate-captured-non-mut-var.ast.nll.stderr
+++ b/src/test/ui/cannot-mutate-captured-non-mut-var.ast.nll.stderr
@@ -16,5 +16,4 @@ LL |     to_fn_once(move|| { s.read_to_end(&mut Vec::new()); });
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/cannot-mutate-captured-non-mut-var.ast.stderr b/src/test/ui/cannot-mutate-captured-non-mut-var.ast.stderr
index 1098c16aaf63f..4cdd1605c789e 100644
--- a/src/test/ui/cannot-mutate-captured-non-mut-var.ast.stderr
+++ b/src/test/ui/cannot-mutate-captured-non-mut-var.ast.stderr
@@ -12,5 +12,4 @@ LL |     to_fn_once(move|| { s.read_to_end(&mut Vec::new()); });
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/cannot-mutate-captured-non-mut-var.mir.stderr b/src/test/ui/cannot-mutate-captured-non-mut-var.mir.stderr
index 581dcde59f5e9..9b444badeb3ac 100644
--- a/src/test/ui/cannot-mutate-captured-non-mut-var.mir.stderr
+++ b/src/test/ui/cannot-mutate-captured-non-mut-var.mir.stderr
@@ -16,5 +16,4 @@ LL |     to_fn_once(move|| { s.read_to_end(&mut Vec::new()); });
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/chalkify/type_inference.stderr b/src/test/ui/chalkify/type_inference.stderr
index d1d56d3d4a237..6cb33f2f2c8c6 100644
--- a/src/test/ui/chalkify/type_inference.stderr
+++ b/src/test/ui/chalkify/type_inference.stderr
@@ -24,5 +24,5 @@ LL | fn only_bar<T: Bar>(_x: T) { }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/changing-crates.stderr b/src/test/ui/changing-crates.stderr
index 633930904983d..cc62a4d4d9d76 100644
--- a/src/test/ui/changing-crates.stderr
+++ b/src/test/ui/changing-crates.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/check-static-values-constraints.nll.stderr b/src/test/ui/check-static-values-constraints.nll.stderr
index fe014fa105966..f35703a306d84 100644
--- a/src/test/ui/check-static-values-constraints.nll.stderr
+++ b/src/test/ui/check-static-values-constraints.nll.stderr
@@ -108,5 +108,5 @@ LL |     let y = { static x: Box<isize> = box 3; x };
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0010, E0015, E0019, E0493, E0507.
+Some errors have detailed explanations: E0010, E0015, E0019, E0507.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/check-static-values-constraints.stderr b/src/test/ui/check-static-values-constraints.stderr
index 91fe0feb1bcd4..9648704f735b9 100644
--- a/src/test/ui/check-static-values-constraints.stderr
+++ b/src/test/ui/check-static-values-constraints.stderr
@@ -105,5 +105,5 @@ LL |     let y = { static x: Box<isize> = box 3; x };
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0010, E0015, E0019, E0493, E0507.
+Some errors have detailed explanations: E0010, E0015, E0019, E0507.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/closure-expected-type/expect-fn-supply-fn.stderr b/src/test/ui/closure-expected-type/expect-fn-supply-fn.stderr
index ab35aeff697b7..40fab4d4edf78 100644
--- a/src/test/ui/closure-expected-type/expect-fn-supply-fn.stderr
+++ b/src/test/ui/closure-expected-type/expect-fn-supply-fn.stderr
@@ -89,5 +89,4 @@ LL | | }
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0308, E0631.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/closure-expected-type/expect-infer-var-appearing-twice.stderr b/src/test/ui/closure-expected-type/expect-infer-var-appearing-twice.stderr
index 7a0938e9f7e5e..c9a697496de59 100644
--- a/src/test/ui/closure-expected-type/expect-infer-var-appearing-twice.stderr
+++ b/src/test/ui/closure-expected-type/expect-infer-var-appearing-twice.stderr
@@ -17,4 +17,3 @@ LL | | }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0631`.
diff --git a/src/test/ui/closures/closure-immutable-outer-variable.nll.stderr b/src/test/ui/closures/closure-immutable-outer-variable.nll.stderr
index 7e60f3cd8ffa4..558c9caeff336 100644
--- a/src/test/ui/closures/closure-immutable-outer-variable.nll.stderr
+++ b/src/test/ui/closures/closure-immutable-outer-variable.nll.stderr
@@ -8,4 +8,3 @@ LL |     foo(Box::new(move || y = false) as Box<_>);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/closures/closure-immutable-outer-variable.stderr b/src/test/ui/closures/closure-immutable-outer-variable.stderr
index 332320791d44e..e675a08169e62 100644
--- a/src/test/ui/closures/closure-immutable-outer-variable.stderr
+++ b/src/test/ui/closures/closure-immutable-outer-variable.stderr
@@ -8,4 +8,3 @@ LL |     foo(Box::new(move || y = false) as Box<_>);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr b/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr
index 087084ae5dade..16cdca774ba37 100644
--- a/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr
+++ b/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr
@@ -8,4 +8,3 @@ LL | impl C { fn f() {} }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
index 70c1093e9ed48..b16d2849f196a 100644
--- a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
+++ b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
@@ -29,4 +29,3 @@ LL |     fn baz(&self) {}
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/codemap_tests/tab.stderr b/src/test/ui/codemap_tests/tab.stderr
index bcc21e9c7ade8..7b3f959c1cb38 100644
--- a/src/test/ui/codemap_tests/tab.stderr
+++ b/src/test/ui/codemap_tests/tab.stderr
@@ -17,5 +17,5 @@ LL |     "bar            boo"
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0425.
+Some errors have detailed explanations: E0308, E0425.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/codemap_tests/unicode.stderr b/src/test/ui/codemap_tests/unicode.stderr
index 7aadeb7dfc982..1ba578b0c04d3 100644
--- a/src/test/ui/codemap_tests/unicode.stderr
+++ b/src/test/ui/codemap_tests/unicode.stderr
@@ -8,4 +8,3 @@ LL | extern "路濫狼á́́" fn foo() {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0703`.
diff --git a/src/test/ui/coercion/coerce-overloaded-autoderef.ast.nll.stderr b/src/test/ui/coercion/coerce-overloaded-autoderef.ast.nll.stderr
index 5b9249cffaea4..71f7d8721b0fa 100644
--- a/src/test/ui/coercion/coerce-overloaded-autoderef.ast.nll.stderr
+++ b/src/test/ui/coercion/coerce-overloaded-autoderef.ast.nll.stderr
@@ -42,5 +42,5 @@ LL |     borrow2(x, x);
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/coercion/coerce-overloaded-autoderef.ast.stderr b/src/test/ui/coercion/coerce-overloaded-autoderef.ast.stderr
index 54215f56bca7a..0e5a4a6c000a8 100644
--- a/src/test/ui/coercion/coerce-overloaded-autoderef.ast.stderr
+++ b/src/test/ui/coercion/coerce-overloaded-autoderef.ast.stderr
@@ -38,5 +38,5 @@ LL |     borrow2(x, x);
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/coercion/coerce-overloaded-autoderef.mir.nll.stderr b/src/test/ui/coercion/coerce-overloaded-autoderef.mir.nll.stderr
index 5b9249cffaea4..71f7d8721b0fa 100644
--- a/src/test/ui/coercion/coerce-overloaded-autoderef.mir.nll.stderr
+++ b/src/test/ui/coercion/coerce-overloaded-autoderef.mir.nll.stderr
@@ -42,5 +42,5 @@ LL |     borrow2(x, x);
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/coercion/coerce-overloaded-autoderef.mir.stderr b/src/test/ui/coercion/coerce-overloaded-autoderef.mir.stderr
index 8dc6fe50afb5f..39a2847c8d642 100644
--- a/src/test/ui/coercion/coerce-overloaded-autoderef.mir.stderr
+++ b/src/test/ui/coercion/coerce-overloaded-autoderef.mir.stderr
@@ -41,5 +41,5 @@ LL |     borrow2(x, x);
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0499, E0502, E0506.
+Some errors have detailed explanations: E0499, E0502, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/coherence/coherence-cross-crate-conflict.old.stderr b/src/test/ui/coherence/coherence-cross-crate-conflict.old.stderr
index 3ba32a528354e..93be25702810f 100644
--- a/src/test/ui/coherence/coherence-cross-crate-conflict.old.stderr
+++ b/src/test/ui/coherence/coherence-cross-crate-conflict.old.stderr
@@ -17,5 +17,5 @@ LL | impl<A> Foo for A {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0119, E0210.
+Some errors have detailed explanations: E0119, E0210.
 For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/coherence/coherence-cross-crate-conflict.re.stderr b/src/test/ui/coherence/coherence-cross-crate-conflict.re.stderr
index 3ba32a528354e..93be25702810f 100644
--- a/src/test/ui/coherence/coherence-cross-crate-conflict.re.stderr
+++ b/src/test/ui/coherence/coherence-cross-crate-conflict.re.stderr
@@ -17,5 +17,5 @@ LL | impl<A> Foo for A {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0119, E0210.
+Some errors have detailed explanations: E0119, E0210.
 For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/coherence/coherence-default-trait-impl.old.stderr b/src/test/ui/coherence/coherence-default-trait-impl.old.stderr
index 534f4b0dcdb3c..3f644e3a6e7fa 100644
--- a/src/test/ui/coherence/coherence-default-trait-impl.old.stderr
+++ b/src/test/ui/coherence/coherence-default-trait-impl.old.stderr
@@ -12,5 +12,5 @@ LL | impl MyUnsafeTrait for Foo {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0199, E0200.
+Some errors have detailed explanations: E0199, E0200.
 For more information about an error, try `rustc --explain E0199`.
diff --git a/src/test/ui/coherence/coherence-default-trait-impl.re.stderr b/src/test/ui/coherence/coherence-default-trait-impl.re.stderr
index 534f4b0dcdb3c..3f644e3a6e7fa 100644
--- a/src/test/ui/coherence/coherence-default-trait-impl.re.stderr
+++ b/src/test/ui/coherence/coherence-default-trait-impl.re.stderr
@@ -12,5 +12,5 @@ LL | impl MyUnsafeTrait for Foo {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0199, E0200.
+Some errors have detailed explanations: E0199, E0200.
 For more information about an error, try `rustc --explain E0199`.
diff --git a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.stderr b/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.stderr
index 86a63eb569918..edadb9b93d6d5 100644
--- a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.stderr
+++ b/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.stderr
@@ -33,5 +33,5 @@ LL | impl !Send for dyn Object + Marker2 {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0117, E0321, E0371.
+Some errors have detailed explanations: E0117, E0321, E0371.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-positive.stderr b/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-positive.stderr
index 536b4625aee2e..322e7a5af29f9 100644
--- a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-positive.stderr
+++ b/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-positive.stderr
@@ -33,5 +33,5 @@ LL | unsafe impl Send for dyn Object + Marker2 {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0117, E0321, E0371.
+Some errors have detailed explanations: E0117, E0321, E0371.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-copy.old.stderr b/src/test/ui/coherence/coherence-impls-copy.old.stderr
index e870c267ce141..5c95cc173f2b0 100644
--- a/src/test/ui/coherence/coherence-impls-copy.old.stderr
+++ b/src/test/ui/coherence/coherence-impls-copy.old.stderr
@@ -83,5 +83,5 @@ LL | impl Copy for &'static [NotSync] {}
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0117, E0119, E0206.
+Some errors have detailed explanations: E0117, E0119, E0206.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-copy.re.stderr b/src/test/ui/coherence/coherence-impls-copy.re.stderr
index e870c267ce141..5c95cc173f2b0 100644
--- a/src/test/ui/coherence/coherence-impls-copy.re.stderr
+++ b/src/test/ui/coherence/coherence-impls-copy.re.stderr
@@ -83,5 +83,5 @@ LL | impl Copy for &'static [NotSync] {}
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0117, E0119, E0206.
+Some errors have detailed explanations: E0117, E0119, E0206.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-send.old.stderr b/src/test/ui/coherence/coherence-impls-send.old.stderr
index 3ede8363d119e..b67f4d517b1b7 100644
--- a/src/test/ui/coherence/coherence-impls-send.old.stderr
+++ b/src/test/ui/coherence/coherence-impls-send.old.stderr
@@ -33,5 +33,5 @@ LL | unsafe impl Send for &'static [NotSync] {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0117, E0321.
+Some errors have detailed explanations: E0117, E0321.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-send.re.stderr b/src/test/ui/coherence/coherence-impls-send.re.stderr
index 3ede8363d119e..b67f4d517b1b7 100644
--- a/src/test/ui/coherence/coherence-impls-send.re.stderr
+++ b/src/test/ui/coherence/coherence-impls-send.re.stderr
@@ -33,5 +33,5 @@ LL | unsafe impl Send for &'static [NotSync] {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0117, E0321.
+Some errors have detailed explanations: E0117, E0321.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-sized.old.stderr b/src/test/ui/coherence/coherence-impls-sized.old.stderr
index 86a0996554d41..a19ecfdc3c5b5 100644
--- a/src/test/ui/coherence/coherence-impls-sized.old.stderr
+++ b/src/test/ui/coherence/coherence-impls-sized.old.stderr
@@ -63,5 +63,5 @@ LL | impl Sized for &'static [NotSync] {}
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0117, E0322.
+Some errors have detailed explanations: E0117, E0322.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-impls-sized.re.stderr b/src/test/ui/coherence/coherence-impls-sized.re.stderr
index 86a0996554d41..a19ecfdc3c5b5 100644
--- a/src/test/ui/coherence/coherence-impls-sized.re.stderr
+++ b/src/test/ui/coherence/coherence-impls-sized.re.stderr
@@ -63,5 +63,5 @@ LL | impl Sized for &'static [NotSync] {}
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0117, E0322.
+Some errors have detailed explanations: E0117, E0322.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr
index dcfc017f1b038..283d7a04d9bf8 100644
--- a/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr
+++ b/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr
@@ -20,4 +20,3 @@ LL | impl<X> A<i32, X> { fn f(&self) {} }
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr
index dcfc017f1b038..283d7a04d9bf8 100644
--- a/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr
+++ b/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr
@@ -20,4 +20,3 @@ LL | impl<X> A<i32, X> { fn f(&self) {} }
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr
index 6fd9307754033..38df106cc8874 100644
--- a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr
+++ b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr
@@ -11,4 +11,3 @@ LL | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr
index 6fd9307754033..38df106cc8874 100644
--- a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr
+++ b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr
@@ -11,4 +11,3 @@ LL | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr
index 928b65e003918..6716b71b25b5d 100644
--- a/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr
+++ b/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr
@@ -11,4 +11,3 @@ LL | impl A<i16> { fn dummy(&self) { } }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr
index 928b65e003918..6716b71b25b5d 100644
--- a/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr
+++ b/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr
@@ -11,4 +11,3 @@ LL | impl A<i16> { fn dummy(&self) { } }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/conditional-compilation/cfg-attr-syntax-validation.stderr b/src/test/ui/conditional-compilation/cfg-attr-syntax-validation.stderr
index ae37461cab815..5bfe9e902dae8 100644
--- a/src/test/ui/conditional-compilation/cfg-attr-syntax-validation.stderr
+++ b/src/test/ui/conditional-compilation/cfg-attr-syntax-validation.stderr
@@ -63,5 +63,5 @@ LL | generate_s10!(concat!("nonexistent"));
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0537, E0565.
+Some errors have detailed explanations: E0537, E0565.
 For more information about an error, try `rustc --explain E0537`.
diff --git a/src/test/ui/conflicting-repr-hints.stderr b/src/test/ui/conflicting-repr-hints.stderr
index c39055f01721b..6b15b7ebbe9ee 100644
--- a/src/test/ui/conflicting-repr-hints.stderr
+++ b/src/test/ui/conflicting-repr-hints.stderr
@@ -66,5 +66,3 @@ LL | | }
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0566, E0587, E0634.
-For more information about an error, try `rustc --explain E0566`.
diff --git a/src/test/ui/const-generics/struct-with-invalid-const-param.stderr b/src/test/ui/const-generics/struct-with-invalid-const-param.stderr
index 561464b21cc8f..64354752fd2af 100644
--- a/src/test/ui/const-generics/struct-with-invalid-const-param.stderr
+++ b/src/test/ui/const-generics/struct-with-invalid-const-param.stderr
@@ -12,4 +12,3 @@ LL | struct S<const C: u8>(C);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/consts/const-call.stderr b/src/test/ui/consts/const-call.stderr
index 12a6983ba1f45..d11add818d939 100644
--- a/src/test/ui/consts/const-call.stderr
+++ b/src/test/ui/consts/const-call.stderr
@@ -12,5 +12,5 @@ LL |     let _ = [0; f(2)];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0015, E0080.
+Some errors have detailed explanations: E0015, E0080.
 For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/ui/consts/const-eval/const-eval-overflow-3b.stderr b/src/test/ui/consts/const-eval/const-eval-overflow-3b.stderr
index 59a9d25c71907..9f08f0aa53592 100644
--- a/src/test/ui/consts/const-eval/const-eval-overflow-3b.stderr
+++ b/src/test/ui/consts/const-eval/const-eval-overflow-3b.stderr
@@ -14,5 +14,5 @@ LL |     = [0; (i8::MAX + 1u8) as usize];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/consts/const-eval/const-eval-overflow-4b.stderr b/src/test/ui/consts/const-eval/const-eval-overflow-4b.stderr
index 0c2f76a5582e9..3735b2fd5ff1a 100644
--- a/src/test/ui/consts/const-eval/const-eval-overflow-4b.stderr
+++ b/src/test/ui/consts/const-eval/const-eval-overflow-4b.stderr
@@ -20,5 +20,5 @@ LL |     : [u32; 5i8 as char as usize]
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0308, E0604.
+Some errors have detailed explanations: E0277, E0308, E0604.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/consts/const-eval/infinite_loop.stderr b/src/test/ui/consts/const-eval/infinite_loop.stderr
index ee696c5439ff5..3a7da9ff2c8d8 100644
--- a/src/test/ui/consts/const-eval/infinite_loop.stderr
+++ b/src/test/ui/consts/const-eval/infinite_loop.stderr
@@ -28,5 +28,5 @@ LL |             n = if n % 2 == 0 { n/2 } else { 3*n + 1 };
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0019, E0080.
+Some errors have detailed explanations: E0019, E0080.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/consts/const-eval/issue-52442.stderr b/src/test/ui/consts/const-eval/issue-52442.stderr
index 2352ecba68959..e9afec5766a0c 100644
--- a/src/test/ui/consts/const-eval/issue-52442.stderr
+++ b/src/test/ui/consts/const-eval/issue-52442.stderr
@@ -14,5 +14,5 @@ LL |     [();  { &loop { break } as *const _ as usize } ];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0019, E0080.
+Some errors have detailed explanations: E0019, E0080.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/consts/const-eval/issue-52475.stderr b/src/test/ui/consts/const-eval/issue-52475.stderr
index 605c71d5a6b57..7a52a38d767cc 100644
--- a/src/test/ui/consts/const-eval/issue-52475.stderr
+++ b/src/test/ui/consts/const-eval/issue-52475.stderr
@@ -28,5 +28,5 @@ LL |             n = (n + 1) % 5;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0019, E0080.
+Some errors have detailed explanations: E0019, E0080.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/consts/const-eval/match-test-ptr-null.stderr b/src/test/ui/consts/const-eval/match-test-ptr-null.stderr
index 79e278f68ad69..d005e09b28a12 100644
--- a/src/test/ui/consts/const-eval/match-test-ptr-null.stderr
+++ b/src/test/ui/consts/const-eval/match-test-ptr-null.stderr
@@ -21,5 +21,5 @@ LL |             0 => 42,
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0019, E0080, E0658.
+Some errors have detailed explanations: E0019, E0080, E0658.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/consts/const-eval/mod-static-with-const-fn.stderr b/src/test/ui/consts/const-eval/mod-static-with-const-fn.stderr
index 9fad6868d2038..50cd3214507a3 100644
--- a/src/test/ui/consts/const-eval/mod-static-with-const-fn.stderr
+++ b/src/test/ui/consts/const-eval/mod-static-with-const-fn.stderr
@@ -12,5 +12,5 @@ LL |     foo();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0015, E0019.
+Some errors have detailed explanations: E0015, E0019.
 For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/ui/consts/const-fn-not-safe-for-const.stderr b/src/test/ui/consts/const-fn-not-safe-for-const.stderr
index a5e48074f7043..ba5d58a51d2dd 100644
--- a/src/test/ui/consts/const-fn-not-safe-for-const.stderr
+++ b/src/test/ui/consts/const-fn-not-safe-for-const.stderr
@@ -18,5 +18,5 @@ LL |     &Y
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0013, E0015.
+Some errors have detailed explanations: E0013, E0015.
 For more information about an error, try `rustc --explain E0013`.
diff --git a/src/test/ui/consts/const-integer-bool-ops.stderr b/src/test/ui/consts/const-integer-bool-ops.stderr
index 7885eb446f0dd..7fd973786d1b7 100644
--- a/src/test/ui/consts/const-integer-bool-ops.stderr
+++ b/src/test/ui/consts/const-integer-bool-ops.stderr
@@ -192,5 +192,5 @@ LL | const ARRR5: [i32; Y5] = [99; 0];
 
 error: aborting due to 28 previous errors
 
-Some errors occurred: E0080, E0308.
+Some errors have detailed explanations: E0080, E0308.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/consts/const-tup-index-span.stderr b/src/test/ui/consts/const-tup-index-span.stderr
index ed631b824d569..2c4e273004506 100644
--- a/src/test/ui/consts/const-tup-index-span.stderr
+++ b/src/test/ui/consts/const-tup-index-span.stderr
@@ -15,5 +15,5 @@ LL | const ARR: [i32; TUP.0] = [];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0308.
+Some errors have detailed explanations: E0080, E0308.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/consts/const_let_assign3.stderr b/src/test/ui/consts/const_let_assign3.stderr
index c0e978a0ab7a7..53b960b4ec0e0 100644
--- a/src/test/ui/consts/const_let_assign3.stderr
+++ b/src/test/ui/consts/const_let_assign3.stderr
@@ -24,5 +24,5 @@ LL |     *y = 42;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0017, E0019.
+Some errors have detailed explanations: E0017, E0019.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr b/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
index 95b809712ffea..1ec93ce5c9eab 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
@@ -294,5 +294,5 @@ LL | const fn no_fn_ptrs2() -> fn() { fn foo() {} foo }
 
 error: aborting due to 36 previous errors
 
-Some errors occurred: E0493, E0515, E0723.
-For more information about an error, try `rustc --explain E0493`.
+Some errors have detailed explanations: E0515, E0723.
+For more information about an error, try `rustc --explain E0515`.
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn.stderr b/src/test/ui/consts/min_const_fn/min_const_fn.stderr
index cdf6b1016b4b9..b5f224c640002 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn.stderr
@@ -282,5 +282,4 @@ LL | const fn no_fn_ptrs2() -> fn() { fn foo() {} foo }
 
 error: aborting due to 36 previous errors
 
-Some errors occurred: E0493, E0723.
-For more information about an error, try `rustc --explain E0493`.
+For more information about this error, try `rustc --explain E0723`.
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
index 2800d622f5353..dc7e92ad40497 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
@@ -28,5 +28,5 @@ LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0716, E0723.
+Some errors have detailed explanations: E0716, E0723.
 For more information about an error, try `rustc --explain E0716`.
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
index 5c1bbc6ba31cf..d1de5daa743ae 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
@@ -44,5 +44,5 @@ LL | const fn bad_const_fn_deref_raw(x: *mut usize) -> &'static usize { unsafe {
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0133, E0658.
+Some errors have detailed explanations: E0133, E0658.
 For more information about an error, try `rustc --explain E0133`.
diff --git a/src/test/ui/consts/miri_unleashed/feature-gate-unleash_the_miri_inside_of_you.stderr b/src/test/ui/consts/miri_unleashed/feature-gate-unleash_the_miri_inside_of_you.stderr
index 7ede44c65b83a..c56ebf60df481 100644
--- a/src/test/ui/consts/miri_unleashed/feature-gate-unleash_the_miri_inside_of_you.stderr
+++ b/src/test/ui/consts/miri_unleashed/feature-gate-unleash_the_miri_inside_of_you.stderr
@@ -14,4 +14,3 @@ LL |     const X: Vec<u32> = Vec::new();
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0493`.
diff --git a/src/test/ui/consts/projection_qualif.stderr b/src/test/ui/consts/projection_qualif.stderr
index 15d332aba1f86..c270296ac8848 100644
--- a/src/test/ui/consts/projection_qualif.stderr
+++ b/src/test/ui/consts/projection_qualif.stderr
@@ -21,5 +21,5 @@ LL |         unsafe { *b = 5; }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0017, E0019, E0658.
+Some errors have detailed explanations: E0017, E0019, E0658.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/consts/promote_const_let.nll.stderr b/src/test/ui/consts/promote_const_let.nll.stderr
index a0af949bf71e8..c47d297c90409 100644
--- a/src/test/ui/consts/promote_const_let.nll.stderr
+++ b/src/test/ui/consts/promote_const_let.nll.stderr
@@ -25,5 +25,5 @@ LL |   }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0597, E0716.
+Some errors have detailed explanations: E0597, E0716.
 For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/ui/consts/single_variant_match_ice.stderr b/src/test/ui/consts/single_variant_match_ice.stderr
index bc80de4ce04ab..2c21958f22d7e 100644
--- a/src/test/ui/consts/single_variant_match_ice.stderr
+++ b/src/test/ui/consts/single_variant_match_ice.stderr
@@ -20,5 +20,5 @@ LL |             Prob => 0x1,
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0019, E0723.
+Some errors have detailed explanations: E0019, E0723.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/consts/static_mut_containing_mut_ref2.stderr b/src/test/ui/consts/static_mut_containing_mut_ref2.stderr
index 72186571d697e..ca691b07be063 100644
--- a/src/test/ui/consts/static_mut_containing_mut_ref2.stderr
+++ b/src/test/ui/consts/static_mut_containing_mut_ref2.stderr
@@ -12,5 +12,5 @@ LL | pub static mut STDERR_BUFFER: () = unsafe { *(&mut STDERR_BUFFER_SPACE) = 4
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0017, E0019.
+Some errors have detailed explanations: E0017, E0019.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/continue-after-missing-main.stderr b/src/test/ui/continue-after-missing-main.stderr
index 8d64fee8bdaee..cc5f87659079e 100644
--- a/src/test/ui/continue-after-missing-main.stderr
+++ b/src/test/ui/continue-after-missing-main.stderr
@@ -13,5 +13,4 @@ LL |     let _: AdaptedMatrixProvider<'original_data, MP> = tableau.provider().c
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0601, E0623.
-For more information about an error, try `rustc --explain E0601`.
+For more information about this error, try `rustc --explain E0601`.
diff --git a/src/test/ui/cycle-projection-based-on-where-clause.stderr b/src/test/ui/cycle-projection-based-on-where-clause.stderr
index b11a8bda9b4f4..e5a5e2897cd0a 100644
--- a/src/test/ui/cycle-projection-based-on-where-clause.stderr
+++ b/src/test/ui/cycle-projection-based-on-where-clause.stderr
@@ -19,5 +19,5 @@ LL |           T : Add<T::Item>
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0220, E0391.
+Some errors have detailed explanations: E0220, E0391.
 For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/ui/deprecation/deprecation-sanity.stderr b/src/test/ui/deprecation/deprecation-sanity.stderr
index 6d5e3d5136321..7ff68a1038b1c 100644
--- a/src/test/ui/deprecation/deprecation-sanity.stderr
+++ b/src/test/ui/deprecation/deprecation-sanity.stderr
@@ -54,5 +54,5 @@ LL | #[deprecated(since = "a", since = "b", note = "c")]
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0538, E0541, E0550, E0551, E0565.
+Some errors have detailed explanations: E0538, E0541, E0565.
 For more information about an error, try `rustc --explain E0538`.
diff --git a/src/test/ui/derives/deriving-no-inner-impl-error-message.stderr b/src/test/ui/derives/deriving-no-inner-impl-error-message.stderr
index 3206eecbe30e4..3b480f00df6ea 100644
--- a/src/test/ui/derives/deriving-no-inner-impl-error-message.stderr
+++ b/src/test/ui/derives/deriving-no-inner-impl-error-message.stderr
@@ -24,5 +24,5 @@ LL |     x: NoCloneOrEq
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0369.
+Some errors have detailed explanations: E0277, E0369.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/destructure-trait-ref.stderr b/src/test/ui/destructure-trait-ref.stderr
index 8fc2b76eb111a..34dd213e2b390 100644
--- a/src/test/ui/destructure-trait-ref.stderr
+++ b/src/test/ui/destructure-trait-ref.stderr
@@ -47,5 +47,5 @@ LL |     let box box x = box 1isize as Box<T>;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0033, E0308.
+Some errors have detailed explanations: E0033, E0308.
 For more information about an error, try `rustc --explain E0033`.
diff --git a/src/test/ui/did_you_mean/bad-assoc-ty.stderr b/src/test/ui/did_you_mean/bad-assoc-ty.stderr
index 7e7f18f2d6e43..8c694f9d42b3e 100644
--- a/src/test/ui/did_you_mean/bad-assoc-ty.stderr
+++ b/src/test/ui/did_you_mean/bad-assoc-ty.stderr
@@ -120,5 +120,5 @@ LL | type I = ty!()::AssocTy;
 
 error: aborting due to 19 previous errors
 
-Some errors occurred: E0121, E0223.
+Some errors have detailed explanations: E0121, E0223.
 For more information about an error, try `rustc --explain E0121`.
diff --git a/src/test/ui/did_you_mean/issue-34126.nll.stderr b/src/test/ui/did_you_mean/issue-34126.nll.stderr
index e738df1b732e6..0843df29b5c46 100644
--- a/src/test/ui/did_you_mean/issue-34126.nll.stderr
+++ b/src/test/ui/did_you_mean/issue-34126.nll.stderr
@@ -18,5 +18,5 @@ LL |         self.run(&mut self);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0502, E0596.
+Some errors have detailed explanations: E0502, E0596.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/did_you_mean/issue-35937.nll.stderr b/src/test/ui/did_you_mean/issue-35937.nll.stderr
index 216cb14dcf63d..4f9b6a6134dc8 100644
--- a/src/test/ui/did_you_mean/issue-35937.nll.stderr
+++ b/src/test/ui/did_you_mean/issue-35937.nll.stderr
@@ -24,5 +24,4 @@ LL |     s.x += 1;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/did_you_mean/issue-35937.stderr b/src/test/ui/did_you_mean/issue-35937.stderr
index 1e70f986e83dc..ea0f5583a2b18 100644
--- a/src/test/ui/did_you_mean/issue-35937.stderr
+++ b/src/test/ui/did_you_mean/issue-35937.stderr
@@ -24,5 +24,4 @@ LL |     s.x += 1;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/did_you_mean/issue-39544.nll.stderr b/src/test/ui/did_you_mean/issue-39544.nll.stderr
index 899a42b54e611..dfaaf6b17dc31 100644
--- a/src/test/ui/did_you_mean/issue-39544.nll.stderr
+++ b/src/test/ui/did_you_mean/issue-39544.nll.stderr
@@ -98,5 +98,4 @@ LL |     *x.0 = 1;
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/did_you_mean/issue-39544.stderr b/src/test/ui/did_you_mean/issue-39544.stderr
index d86ea896a1411..2e2a665f09241 100644
--- a/src/test/ui/did_you_mean/issue-39544.stderr
+++ b/src/test/ui/did_you_mean/issue-39544.stderr
@@ -98,5 +98,4 @@ LL |     *x.0 = 1;
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/did_you_mean/issue-40396.stderr b/src/test/ui/did_you_mean/issue-40396.stderr
index 86bbf2bf27ae6..fe517ee34949d 100644
--- a/src/test/ui/did_you_mean/issue-40396.stderr
+++ b/src/test/ui/did_you_mean/issue-40396.stderr
@@ -99,5 +99,5 @@ LL |     (0..13).collect<Vec<i32>();
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0308, E0423, E0425, E0615.
+Some errors have detailed explanations: E0308, E0423, E0425, E0615.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/did_you_mean/issue-42599_available_fields_note.stderr b/src/test/ui/did_you_mean/issue-42599_available_fields_note.stderr
index e5dd61c45d662..143d7f695c970 100644
--- a/src/test/ui/did_you_mean/issue-42599_available_fields_note.stderr
+++ b/src/test/ui/did_you_mean/issue-42599_available_fields_note.stderr
@@ -28,5 +28,5 @@ LL |     let egregious_field_misaccess = demo.egregiously_nonexistent_field;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0560, E0609.
+Some errors have detailed explanations: E0560, E0609.
 For more information about an error, try `rustc --explain E0560`.
diff --git a/src/test/ui/did_you_mean/issue-43871-enum-instead-of-variant.stderr b/src/test/ui/did_you_mean/issue-43871-enum-instead-of-variant.stderr
index 4210b4e057ac1..d02f30152d687 100644
--- a/src/test/ui/did_you_mean/issue-43871-enum-instead-of-variant.stderr
+++ b/src/test/ui/did_you_mean/issue-43871-enum-instead-of-variant.stderr
@@ -59,5 +59,5 @@ and 6 other candidates
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0423, E0532.
+Some errors have detailed explanations: E0423, E0532.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/did_you_mean/issue-56028-there-is-an-enum-variant.stderr b/src/test/ui/did_you_mean/issue-56028-there-is-an-enum-variant.stderr
index 6107ca32a5d75..8d3a86df0233d 100644
--- a/src/test/ui/did_you_mean/issue-56028-there-is-an-enum-variant.stderr
+++ b/src/test/ui/did_you_mean/issue-56028-there-is-an-enum-variant.stderr
@@ -34,5 +34,5 @@ and 3 other candidates
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0412, E0425.
+Some errors have detailed explanations: E0412, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/did_you_mean/recursion_limit_deref.stderr b/src/test/ui/did_you_mean/recursion_limit_deref.stderr
index 08e32ade3bc3b..c76efb1d00920 100644
--- a/src/test/ui/did_you_mean/recursion_limit_deref.stderr
+++ b/src/test/ui/did_you_mean/recursion_limit_deref.stderr
@@ -17,5 +17,5 @@ LL |     let x: &Bottom = &t;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0055, E0308.
+Some errors have detailed explanations: E0055, E0308.
 For more information about an error, try `rustc --explain E0055`.
diff --git a/src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr b/src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr
index a94260dc42d15..de1efcd7e0f7d 100644
--- a/src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr
+++ b/src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr
@@ -20,5 +20,5 @@ LL |     let _: &Copy + 'static;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0038, E0178.
+Some errors have detailed explanations: E0038, E0178.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr
index f9de5e14e59a6..55261a5e6aead 100644
--- a/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr
+++ b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr
@@ -27,5 +27,5 @@ LL | m!();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0432, E0433.
+Some errors have detailed explanations: E0432, E0433.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/dropck/drop-on-non-struct.stderr b/src/test/ui/dropck/drop-on-non-struct.stderr
index 6b670d5d434e4..6ff16402b0e6e 100644
--- a/src/test/ui/dropck/drop-on-non-struct.stderr
+++ b/src/test/ui/dropck/drop-on-non-struct.stderr
@@ -15,5 +15,5 @@ LL | impl<'a> Drop for &'a mut isize {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0117, E0120.
+Some errors have detailed explanations: E0117, E0120.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_1.stderr b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_1.stderr
index 9bf324412c3a5..6e20dbaeddb0c 100644
--- a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_1.stderr
+++ b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_1.stderr
@@ -16,4 +16,3 @@ LL |         FingerTree::Single(1);
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0320`.
diff --git a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_2.stderr b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_2.stderr
index 0a74377ea9fd7..db652aea065ec 100644
--- a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_2.stderr
+++ b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_2.stderr
@@ -16,4 +16,3 @@ LL |         FingerTree::Single(1);
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0320`.
diff --git a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_3.stderr b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_3.stderr
index d484e157519c2..a2425788e15ed 100644
--- a/src/test/ui/dropck/dropck_no_diverge_on_nonregular_3.stderr
+++ b/src/test/ui/dropck/dropck_no_diverge_on_nonregular_3.stderr
@@ -24,4 +24,3 @@ LL |         Some(Wrapper::Simple::<u32>);
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0320`.
diff --git a/src/test/ui/dst/dst-bad-assign-3.stderr b/src/test/ui/dst/dst-bad-assign-3.stderr
index 0c4f86613196d..8c80ec7aac1dd 100644
--- a/src/test/ui/dst/dst-bad-assign-3.stderr
+++ b/src/test/ui/dst/dst-bad-assign-3.stderr
@@ -19,5 +19,5 @@ LL |     f5.2 = Bar1 {f: 36};
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/dst/dst-bad-assign.stderr b/src/test/ui/dst/dst-bad-assign.stderr
index a60d9d66f39e6..849b1a62a46f5 100644
--- a/src/test/ui/dst/dst-bad-assign.stderr
+++ b/src/test/ui/dst/dst-bad-assign.stderr
@@ -19,5 +19,5 @@ LL |     f5.ptr = Bar1 {f: 36};
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/dst/dst-bad-coerce1.stderr b/src/test/ui/dst/dst-bad-coerce1.stderr
index 34b2d6d3d8beb..3776ce71c611f 100644
--- a/src/test/ui/dst/dst-bad-coerce1.stderr
+++ b/src/test/ui/dst/dst-bad-coerce1.stderr
@@ -34,5 +34,5 @@ LL |     let f3: &(Bar,) = f2;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/dst/dst-index.nll.stderr b/src/test/ui/dst/dst-index.nll.stderr
index 92e3d2b684a68..ec09a93a4aaec 100644
--- a/src/test/ui/dst/dst-index.nll.stderr
+++ b/src/test/ui/dst/dst-index.nll.stderr
@@ -24,5 +24,5 @@ LL |     T[0];
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0161, E0507.
+Some errors have detailed explanations: E0161, E0507.
 For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/ui/dst/dst-index.stderr b/src/test/ui/dst/dst-index.stderr
index 05993f50fa1a5..863a5c1177c6a 100644
--- a/src/test/ui/dst/dst-index.stderr
+++ b/src/test/ui/dst/dst-index.stderr
@@ -24,5 +24,5 @@ LL |     T[0];
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0161, E0507.
+Some errors have detailed explanations: E0161, E0507.
 For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/ui/dst/dst-rvalue.nll.stderr b/src/test/ui/dst/dst-rvalue.nll.stderr
index d0d8f79395971..7ef8e4dc72e13 100644
--- a/src/test/ui/dst/dst-rvalue.nll.stderr
+++ b/src/test/ui/dst/dst-rvalue.nll.stderr
@@ -24,5 +24,5 @@ LL |     let _x: Box<[isize]> = box *array;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0161, E0507, E0508.
+Some errors have detailed explanations: E0161, E0507, E0508.
 For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/ui/dst/dst-rvalue.stderr b/src/test/ui/dst/dst-rvalue.stderr
index 2c92f5dcbf547..1ad597152fbfb 100644
--- a/src/test/ui/dst/dst-rvalue.stderr
+++ b/src/test/ui/dst/dst-rvalue.stderr
@@ -24,5 +24,5 @@ LL |     let _x: Box<[isize]> = box *array;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0161, E0507.
+Some errors have detailed explanations: E0161, E0507.
 For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/ui/duplicate/duplicate-type-parameter.stderr b/src/test/ui/duplicate/duplicate-type-parameter.stderr
index 17d48edc35c91..8606479ff6863 100644
--- a/src/test/ui/duplicate/duplicate-type-parameter.stderr
+++ b/src/test/ui/duplicate/duplicate-type-parameter.stderr
@@ -62,5 +62,5 @@ LL | impl<T,T> Qux<T,T> for Option<T> {}
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0207, E0403.
+Some errors have detailed explanations: E0207, E0403.
 For more information about an error, try `rustc --explain E0207`.
diff --git a/src/test/ui/dyn-trait-compatibility.stderr b/src/test/ui/dyn-trait-compatibility.stderr
index aef785a75b912..7210a11f35070 100644
--- a/src/test/ui/dyn-trait-compatibility.stderr
+++ b/src/test/ui/dyn-trait-compatibility.stderr
@@ -48,5 +48,5 @@ LL | type A3 = dyn<<dyn as dyn>::dyn>;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0412, E0433.
+Some errors have detailed explanations: E0412, E0433.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/e0119/complex-impl.stderr b/src/test/ui/e0119/complex-impl.stderr
index f211530dcf48a..7ed89a5b1aeb1 100644
--- a/src/test/ui/e0119/complex-impl.stderr
+++ b/src/test/ui/e0119/complex-impl.stderr
@@ -18,5 +18,5 @@ LL | impl<R> External for (Q, R) {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0119, E0210.
+Some errors have detailed explanations: E0119, E0210.
 For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/e0119/issue-28981.stderr b/src/test/ui/e0119/issue-28981.stderr
index e1e07190d8c6f..70c83e1412da6 100644
--- a/src/test/ui/e0119/issue-28981.stderr
+++ b/src/test/ui/e0119/issue-28981.stderr
@@ -18,5 +18,5 @@ LL | impl<Foo> Deref for Foo { }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0119, E0210.
+Some errors have detailed explanations: E0119, E0210.
 For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/editions/edition-deny-async-fns-2015.stderr b/src/test/ui/editions/edition-deny-async-fns-2015.stderr
index 83c8dbc7472fd..05a06124dc220 100644
--- a/src/test/ui/editions/edition-deny-async-fns-2015.stderr
+++ b/src/test/ui/editions/edition-deny-async-fns-2015.stderr
@@ -54,5 +54,4 @@ LL |     async fn foo() {}
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0670, E0706.
-For more information about an error, try `rustc --explain E0670`.
+For more information about this error, try `rustc --explain E0670`.
diff --git a/src/test/ui/empty/empty-struct-braces-expr.stderr b/src/test/ui/empty/empty-struct-braces-expr.stderr
index f5609c8e1bf7b..b9681db87b67e 100644
--- a/src/test/ui/empty/empty-struct-braces-expr.stderr
+++ b/src/test/ui/empty/empty-struct-braces-expr.stderr
@@ -72,5 +72,5 @@ LL |     XE::Empty1 {};
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0423, E0599.
+Some errors have detailed explanations: E0423, E0599.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/empty/empty-struct-tuple-pat.stderr b/src/test/ui/empty/empty-struct-tuple-pat.stderr
index 71a8141b8ddd5..777b9d4a4acd0 100644
--- a/src/test/ui/empty/empty-struct-tuple-pat.stderr
+++ b/src/test/ui/empty/empty-struct-tuple-pat.stderr
@@ -32,5 +32,5 @@ LL |         XE::XEmpty5 => (),
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0530, E0532.
+Some errors have detailed explanations: E0530, E0532.
 For more information about an error, try `rustc --explain E0530`.
diff --git a/src/test/ui/enum-variant-generic-args.stderr b/src/test/ui/enum-variant-generic-args.stderr
index 09b9a4eed6be8..97b111a5c8595 100644
--- a/src/test/ui/enum-variant-generic-args.stderr
+++ b/src/test/ui/enum-variant-generic-args.stderr
@@ -186,5 +186,5 @@ LL |     AliasFixed::<()>::SVariant::<()> { v: () };
 
 error: aborting due to 28 previous errors
 
-Some errors occurred: E0107, E0109, E0308.
+Some errors have detailed explanations: E0107, E0109, E0308.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/enum/enum-variant-type-2.stderr b/src/test/ui/enum/enum-variant-type-2.stderr
index 7e8453c61f62b..65c45d9bad0dc 100644
--- a/src/test/ui/enum/enum-variant-type-2.stderr
+++ b/src/test/ui/enum/enum-variant-type-2.stderr
@@ -9,4 +9,3 @@ LL | fn foo(x: Foo::Bar) {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/enums-pats-not-idents.stderr b/src/test/ui/enums-pats-not-idents.stderr
index 6b1e6046260a9..3891d1eac487b 100644
--- a/src/test/ui/enums-pats-not-idents.stderr
+++ b/src/test/ui/enums-pats-not-idents.stderr
@@ -6,4 +6,3 @@ LL |     let a(1) = 13;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0531`.
diff --git a/src/test/ui/error-codes/E0007.stderr b/src/test/ui/error-codes/E0007.stderr
index a5d694976cfbd..e290e9c008df2 100644
--- a/src/test/ui/error-codes/E0007.stderr
+++ b/src/test/ui/error-codes/E0007.stderr
@@ -12,5 +12,5 @@ LL |         op_string @ Some(s) => {},
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0007, E0303.
+Some errors have detailed explanations: E0007, E0303.
 For more information about an error, try `rustc --explain E0007`.
diff --git a/src/test/ui/error-codes/E0010-teach.stderr b/src/test/ui/error-codes/E0010-teach.stderr
index 3e8467fad6fcc..4c9d140692ad0 100644
--- a/src/test/ui/error-codes/E0010-teach.stderr
+++ b/src/test/ui/error-codes/E0010-teach.stderr
@@ -17,5 +17,5 @@ LL | const CON : Box<i32> = box 0;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0010, E0019.
+Some errors have detailed explanations: E0010, E0019.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/error-codes/E0010.stderr b/src/test/ui/error-codes/E0010.stderr
index 285570f755ed7..48472d8acda38 100644
--- a/src/test/ui/error-codes/E0010.stderr
+++ b/src/test/ui/error-codes/E0010.stderr
@@ -12,5 +12,5 @@ LL | const CON : Box<i32> = box 0;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0010, E0019.
+Some errors have detailed explanations: E0010, E0019.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/error-codes/E0017.nll.stderr b/src/test/ui/error-codes/E0017.nll.stderr
index 3c2a07265f4f0..67ff7da611bb1 100644
--- a/src/test/ui/error-codes/E0017.nll.stderr
+++ b/src/test/ui/error-codes/E0017.nll.stderr
@@ -30,5 +30,5 @@ LL | static CONST_REF: &'static mut i32 = &mut C;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0017, E0596.
+Some errors have detailed explanations: E0017, E0596.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/error-codes/E0017.stderr b/src/test/ui/error-codes/E0017.stderr
index d0bd93eb90895..07fe9076715e6 100644
--- a/src/test/ui/error-codes/E0017.stderr
+++ b/src/test/ui/error-codes/E0017.stderr
@@ -30,5 +30,5 @@ LL | static CONST_REF: &'static mut i32 = &mut C;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0017, E0596.
+Some errors have detailed explanations: E0017, E0596.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/error-codes/E0033-teach.stderr b/src/test/ui/error-codes/E0033-teach.stderr
index 81a8f164b943c..1b78820cae07b 100644
--- a/src/test/ui/error-codes/E0033-teach.stderr
+++ b/src/test/ui/error-codes/E0033-teach.stderr
@@ -24,5 +24,5 @@ LL |     let &invalid = trait_obj;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0033, E0038, E0423.
+Some errors have detailed explanations: E0033, E0038, E0423.
 For more information about an error, try `rustc --explain E0033`.
diff --git a/src/test/ui/error-codes/E0033.stderr b/src/test/ui/error-codes/E0033.stderr
index e250df81c14a0..976b0e0286fa0 100644
--- a/src/test/ui/error-codes/E0033.stderr
+++ b/src/test/ui/error-codes/E0033.stderr
@@ -20,5 +20,5 @@ LL |     let &invalid = trait_obj;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0033, E0038, E0423.
+Some errors have detailed explanations: E0033, E0038, E0423.
 For more information about an error, try `rustc --explain E0033`.
diff --git a/src/test/ui/error-codes/E0067.stderr b/src/test/ui/error-codes/E0067.stderr
index 024c8681b5504..0334565840f83 100644
--- a/src/test/ui/error-codes/E0067.stderr
+++ b/src/test/ui/error-codes/E0067.stderr
@@ -16,5 +16,5 @@ LL |     LinkedList::new() += 1;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0067, E0368.
+Some errors have detailed explanations: E0067, E0368.
 For more information about an error, try `rustc --explain E0067`.
diff --git a/src/test/ui/error-codes/E0070.stderr b/src/test/ui/error-codes/E0070.stderr
index 6592ad328be5c..40186137b0aaf 100644
--- a/src/test/ui/error-codes/E0070.stderr
+++ b/src/test/ui/error-codes/E0070.stderr
@@ -27,5 +27,5 @@ LL |     some_other_func() = 4;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0070, E0308.
+Some errors have detailed explanations: E0070, E0308.
 For more information about an error, try `rustc --explain E0070`.
diff --git a/src/test/ui/error-codes/E0117.stderr b/src/test/ui/error-codes/E0117.stderr
index 80b3a4e714ae0..6c0bbc2b62801 100644
--- a/src/test/ui/error-codes/E0117.stderr
+++ b/src/test/ui/error-codes/E0117.stderr
@@ -15,5 +15,5 @@ LL | impl Drop for u32 {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0117, E0120.
+Some errors have detailed explanations: E0117, E0120.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/error-codes/E0206.stderr b/src/test/ui/error-codes/E0206.stderr
index a0c4b0149a099..cd5d74854eff8 100644
--- a/src/test/ui/error-codes/E0206.stderr
+++ b/src/test/ui/error-codes/E0206.stderr
@@ -21,5 +21,5 @@ LL | impl Copy for Foo { }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0117, E0206.
+Some errors have detailed explanations: E0117, E0206.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/error-codes/E0220.stderr b/src/test/ui/error-codes/E0220.stderr
index 43949833e21d2..bd2205fb75274 100644
--- a/src/test/ui/error-codes/E0220.stderr
+++ b/src/test/ui/error-codes/E0220.stderr
@@ -15,5 +15,5 @@ LL | type Foo = Trait<F=i32>;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0191, E0220.
+Some errors have detailed explanations: E0191, E0220.
 For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/ui/error-codes/E0303.stderr b/src/test/ui/error-codes/E0303.stderr
index d701b07de6b5e..af537ce5625ca 100644
--- a/src/test/ui/error-codes/E0303.stderr
+++ b/src/test/ui/error-codes/E0303.stderr
@@ -15,5 +15,5 @@ LL |         ref op_string_ref @ Some(s) => {},
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0009, E0303.
+Some errors have detailed explanations: E0009, E0303.
 For more information about an error, try `rustc --explain E0009`.
diff --git a/src/test/ui/error-codes/E0388.nll.stderr b/src/test/ui/error-codes/E0388.nll.stderr
index 0fc8a76820cf6..e0ca431673240 100644
--- a/src/test/ui/error-codes/E0388.nll.stderr
+++ b/src/test/ui/error-codes/E0388.nll.stderr
@@ -30,5 +30,5 @@ LL | static CONST_REF: &'static mut i32 = &mut C;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0017, E0596.
+Some errors have detailed explanations: E0017, E0596.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/error-codes/E0388.stderr b/src/test/ui/error-codes/E0388.stderr
index 3f662459c8417..fae43ff464740 100644
--- a/src/test/ui/error-codes/E0388.stderr
+++ b/src/test/ui/error-codes/E0388.stderr
@@ -30,5 +30,5 @@ LL | static CONST_REF: &'static mut i32 = &mut C;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0017, E0596.
+Some errors have detailed explanations: E0017, E0596.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/error-codes/E0389.nll.stderr b/src/test/ui/error-codes/E0389.nll.stderr
index c47750b6f4e69..5310367d51a55 100644
--- a/src/test/ui/error-codes/E0389.nll.stderr
+++ b/src/test/ui/error-codes/E0389.nll.stderr
@@ -8,4 +8,3 @@ LL |     fancy_ref.num = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/error-codes/E0430.stderr b/src/test/ui/error-codes/E0430.stderr
index d8e4a802959a0..69a0d6e11b29d 100644
--- a/src/test/ui/error-codes/E0430.stderr
+++ b/src/test/ui/error-codes/E0430.stderr
@@ -18,5 +18,5 @@ LL | use std::fmt::{self, self};
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0252, E0430.
+Some errors have detailed explanations: E0252, E0430.
 For more information about an error, try `rustc --explain E0252`.
diff --git a/src/test/ui/error-codes/E0458.stderr b/src/test/ui/error-codes/E0458.stderr
index 154e0b121797d..d60fd96c77936 100644
--- a/src/test/ui/error-codes/E0458.stderr
+++ b/src/test/ui/error-codes/E0458.stderr
@@ -14,5 +14,5 @@ LL | #[link(kind = "wonderful_unicorn")] extern {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0458, E0459.
+Some errors have detailed explanations: E0458, E0459.
 For more information about an error, try `rustc --explain E0458`.
diff --git a/src/test/ui/error-codes/E0511.stderr b/src/test/ui/error-codes/E0511.stderr
index 1362a3d1f254a..5f8be0c61d304 100644
--- a/src/test/ui/error-codes/E0511.stderr
+++ b/src/test/ui/error-codes/E0511.stderr
@@ -6,4 +6,3 @@ LL |     unsafe { simd_add(0, 1); }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/error-codes/E0621-does-not-trigger-for-closures.stderr b/src/test/ui/error-codes/E0621-does-not-trigger-for-closures.stderr
index feca7f10b706b..f50c64780118b 100644
--- a/src/test/ui/error-codes/E0621-does-not-trigger-for-closures.stderr
+++ b/src/test/ui/error-codes/E0621-does-not-trigger-for-closures.stderr
@@ -27,4 +27,3 @@ LL |     invoke(&x, |a, b| if a > b { a } else { b });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/error-codes/E0637.stderr b/src/test/ui/error-codes/E0637.stderr
index d19ebfd15a52c..9c3ca87ed7e64 100644
--- a/src/test/ui/error-codes/E0637.stderr
+++ b/src/test/ui/error-codes/E0637.stderr
@@ -18,4 +18,3 @@ LL | impl<'a: '_> Bar<'a> {
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/error-codes/E0657.stderr b/src/test/ui/error-codes/E0657.stderr
index df76b45a5891f..b24b413600c6c 100644
--- a/src/test/ui/error-codes/E0657.stderr
+++ b/src/test/ui/error-codes/E0657.stderr
@@ -12,4 +12,3 @@ LL |         -> Box<for<'a> Id<impl Lt<'a>>>
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0657`.
diff --git a/src/test/ui/error-codes/E0719.stderr b/src/test/ui/error-codes/E0719.stderr
index 209bfbae07fab..5854cd7e1438b 100644
--- a/src/test/ui/error-codes/E0719.stderr
+++ b/src/test/ui/error-codes/E0719.stderr
@@ -16,4 +16,3 @@ LL | fn test() -> Box<Iterator<Item = (), Item = Unit>> {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0719`.
diff --git a/src/test/ui/error-festival.stderr b/src/test/ui/error-festival.stderr
index ff6504e9688e5..8808e95d81b18 100644
--- a/src/test/ui/error-festival.stderr
+++ b/src/test/ui/error-festival.stderr
@@ -71,5 +71,5 @@ LL |     v as *const [u8];
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0054, E0368, E0425, E0599, E0600, E0603, E0604, E0605, E0606...
+Some errors have detailed explanations: E0054, E0368, E0425, E0599, E0600, E0603, E0604, E0605, E0606...
 For more information about an error, try `rustc --explain E0054`.
diff --git a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
index e3e5481a96c5e..002acc41553b6 100644
--- a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
+++ b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
@@ -24,5 +24,5 @@ LL | existential type WrongGeneric<T>: 'static;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0310.
+Some errors have detailed explanations: E0308, E0310.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/existential_types/never_reveal_concrete_type.stderr b/src/test/ui/existential_types/never_reveal_concrete_type.stderr
index 81b6584ae90d0..7c195f1fad006 100644
--- a/src/test/ui/existential_types/never_reveal_concrete_type.stderr
+++ b/src/test/ui/existential_types/never_reveal_concrete_type.stderr
@@ -17,5 +17,5 @@ LL |     let _ = x as &'static str;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0605.
+Some errors have detailed explanations: E0308, E0605.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/explore-issue-38412.stderr b/src/test/ui/explore-issue-38412.stderr
index eb28ad410fa12..ceeaaafc2bc3f 100644
--- a/src/test/ui/explore-issue-38412.stderr
+++ b/src/test/ui/explore-issue-38412.stderr
@@ -135,5 +135,5 @@ LL |     t.private();
 
 error: aborting due to 19 previous errors
 
-Some errors occurred: E0616, E0624, E0658.
+Some errors have detailed explanations: E0616, E0624, E0658.
 For more information about an error, try `rustc --explain E0616`.
diff --git a/src/test/ui/export.stderr b/src/test/ui/export.stderr
index 76ec91e181d5a..a3668a502cdd4 100644
--- a/src/test/ui/export.stderr
+++ b/src/test/ui/export.stderr
@@ -30,5 +30,5 @@ LL | fn main() { foo::z(10); }
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0425, E0603.
+Some errors have detailed explanations: E0425, E0603.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/extern-prelude-fail.stderr b/src/test/ui/extern-prelude-fail.stderr
index ad148c04d08af..9cd56ea7f5b66 100644
--- a/src/test/ui/extern-prelude-fail.stderr
+++ b/src/test/ui/extern-prelude-fail.stderr
@@ -12,5 +12,5 @@ LL |     let s = ::extern_prelude::S;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0432, E0433.
+Some errors have detailed explanations: E0432, E0433.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/fat-ptr-cast.stderr b/src/test/ui/fat-ptr-cast.stderr
index fb1602423938e..bb7a4d3ff7f6a 100644
--- a/src/test/ui/fat-ptr-cast.stderr
+++ b/src/test/ui/fat-ptr-cast.stderr
@@ -66,5 +66,5 @@ LL |     let mut fail: *const str = 0 as *const str;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0605, E0606, E0607.
+Some errors have detailed explanations: E0605, E0606, E0607.
 For more information about an error, try `rustc --explain E0605`.
diff --git a/src/test/ui/feature-gate-optimize_attribute.stderr b/src/test/ui/feature-gate-optimize_attribute.stderr
index b4ba3fded150d..5e7c0a708c1da 100644
--- a/src/test/ui/feature-gate-optimize_attribute.stderr
+++ b/src/test/ui/feature-gate-optimize_attribute.stderr
@@ -51,5 +51,4 @@ LL | #[optimize(banana)]
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0658, E0722.
-For more information about an error, try `rustc --explain E0658`.
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gate/stability-attribute-consistency.stderr b/src/test/ui/feature-gate/stability-attribute-consistency.stderr
index 191b25db3e0fe..9b4b28a3922cb 100644
--- a/src/test/ui/feature-gate/stability-attribute-consistency.stderr
+++ b/src/test/ui/feature-gate/stability-attribute-consistency.stderr
@@ -12,4 +12,3 @@ LL | #[unstable(feature = "foo", issue = "0")]
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0711`.
diff --git a/src/test/ui/feature-gates/feature-gate-async-await-2015-edition.stderr b/src/test/ui/feature-gates/feature-gate-async-await-2015-edition.stderr
index 77dc6a486a1da..cec211fef1351 100644
--- a/src/test/ui/feature-gates/feature-gate-async-await-2015-edition.stderr
+++ b/src/test/ui/feature-gates/feature-gate-async-await-2015-edition.stderr
@@ -27,5 +27,5 @@ LL | async fn foo() {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0422, E0425, E0658, E0670.
+Some errors have detailed explanations: E0422, E0425, E0658, E0670.
 For more information about an error, try `rustc --explain E0422`.
diff --git a/src/test/ui/feature-gates/feature-gate-concat_idents2.stderr b/src/test/ui/feature-gates/feature-gate-concat_idents2.stderr
index 1ef45115bd1b8..864ee63b201d6 100644
--- a/src/test/ui/feature-gates/feature-gate-concat_idents2.stderr
+++ b/src/test/ui/feature-gates/feature-gate-concat_idents2.stderr
@@ -15,5 +15,5 @@ LL |     concat_idents!(a, b);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0425, E0658.
+Some errors have detailed explanations: E0425, E0658.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/feature-gates/feature-gate-const_fn.stderr b/src/test/ui/feature-gates/feature-gate-const_fn.stderr
index 0edd4eb7ab006..b4d64c2422162 100644
--- a/src/test/ui/feature-gates/feature-gate-const_fn.stderr
+++ b/src/test/ui/feature-gates/feature-gate-const_fn.stderr
@@ -36,5 +36,5 @@ LL |     const fn bar() -> u32 { 0 }
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0379, E0658.
+Some errors have detailed explanations: E0379, E0658.
 For more information about an error, try `rustc --explain E0379`.
diff --git a/src/test/ui/feature-gates/feature-gate-extern_absolute_paths.stderr b/src/test/ui/feature-gates/feature-gate-extern_absolute_paths.stderr
index e31d888f00786..59b28704ddb73 100644
--- a/src/test/ui/feature-gates/feature-gate-extern_absolute_paths.stderr
+++ b/src/test/ui/feature-gates/feature-gate-extern_absolute_paths.stderr
@@ -12,5 +12,5 @@ LL |     let _: u8 = ::core::default::Default();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0432, E0433.
+Some errors have detailed explanations: E0432, E0433.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/feature-gates/feature-gate-generators.stderr b/src/test/ui/feature-gates/feature-gate-generators.stderr
index b29fe7094f30f..d85dc18d03d18 100644
--- a/src/test/ui/feature-gates/feature-gate-generators.stderr
+++ b/src/test/ui/feature-gates/feature-gate-generators.stderr
@@ -15,5 +15,4 @@ LL |     yield true;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0627, E0658.
-For more information about an error, try `rustc --explain E0627`.
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-intrinsics.stderr b/src/test/ui/feature-gates/feature-gate-intrinsics.stderr
index 5b032c6f1ea3f..372af6ad92125 100644
--- a/src/test/ui/feature-gates/feature-gate-intrinsics.stderr
+++ b/src/test/ui/feature-gates/feature-gate-intrinsics.stderr
@@ -24,5 +24,5 @@ LL |     fn bar();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0093, E0658.
+Some errors have detailed explanations: E0093, E0658.
 For more information about an error, try `rustc --explain E0093`.
diff --git a/src/test/ui/feature-gates/feature-gate-lang-items.stderr b/src/test/ui/feature-gates/feature-gate-lang-items.stderr
index f4c238d9f3fff..8fc1197ddfe53 100644
--- a/src/test/ui/feature-gates/feature-gate-lang-items.stderr
+++ b/src/test/ui/feature-gates/feature-gate-lang-items.stderr
@@ -14,5 +14,5 @@ LL | #[lang = "foo"]
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0522, E0658.
+Some errors have detailed explanations: E0522, E0658.
 For more information about an error, try `rustc --explain E0522`.
diff --git a/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr b/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
index a1c329df63a25..f5155b424b560 100644
--- a/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
+++ b/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
@@ -36,5 +36,5 @@ LL |     const fn bar() -> u32 { 0 }
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0379, E0658.
+Some errors have detailed explanations: E0379, E0658.
 For more information about an error, try `rustc --explain E0379`.
diff --git a/src/test/ui/feature-gates/feature-gate-repr-simd.stderr b/src/test/ui/feature-gates/feature-gate-repr-simd.stderr
index 056bfdd85d1be..fd3176e573796 100644
--- a/src/test/ui/feature-gates/feature-gate-repr-simd.stderr
+++ b/src/test/ui/feature-gates/feature-gate-repr-simd.stderr
@@ -26,5 +26,4 @@ LL | #[repr(simd)]
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0566, E0658.
-For more information about an error, try `rustc --explain E0566`.
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-unboxed-closures-manual-impls.stderr b/src/test/ui/feature-gates/feature-gate-unboxed-closures-manual-impls.stderr
index 5fbaf8dd0ba71..6b09daff0f9d1 100644
--- a/src/test/ui/feature-gates/feature-gate-unboxed-closures-manual-impls.stderr
+++ b/src/test/ui/feature-gates/feature-gate-unboxed-closures-manual-impls.stderr
@@ -69,5 +69,5 @@ LL | impl FnOnce<()> for Baz {
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0229, E0658.
+Some errors have detailed explanations: E0229, E0658.
 For more information about an error, try `rustc --explain E0229`.
diff --git a/src/test/ui/ffi_returns_twice.stderr b/src/test/ui/ffi_returns_twice.stderr
index e4137c79939a8..e51d3d8c146b4 100644
--- a/src/test/ui/ffi_returns_twice.stderr
+++ b/src/test/ui/ffi_returns_twice.stderr
@@ -6,4 +6,3 @@ LL | #[ffi_returns_twice]
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0724`.
diff --git a/src/test/ui/fn/fn-closure-mutable-capture.nll.stderr b/src/test/ui/fn/fn-closure-mutable-capture.nll.stderr
index f7ab56da8de97..8dfae0cbdf294 100644
--- a/src/test/ui/fn/fn-closure-mutable-capture.nll.stderr
+++ b/src/test/ui/fn/fn-closure-mutable-capture.nll.stderr
@@ -12,4 +12,3 @@ LL |     bar(move || x = 1);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/fn/fn-closure-mutable-capture.stderr b/src/test/ui/fn/fn-closure-mutable-capture.stderr
index 84a5989c28c09..2414bcd5e2eed 100644
--- a/src/test/ui/fn/fn-closure-mutable-capture.stderr
+++ b/src/test/ui/fn/fn-closure-mutable-capture.stderr
@@ -13,4 +13,3 @@ LL |     bar(move || x = 1);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/fn/fn-compare-mismatch.stderr b/src/test/ui/fn/fn-compare-mismatch.stderr
index c64070a2022d9..b2f6510d5a084 100644
--- a/src/test/ui/fn/fn-compare-mismatch.stderr
+++ b/src/test/ui/fn/fn-compare-mismatch.stderr
@@ -25,5 +25,5 @@ LL |     let x = f == g;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0369.
+Some errors have detailed explanations: E0308, E0369.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/fn/fn-trait-formatting.stderr b/src/test/ui/fn/fn-trait-formatting.stderr
index bbccb57a1e218..6b76a6c914f00 100644
--- a/src/test/ui/fn/fn-trait-formatting.stderr
+++ b/src/test/ui/fn/fn-trait-formatting.stderr
@@ -40,5 +40,5 @@ LL | fn needs_fn<F>(x: F) where F: Fn(isize) -> isize {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/gated-bad-feature.stderr b/src/test/ui/gated-bad-feature.stderr
index b208da3645d8f..5a3cfc962e05c 100644
--- a/src/test/ui/gated-bad-feature.stderr
+++ b/src/test/ui/gated-bad-feature.stderr
@@ -30,5 +30,4 @@ LL | #![feature = "foo"]
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0556, E0557.
-For more information about an error, try `rustc --explain E0556`.
+For more information about this error, try `rustc --explain E0557`.
diff --git a/src/test/ui/generator/no-arguments-on-generators.stderr b/src/test/ui/generator/no-arguments-on-generators.stderr
index 47a12bbacc025..23ae21585fd38 100644
--- a/src/test/ui/generator/no-arguments-on-generators.stderr
+++ b/src/test/ui/generator/no-arguments-on-generators.stderr
@@ -6,4 +6,3 @@ LL |     let gen = |start| {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0628`.
diff --git a/src/test/ui/generator/ref-escapes-but-not-over-yield.nll.stderr b/src/test/ui/generator/ref-escapes-but-not-over-yield.nll.stderr
index 01eea627351fb..de533e4d5ff7b 100644
--- a/src/test/ui/generator/ref-escapes-but-not-over-yield.nll.stderr
+++ b/src/test/ui/generator/ref-escapes-but-not-over-yield.nll.stderr
@@ -12,4 +12,3 @@ LL |         a = &b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0521`.
diff --git a/src/test/ui/generator/yield-in-const.stderr b/src/test/ui/generator/yield-in-const.stderr
index e531bd6ef9ff5..663bb70d7a07f 100644
--- a/src/test/ui/generator/yield-in-const.stderr
+++ b/src/test/ui/generator/yield-in-const.stderr
@@ -6,4 +6,3 @@ LL | const A: u8 = { yield 3u8; 3u8};
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0627`.
diff --git a/src/test/ui/generator/yield-in-function.stderr b/src/test/ui/generator/yield-in-function.stderr
index 981c9f8339f1f..e12b0e6843e41 100644
--- a/src/test/ui/generator/yield-in-function.stderr
+++ b/src/test/ui/generator/yield-in-function.stderr
@@ -6,4 +6,3 @@ LL | fn main() { yield; }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0627`.
diff --git a/src/test/ui/generator/yield-in-static.stderr b/src/test/ui/generator/yield-in-static.stderr
index 46d341f3dcfba..220520c3862ca 100644
--- a/src/test/ui/generator/yield-in-static.stderr
+++ b/src/test/ui/generator/yield-in-static.stderr
@@ -6,4 +6,3 @@ LL | static B: u8 = { yield 3u8; 3u8};
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0627`.
diff --git a/src/test/ui/generator/yield-while-iterating.nll.stderr b/src/test/ui/generator/yield-while-iterating.nll.stderr
index 43e29ceb5e667..6a96b25b19fb4 100644
--- a/src/test/ui/generator/yield-while-iterating.nll.stderr
+++ b/src/test/ui/generator/yield-while-iterating.nll.stderr
@@ -21,5 +21,5 @@ LL |     Pin::new(&mut b).resume();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0502, E0626.
+Some errors have detailed explanations: E0502, E0626.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/generator/yield-while-iterating.stderr b/src/test/ui/generator/yield-while-iterating.stderr
index bcfe4f64bc3d2..91f28e1c4d007 100644
--- a/src/test/ui/generator/yield-while-iterating.stderr
+++ b/src/test/ui/generator/yield-while-iterating.stderr
@@ -22,5 +22,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0502, E0626.
+Some errors have detailed explanations: E0502, E0626.
 For more information about an error, try `rustc --explain E0502`.
diff --git a/src/test/ui/generic/generic-arg-mismatch-recover.stderr b/src/test/ui/generic/generic-arg-mismatch-recover.stderr
index e16ad9120a65e..fe36e807c777d 100644
--- a/src/test/ui/generic/generic-arg-mismatch-recover.stderr
+++ b/src/test/ui/generic/generic-arg-mismatch-recover.stderr
@@ -27,5 +27,5 @@ LL |     Bar::<'static, 'static, ()>(&());
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0107, E0308.
+Some errors have detailed explanations: E0107, E0308.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/glob-resolve1.stderr b/src/test/ui/glob-resolve1.stderr
index c252a6e220c64..4958099ca7405 100644
--- a/src/test/ui/glob-resolve1.stderr
+++ b/src/test/ui/glob-resolve1.stderr
@@ -84,5 +84,5 @@ LL | use bar::D;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0412, E0423, E0425.
+Some errors have detailed explanations: E0412, E0423, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/hygiene/assoc_item_ctxt.stderr b/src/test/ui/hygiene/assoc_item_ctxt.stderr
index ebe38b7c41a6c..0d1c73eef0e23 100644
--- a/src/test/ui/hygiene/assoc_item_ctxt.stderr
+++ b/src/test/ui/hygiene/assoc_item_ctxt.stderr
@@ -21,5 +21,5 @@ LL |     mac_trait_impl!();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0046, E0407.
+Some errors have detailed explanations: E0046, E0407.
 For more information about an error, try `rustc --explain E0046`.
diff --git a/src/test/ui/hygiene/no_implicit_prelude.stderr b/src/test/ui/hygiene/no_implicit_prelude.stderr
index 7948f1667d77d..dcb213f809a9d 100644
--- a/src/test/ui/hygiene/no_implicit_prelude.stderr
+++ b/src/test/ui/hygiene/no_implicit_prelude.stderr
@@ -31,5 +31,5 @@ LL |         ().clone()
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0433, E0599.
+Some errors have detailed explanations: E0433, E0599.
 For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/ui/immut-function-arguments.ast.nll.stderr b/src/test/ui/immut-function-arguments.ast.nll.stderr
index 5085f3697184e..48471372342ac 100644
--- a/src/test/ui/immut-function-arguments.ast.nll.stderr
+++ b/src/test/ui/immut-function-arguments.ast.nll.stderr
@@ -16,4 +16,3 @@ LL |     let _frob = |q: Box<isize>| { *q = 2; };
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/immut-function-arguments.ast.stderr b/src/test/ui/immut-function-arguments.ast.stderr
index f371a13cd4d25..1b5615a4cca5f 100644
--- a/src/test/ui/immut-function-arguments.ast.stderr
+++ b/src/test/ui/immut-function-arguments.ast.stderr
@@ -16,4 +16,3 @@ LL |     let _frob = |q: Box<isize>| { *q = 2; };
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/immut-function-arguments.mir.stderr b/src/test/ui/immut-function-arguments.mir.stderr
index 5085f3697184e..48471372342ac 100644
--- a/src/test/ui/immut-function-arguments.mir.stderr
+++ b/src/test/ui/immut-function-arguments.mir.stderr
@@ -16,4 +16,3 @@ LL |     let _frob = |q: Box<isize>| { *q = 2; };
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr b/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
index af120fa977caa..eb824def24687 100644
--- a/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
+++ b/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
@@ -19,4 +19,3 @@ LL | fn with_dyn_debug_static<'a>(x: Box<dyn Debug + 'a>) {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/impl-trait/auto-trait-leak.stderr b/src/test/ui/impl-trait/auto-trait-leak.stderr
index 4e79dfc3f7c01..de0043eee8fd7 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.stderr
+++ b/src/test/ui/impl-trait/auto-trait-leak.stderr
@@ -85,5 +85,5 @@ LL | fn send<T: Send>(_: T) {}
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0391.
+Some errors have detailed explanations: E0277, E0391.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/impl-trait/equality.stderr b/src/test/ui/impl-trait/equality.stderr
index 6cd9d07748c27..7bb2d7d47a51d 100644
--- a/src/test/ui/impl-trait/equality.stderr
+++ b/src/test/ui/impl-trait/equality.stderr
@@ -23,5 +23,5 @@ LL |         n + sum_to(n - 1)
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/impl-trait/impl_trait_projections.stderr b/src/test/ui/impl-trait/impl_trait_projections.stderr
index 4e9bcf32e1379..ff4382187aae4 100644
--- a/src/test/ui/impl-trait/impl_trait_projections.stderr
+++ b/src/test/ui/impl-trait/impl_trait_projections.stderr
@@ -30,5 +30,4 @@ LL | fn projection_is_disallowed(x: impl Iterator) -> <impl Iterator>::Item {
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0223, E0667.
-For more information about an error, try `rustc --explain E0223`.
+For more information about this error, try `rustc --explain E0223`.
diff --git a/src/test/ui/impl-trait/issue-57979-deeply-nested-impl-trait-in-assoc-proj.stderr b/src/test/ui/impl-trait/issue-57979-deeply-nested-impl-trait-in-assoc-proj.stderr
index 2b6f15e6d3eb2..b9a1a4fa80a2b 100644
--- a/src/test/ui/impl-trait/issue-57979-deeply-nested-impl-trait-in-assoc-proj.stderr
+++ b/src/test/ui/impl-trait/issue-57979-deeply-nested-impl-trait-in-assoc-proj.stderr
@@ -27,4 +27,3 @@ LL |     pub fn demo(_: impl Quux<Assoc=super::Deeper<impl Foo<impl Bar>>>) { }
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0666`.
diff --git a/src/test/ui/impl-trait/must_outlive_least_region_or_bound.stderr b/src/test/ui/impl-trait/must_outlive_least_region_or_bound.stderr
index 9339a83b09a9d..a6ea7837678ed 100644
--- a/src/test/ui/impl-trait/must_outlive_least_region_or_bound.stderr
+++ b/src/test/ui/impl-trait/must_outlive_least_region_or_bound.stderr
@@ -77,5 +77,4 @@ LL | fn ty_param_wont_outlive_static<T:Debug>(x: T) -> impl Debug + 'static {
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0310, E0623.
-For more information about an error, try `rustc --explain E0310`.
+For more information about this error, try `rustc --explain E0310`.
diff --git a/src/test/ui/impl-trait/trait_type.stderr b/src/test/ui/impl-trait/trait_type.stderr
index a1f6b73abff2d..129d7ef5783ce 100644
--- a/src/test/ui/impl-trait/trait_type.stderr
+++ b/src/test/ui/impl-trait/trait_type.stderr
@@ -33,5 +33,5 @@ LL | impl std::fmt::Display for MyType4 {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0046, E0050, E0053, E0186.
+Some errors have detailed explanations: E0046, E0050, E0053, E0186.
 For more information about an error, try `rustc --explain E0046`.
diff --git a/src/test/ui/impl-trait/universal-issue-48703.stderr b/src/test/ui/impl-trait/universal-issue-48703.stderr
index 26ed8dbb9c75b..527bbd5f30fef 100644
--- a/src/test/ui/impl-trait/universal-issue-48703.stderr
+++ b/src/test/ui/impl-trait/universal-issue-48703.stderr
@@ -6,4 +6,3 @@ LL |     foo::<String>('a');
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0632`.
diff --git a/src/test/ui/impl-trait/universal-turbofish-in-method-issue-50950.stderr b/src/test/ui/impl-trait/universal-turbofish-in-method-issue-50950.stderr
index b7fc4d149e3d2..e2e6581fcf915 100644
--- a/src/test/ui/impl-trait/universal-turbofish-in-method-issue-50950.stderr
+++ b/src/test/ui/impl-trait/universal-turbofish-in-method-issue-50950.stderr
@@ -6,4 +6,3 @@ LL |     evt.handle_event::<TestEvent, fn(TestEvent)>(|_evt| {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0632`.
diff --git a/src/test/ui/impl-trait/where-allowed.stderr b/src/test/ui/impl-trait/where-allowed.stderr
index 7218e82922975..e7a8430faeac5 100644
--- a/src/test/ui/impl-trait/where-allowed.stderr
+++ b/src/test/ui/impl-trait/where-allowed.stderr
@@ -242,5 +242,4 @@ LL |     let _in_return_in_local_variable = || -> impl Fn() { || {} };
 
 error: aborting due to 39 previous errors
 
-Some errors occurred: E0562, E0666.
-For more information about an error, try `rustc --explain E0562`.
+For more information about this error, try `rustc --explain E0562`.
diff --git a/src/test/ui/import.stderr b/src/test/ui/import.stderr
index 685fff25a149e..6b320b198a0b1 100644
--- a/src/test/ui/import.stderr
+++ b/src/test/ui/import.stderr
@@ -21,5 +21,5 @@ LL |     zed::foo();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0432, E0603.
+Some errors have detailed explanations: E0432, E0603.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/imports/duplicate.stderr b/src/test/ui/imports/duplicate.stderr
index cc897b2b6b7e9..0dbcb5f1de3f9 100644
--- a/src/test/ui/imports/duplicate.stderr
+++ b/src/test/ui/imports/duplicate.stderr
@@ -67,5 +67,5 @@ LL |     use self::m2::*;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0252, E0659.
+Some errors have detailed explanations: E0252, E0659.
 For more information about an error, try `rustc --explain E0252`.
diff --git a/src/test/ui/imports/issue-53269.stderr b/src/test/ui/imports/issue-53269.stderr
index fc4ca3d0e53f6..613c59867c989 100644
--- a/src/test/ui/imports/issue-53269.stderr
+++ b/src/test/ui/imports/issue-53269.stderr
@@ -24,5 +24,5 @@ LL |     use nonexistent_module::mac;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0432, E0659.
+Some errors have detailed explanations: E0432, E0659.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/imports/issue-56125.stderr b/src/test/ui/imports/issue-56125.stderr
index 26d2fa06dd271..0ecedd50e03ec 100644
--- a/src/test/ui/imports/issue-56125.stderr
+++ b/src/test/ui/imports/issue-56125.stderr
@@ -51,5 +51,5 @@ LL |     use issue_56125::*;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0432, E0659.
+Some errors have detailed explanations: E0432, E0659.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/imports/reexports.stderr b/src/test/ui/imports/reexports.stderr
index 7726343ba6e37..af2c97e77b9d7 100644
--- a/src/test/ui/imports/reexports.stderr
+++ b/src/test/ui/imports/reexports.stderr
@@ -30,5 +30,5 @@ LL |     use b::b::foo::S as T;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0364, E0603.
+Some errors have detailed explanations: E0364, E0603.
 For more information about an error, try `rustc --explain E0364`.
diff --git a/src/test/ui/in-band-lifetimes/E0687.stderr b/src/test/ui/in-band-lifetimes/E0687.stderr
index 7aea2f220466c..e8e5100e00e07 100644
--- a/src/test/ui/in-band-lifetimes/E0687.stderr
+++ b/src/test/ui/in-band-lifetimes/E0687.stderr
@@ -24,4 +24,3 @@ LL |     fn bar(&self, x: fn(&'a u32)) {}
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0687`.
diff --git a/src/test/ui/in-band-lifetimes/E0687_where.stderr b/src/test/ui/in-band-lifetimes/E0687_where.stderr
index af0f9665f5d06..b422869c4db89 100644
--- a/src/test/ui/in-band-lifetimes/E0687_where.stderr
+++ b/src/test/ui/in-band-lifetimes/E0687_where.stderr
@@ -12,4 +12,3 @@ LL | fn baz(x: &impl Fn(&'a u32)) {}
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0687`.
diff --git a/src/test/ui/in-band-lifetimes/E0688.stderr b/src/test/ui/in-band-lifetimes/E0688.stderr
index afefcd9fc2c66..0078cd58001e3 100644
--- a/src/test/ui/in-band-lifetimes/E0688.stderr
+++ b/src/test/ui/in-band-lifetimes/E0688.stderr
@@ -24,4 +24,3 @@ LL | impl<'b> Foo<'a> {
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0688`.
diff --git a/src/test/ui/in-band-lifetimes/mismatched.stderr b/src/test/ui/in-band-lifetimes/mismatched.stderr
index 9d33aaf4c36f2..ec1045d5fae37 100644
--- a/src/test/ui/in-band-lifetimes/mismatched.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched.stderr
@@ -16,5 +16,4 @@ LL | fn foo2(x: &'a u32, y: &'b u32) -> &'a u32 { y }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0621, E0623.
-For more information about an error, try `rustc --explain E0621`.
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/ui/in-band-lifetimes/mismatched_trait_impl-2.stderr b/src/test/ui/in-band-lifetimes/mismatched_trait_impl-2.stderr
index fbd312a632f07..e56a56e2dae21 100644
--- a/src/test/ui/in-band-lifetimes/mismatched_trait_impl-2.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched_trait_impl-2.stderr
@@ -18,4 +18,3 @@ LL | |     }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr b/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr
index a80ebaf8dd29d..cd65bab2d4668 100644
--- a/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr
@@ -22,4 +22,3 @@ LL |     fn foo(&self, x: &u32, y: &'a u32) -> &'a u32 {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/indexing-requires-a-uint.stderr b/src/test/ui/indexing-requires-a-uint.stderr
index 0b879581ec69e..a2f8a7cf2a68f 100644
--- a/src/test/ui/indexing-requires-a-uint.stderr
+++ b/src/test/ui/indexing-requires-a-uint.stderr
@@ -15,5 +15,5 @@ LL |     bar::<isize>(i);  // i should not be re-coerced back to an isize
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/infinite/infinite-autoderef.stderr b/src/test/ui/infinite/infinite-autoderef.stderr
index 9e4b0a029ab7c..a5cc66f4473f2 100644
--- a/src/test/ui/infinite/infinite-autoderef.stderr
+++ b/src/test/ui/infinite/infinite-autoderef.stderr
@@ -48,5 +48,5 @@ LL |     Foo.bar();
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0055, E0308, E0599, E0609.
+Some errors have detailed explanations: E0055, E0308, E0599, E0609.
 For more information about an error, try `rustc --explain E0055`.
diff --git a/src/test/ui/inline-asm-bad-constraint.stderr b/src/test/ui/inline-asm-bad-constraint.stderr
index 59066e5e7fc7c..37e71a94c1690 100644
--- a/src/test/ui/inline-asm-bad-constraint.stderr
+++ b/src/test/ui/inline-asm-bad-constraint.stderr
@@ -18,4 +18,3 @@ LL |         asm!("addb $1, $0" : "={rax}"((0i32, rax)));
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0668`.
diff --git a/src/test/ui/inline-asm-bad-operand.stderr b/src/test/ui/inline-asm-bad-operand.stderr
index 3bb1cdda24977..4554da7b798ea 100644
--- a/src/test/ui/inline-asm-bad-operand.stderr
+++ b/src/test/ui/inline-asm-bad-operand.stderr
@@ -42,4 +42,3 @@ LL |                            "r"("hello e0669"));
 
 error: aborting due to 7 previous errors
 
-For more information about this error, try `rustc --explain E0669`.
diff --git a/src/test/ui/inner-static-type-parameter.stderr b/src/test/ui/inner-static-type-parameter.stderr
index 09f79105f6a0e..fc086a2a164db 100644
--- a/src/test/ui/inner-static-type-parameter.stderr
+++ b/src/test/ui/inner-static-type-parameter.stderr
@@ -18,5 +18,5 @@ LL | enum Bar<T> { What }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0392, E0401.
+Some errors have detailed explanations: E0392, E0401.
 For more information about an error, try `rustc --explain E0392`.
diff --git a/src/test/ui/invalid/invalid-inline.stderr b/src/test/ui/invalid/invalid-inline.stderr
index ce29951822fd9..f3d0426419729 100644
--- a/src/test/ui/invalid/invalid-inline.stderr
+++ b/src/test/ui/invalid/invalid-inline.stderr
@@ -18,5 +18,5 @@ LL | #[inline()]
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0534, E0535.
+Some errors have detailed explanations: E0534, E0535.
 For more information about an error, try `rustc --explain E0534`.
diff --git a/src/test/ui/issue-59764.stderr b/src/test/ui/issue-59764.stderr
index 924e69f5f9703..f266e908ecc3f 100644
--- a/src/test/ui/issue-59764.stderr
+++ b/src/test/ui/issue-59764.stderr
@@ -237,5 +237,5 @@ LL |     bar();
 
 error: aborting due to 18 previous errors
 
-Some errors occurred: E0425, E0432.
+Some errors have detailed explanations: E0425, E0432.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/issues/issue-10291.stderr b/src/test/ui/issues/issue-10291.stderr
index 89ffd4537a275..0d653e6ced1ef 100644
--- a/src/test/ui/issues/issue-10291.stderr
+++ b/src/test/ui/issues/issue-10291.stderr
@@ -20,4 +20,3 @@ LL | fn test<'x>(x: &'x isize) {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/issues/issue-12028.stderr b/src/test/ui/issues/issue-12028.stderr
index 64694c7a8d0b6..b9e2e80492b37 100644
--- a/src/test/ui/issues/issue-12028.stderr
+++ b/src/test/ui/issues/issue-12028.stderr
@@ -6,4 +6,3 @@ LL |         self.input_stream(&mut stream);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0284`.
diff --git a/src/test/ui/issues/issue-13407.stderr b/src/test/ui/issues/issue-13407.stderr
index 1f4c7dfb0da02..ddd99e6a3c9a8 100644
--- a/src/test/ui/issues/issue-13407.stderr
+++ b/src/test/ui/issues/issue-13407.stderr
@@ -21,5 +21,5 @@ LL |     A::C = 1;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0070, E0308, E0603.
+Some errors have detailed explanations: E0070, E0308, E0603.
 For more information about an error, try `rustc --explain E0070`.
diff --git a/src/test/ui/issues/issue-13853.stderr b/src/test/ui/issues/issue-13853.stderr
index b4efd5511c35f..9026845b4ed86 100644
--- a/src/test/ui/issues/issue-13853.stderr
+++ b/src/test/ui/issues/issue-13853.stderr
@@ -30,5 +30,5 @@ LL |     iterate(graph);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0599.
+Some errors have detailed explanations: E0308, E0599.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-16538.stderr b/src/test/ui/issues/issue-16538.stderr
index 78c7d310ba2b2..2d8b5bf2f6fb8 100644
--- a/src/test/ui/issues/issue-16538.stderr
+++ b/src/test/ui/issues/issue-16538.stderr
@@ -15,5 +15,5 @@ LL | static foo: *const Y::X = Y::foo(Y::x as *const Y::X);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0015, E0277.
+Some errors have detailed explanations: E0015, E0277.
 For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/ui/issues/issue-16683.stderr b/src/test/ui/issues/issue-16683.stderr
index a047893a168a4..771a2ddf240f5 100644
--- a/src/test/ui/issues/issue-16683.stderr
+++ b/src/test/ui/issues/issue-16683.stderr
@@ -27,4 +27,3 @@ LL | trait T<'a> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/issues/issue-17001.stderr b/src/test/ui/issues/issue-17001.stderr
index d7e6069977b4e..2374e829556ec 100644
--- a/src/test/ui/issues/issue-17001.stderr
+++ b/src/test/ui/issues/issue-17001.stderr
@@ -6,4 +6,3 @@ LL |     let p = foo { x: () };
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-17263.ast.stderr b/src/test/ui/issues/issue-17263.ast.stderr
index 823f2c747d686..09e33073a5b53 100644
--- a/src/test/ui/issues/issue-17263.ast.stderr
+++ b/src/test/ui/issues/issue-17263.ast.stderr
@@ -22,5 +22,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/issues/issue-17405.stderr b/src/test/ui/issues/issue-17405.stderr
index 37274e239ba0b..4b5678a88773b 100644
--- a/src/test/ui/issues/issue-17405.stderr
+++ b/src/test/ui/issues/issue-17405.stderr
@@ -6,4 +6,3 @@ LL |         Foo { i } => ()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-17546.stderr b/src/test/ui/issues/issue-17546.stderr
index 1fbb229ed98b4..e27f49b4a3f0a 100644
--- a/src/test/ui/issues/issue-17546.stderr
+++ b/src/test/ui/issues/issue-17546.stderr
@@ -62,4 +62,3 @@ LL | fn newer() -> Result<foo::MyEnum, String> {
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/issues/issue-17718-const-bad-values.stderr b/src/test/ui/issues/issue-17718-const-bad-values.stderr
index 95ef2b1b01008..7a49e89a1af70 100644
--- a/src/test/ui/issues/issue-17718-const-bad-values.stderr
+++ b/src/test/ui/issues/issue-17718-const-bad-values.stderr
@@ -18,5 +18,5 @@ LL | const C2: &'static mut usize = unsafe { &mut S };
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0013, E0017.
+Some errors have detailed explanations: E0013, E0017.
 For more information about an error, try `rustc --explain E0013`.
diff --git a/src/test/ui/issues/issue-17728.stderr b/src/test/ui/issues/issue-17728.stderr
index 2c2efad19f569..56dfb89456fe5 100644
--- a/src/test/ui/issues/issue-17728.stderr
+++ b/src/test/ui/issues/issue-17728.stderr
@@ -29,5 +29,4 @@ LL | |     }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0623.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-17758.stderr b/src/test/ui/issues/issue-17758.stderr
index 28a1be59840a1..0ef3b98719d34 100644
--- a/src/test/ui/issues/issue-17758.stderr
+++ b/src/test/ui/issues/issue-17758.stderr
@@ -28,4 +28,3 @@ LL | trait Foo<'a> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/issues/issue-18119.stderr b/src/test/ui/issues/issue-18119.stderr
index ddee5a9da7a42..4c5b940190ee6 100644
--- a/src/test/ui/issues/issue-18119.stderr
+++ b/src/test/ui/issues/issue-18119.stderr
@@ -18,4 +18,3 @@ LL | impl foo {}
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/issues/issue-19883.stderr b/src/test/ui/issues/issue-19883.stderr
index e370b2ec1cb42..738add1684004 100644
--- a/src/test/ui/issues/issue-19883.stderr
+++ b/src/test/ui/issues/issue-19883.stderr
@@ -6,4 +6,3 @@ LL |         <Dst as From<Self>>::Dst
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/issues/issue-20413.stderr b/src/test/ui/issues/issue-20413.stderr
index 893f4faab0d58..2b3b38317afab 100644
--- a/src/test/ui/issues/issue-20413.stderr
+++ b/src/test/ui/issues/issue-20413.stderr
@@ -169,5 +169,5 @@ LL | trait Foo {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0275, E0392.
+Some errors have detailed explanations: E0275, E0392.
 For more information about an error, try `rustc --explain E0275`.
diff --git a/src/test/ui/issues/issue-20772.stderr b/src/test/ui/issues/issue-20772.stderr
index e67fedc5a9ebc..3b5dd975ce9e9 100644
--- a/src/test/ui/issues/issue-20772.stderr
+++ b/src/test/ui/issues/issue-20772.stderr
@@ -25,5 +25,5 @@ LL | trait T : Iterator<Item=Self::Item>
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0220, E0391.
+Some errors have detailed explanations: E0220, E0391.
 For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/ui/issues/issue-20831-debruijn.stderr b/src/test/ui/issues/issue-20831-debruijn.stderr
index e20869a6f3a75..70a395d0b89eb 100644
--- a/src/test/ui/issues/issue-20831-debruijn.stderr
+++ b/src/test/ui/issues/issue-20831-debruijn.stderr
@@ -94,5 +94,4 @@ LL | impl<'a> Publisher<'a> for MyStruct<'a> {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0495.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-21177.stderr b/src/test/ui/issues/issue-21177.stderr
index c3d2c6f48af6c..6841fe85dd792 100644
--- a/src/test/ui/issues/issue-21177.stderr
+++ b/src/test/ui/issues/issue-21177.stderr
@@ -19,5 +19,5 @@ LL | fn foo<T: Trait<A = T::B>>() { }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0220, E0391.
+Some errors have detailed explanations: E0220, E0391.
 For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/ui/issues/issue-21449.stderr b/src/test/ui/issues/issue-21449.stderr
index ecaf6faba429e..21de1ea091568 100644
--- a/src/test/ui/issues/issue-21449.stderr
+++ b/src/test/ui/issues/issue-21449.stderr
@@ -6,4 +6,3 @@ LL |     let myVar = MyMod { T: 0 };
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-2149.stderr b/src/test/ui/issues/issue-2149.stderr
index 82dbf34cc882b..1df32aafa79c8 100644
--- a/src/test/ui/issues/issue-2149.stderr
+++ b/src/test/ui/issues/issue-2149.stderr
@@ -18,5 +18,5 @@ LL |     ["hi"].bind(|x| [x] );
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0599.
+Some errors have detailed explanations: E0277, E0599.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/issues/issue-21950.stderr b/src/test/ui/issues/issue-21950.stderr
index bda2e3c457499..d40893b942376 100644
--- a/src/test/ui/issues/issue-21950.stderr
+++ b/src/test/ui/issues/issue-21950.stderr
@@ -14,5 +14,5 @@ LL |             &Add;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0191, E0393.
+Some errors have detailed explanations: E0191, E0393.
 For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/ui/issues/issue-22037.stderr b/src/test/ui/issues/issue-22037.stderr
index 615628558f08b..40d4a5e3bc0c5 100644
--- a/src/test/ui/issues/issue-22037.stderr
+++ b/src/test/ui/issues/issue-22037.stderr
@@ -6,4 +6,3 @@ LL |     fn a(&self) -> <Self as A>::X;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/issues/issue-22384.stderr b/src/test/ui/issues/issue-22384.stderr
index 1f767a443d0f0..130c3124b6f82 100644
--- a/src/test/ui/issues/issue-22384.stderr
+++ b/src/test/ui/issues/issue-22384.stderr
@@ -6,4 +6,3 @@ LL |     <<i32 as Copy>::foobar as Trait>::foo();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/issues/issue-22560.stderr b/src/test/ui/issues/issue-22560.stderr
index 694a4af51bc9d..a0ad1fd1279d7 100644
--- a/src/test/ui/issues/issue-22560.stderr
+++ b/src/test/ui/issues/issue-22560.stderr
@@ -32,5 +32,5 @@ LL | |             Sub;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0191, E0225, E0393.
+Some errors have detailed explanations: E0191, E0225, E0393.
 For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/ui/issues/issue-23024.stderr b/src/test/ui/issues/issue-23024.stderr
index 0567dcbec6da4..fbefbe4f56e68 100644
--- a/src/test/ui/issues/issue-23024.stderr
+++ b/src/test/ui/issues/issue-23024.stderr
@@ -21,5 +21,5 @@ LL |     println!("{:?}",(vfnfer[0] as Fn)(3));
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0107, E0191, E0658.
+Some errors have detailed explanations: E0107, E0191, E0658.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/issues/issue-23080-2.stderr b/src/test/ui/issues/issue-23080-2.stderr
index 38998469e42d0..4179ca37a54cb 100644
--- a/src/test/ui/issues/issue-23080-2.stderr
+++ b/src/test/ui/issues/issue-23080-2.stderr
@@ -14,5 +14,5 @@ error[E0275]: overflow evaluating the requirement `<() as Trait>::Output`
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0275, E0380.
+Some errors have detailed explanations: E0275, E0380.
 For more information about an error, try `rustc --explain E0275`.
diff --git a/src/test/ui/issues/issue-23189.stderr b/src/test/ui/issues/issue-23189.stderr
index ed065212c560b..50c09f17486de 100644
--- a/src/test/ui/issues/issue-23189.stderr
+++ b/src/test/ui/issues/issue-23189.stderr
@@ -6,4 +6,3 @@ LL |     let _ = module { x: 0 };
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-23589.stderr b/src/test/ui/issues/issue-23589.stderr
index bc2007ba39cc6..d169fdfe2dddd 100644
--- a/src/test/ui/issues/issue-23589.stderr
+++ b/src/test/ui/issues/issue-23589.stderr
@@ -18,5 +18,5 @@ LL |     let v: Vec(&str) = vec!['1', '2'];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0214, E0308.
+Some errors have detailed explanations: E0214, E0308.
 For more information about an error, try `rustc --explain E0214`.
diff --git a/src/test/ui/issues/issue-24363.stderr b/src/test/ui/issues/issue-24363.stderr
index 6f269ba764c5d..50d65e09bb1cc 100644
--- a/src/test/ui/issues/issue-24363.stderr
+++ b/src/test/ui/issues/issue-24363.stderr
@@ -16,5 +16,5 @@ LL |         ()+()
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0369, E0610.
+Some errors have detailed explanations: E0369, E0610.
 For more information about an error, try `rustc --explain E0369`.
diff --git a/src/test/ui/issues/issue-25579.ast.stderr b/src/test/ui/issues/issue-25579.ast.stderr
index a44cc9568742f..31e74d1c1ede5 100644
--- a/src/test/ui/issues/issue-25579.ast.stderr
+++ b/src/test/ui/issues/issue-25579.ast.stderr
@@ -17,5 +17,5 @@ LL |             l = &mut **expr;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0506.
+Some errors have detailed explanations: E0499, E0506.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/issues/issue-26217.stderr b/src/test/ui/issues/issue-26217.stderr
index be9da569f8be1..8bcc62ab2e73c 100644
--- a/src/test/ui/issues/issue-26217.stderr
+++ b/src/test/ui/issues/issue-26217.stderr
@@ -8,4 +8,3 @@ LL |     foo::<&'a i32>();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0477`.
diff --git a/src/test/ui/issues/issue-26459.stderr b/src/test/ui/issues/issue-26459.stderr
index 187369263a446..c7909a142bec4 100644
--- a/src/test/ui/issues/issue-26459.stderr
+++ b/src/test/ui/issues/issue-26459.stderr
@@ -6,4 +6,3 @@ LL |         char{ch} => true
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-27815.stderr b/src/test/ui/issues/issue-27815.stderr
index 43f78ccf6395a..1d68e3bf558f3 100644
--- a/src/test/ui/issues/issue-27815.stderr
+++ b/src/test/ui/issues/issue-27815.stderr
@@ -24,4 +24,3 @@ LL |         u32 { x: 1 } => {}
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/issues/issue-28344.stderr b/src/test/ui/issues/issue-28344.stderr
index f3a8019e2329c..34ce2358a0a29 100644
--- a/src/test/ui/issues/issue-28344.stderr
+++ b/src/test/ui/issues/issue-28344.stderr
@@ -30,5 +30,5 @@ LL |     let g = BitXor::bitor;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0191, E0599.
+Some errors have detailed explanations: E0191, E0599.
 For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/ui/issues/issue-28992-empty.stderr b/src/test/ui/issues/issue-28992-empty.stderr
index 68be37252cb5e..9f9f574aa5dd4 100644
--- a/src/test/ui/issues/issue-28992-empty.stderr
+++ b/src/test/ui/issues/issue-28992-empty.stderr
@@ -12,5 +12,5 @@ LL |     if let S::C2(..) = 0 {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0164, E0532.
+Some errors have detailed explanations: E0164, E0532.
 For more information about an error, try `rustc --explain E0164`.
diff --git a/src/test/ui/issues/issue-29161.stderr b/src/test/ui/issues/issue-29161.stderr
index 50c257ad6f17c..d30fd28a4a351 100644
--- a/src/test/ui/issues/issue-29161.stderr
+++ b/src/test/ui/issues/issue-29161.stderr
@@ -12,5 +12,5 @@ LL |     a::A::default();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0449, E0603.
+Some errors have detailed explanations: E0449, E0603.
 For more information about an error, try `rustc --explain E0449`.
diff --git a/src/test/ui/issues/issue-30535.stderr b/src/test/ui/issues/issue-30535.stderr
index e3692934b62ad..5faf0374210d8 100644
--- a/src/test/ui/issues/issue-30535.stderr
+++ b/src/test/ui/issues/issue-30535.stderr
@@ -9,4 +9,3 @@ LL |     _: foo::Foo::FooV
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/issues/issue-31173.stderr b/src/test/ui/issues/issue-31173.stderr
index d5f8cc8f83904..3ca8338882681 100644
--- a/src/test/ui/issues/issue-31173.stderr
+++ b/src/test/ui/issues/issue-31173.stderr
@@ -19,5 +19,5 @@ LL |         .collect();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0271, E0599.
+Some errors have detailed explanations: E0271, E0599.
 For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/ui/issues/issue-31212.stderr b/src/test/ui/issues/issue-31212.stderr
index 5daf900c31ff4..0bb56b361cbbf 100644
--- a/src/test/ui/issues/issue-31212.stderr
+++ b/src/test/ui/issues/issue-31212.stderr
@@ -12,5 +12,5 @@ LL |     foo::f();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0425, E0432.
+Some errors have detailed explanations: E0425, E0432.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/issues/issue-31769.stderr b/src/test/ui/issues/issue-31769.stderr
index 29fcefc08037a..51d1f51d1c909 100644
--- a/src/test/ui/issues/issue-31769.stderr
+++ b/src/test/ui/issues/issue-31769.stderr
@@ -12,5 +12,5 @@ LL |     #[repr(C)] fn foo() {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0517, E0518.
+Some errors have detailed explanations: E0517, E0518.
 For more information about an error, try `rustc --explain E0517`.
diff --git a/src/test/ui/issues/issue-3214.stderr b/src/test/ui/issues/issue-3214.stderr
index fa04ec12b741c..02c8da10bb4a3 100644
--- a/src/test/ui/issues/issue-3214.stderr
+++ b/src/test/ui/issues/issue-3214.stderr
@@ -17,5 +17,5 @@ LL |     impl<T> Drop for Foo<T> {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0401.
+Some errors have detailed explanations: E0107, E0401.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/issues/issue-32963.stderr b/src/test/ui/issues/issue-32963.stderr
index 3e22ea7b2891b..70fda313170df 100644
--- a/src/test/ui/issues/issue-32963.stderr
+++ b/src/test/ui/issues/issue-32963.stderr
@@ -18,5 +18,5 @@ LL | fn size_of_copy<T: Copy+?Sized>() -> usize { mem::size_of::<T>() }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0225, E0277.
+Some errors have detailed explanations: E0225, E0277.
 For more information about an error, try `rustc --explain E0225`.
diff --git a/src/test/ui/issues/issue-33140.stderr b/src/test/ui/issues/issue-33140.stderr
index 43065a2e2d486..dae9e02633d0c 100644
--- a/src/test/ui/issues/issue-33140.stderr
+++ b/src/test/ui/issues/issue-33140.stderr
@@ -31,5 +31,4 @@ LL | |     }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0119, E0592.
-For more information about an error, try `rustc --explain E0119`.
+For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/issues/issue-33525.stderr b/src/test/ui/issues/issue-33525.stderr
index 584b903c2efcb..f8d703dc3b169 100644
--- a/src/test/ui/issues/issue-33525.stderr
+++ b/src/test/ui/issues/issue-33525.stderr
@@ -18,5 +18,5 @@ LL |     "".ipsum;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0425, E0609.
+Some errors have detailed explanations: E0425, E0609.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/issues/issue-34334.stderr b/src/test/ui/issues/issue-34334.stderr
index 51ea0c6a90894..e8386fd8de9e5 100644
--- a/src/test/ui/issues/issue-34334.stderr
+++ b/src/test/ui/issues/issue-34334.stderr
@@ -43,5 +43,5 @@ LL |     let sr2: Vec<(u32, _, _)> = sr.iter().map(|(faction, th_sender, th_rece
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0070, E0308, E0423, E0599.
+Some errors have detailed explanations: E0070, E0308, E0423, E0599.
 For more information about an error, try `rustc --explain E0070`.
diff --git a/src/test/ui/issues/issue-35675.stderr b/src/test/ui/issues/issue-35675.stderr
index 3e4fd5593caae..28555a15afae1 100644
--- a/src/test/ui/issues/issue-35675.stderr
+++ b/src/test/ui/issues/issue-35675.stderr
@@ -67,5 +67,5 @@ LL | fn qux() -> Some {
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0412, E0425, E0573.
+Some errors have detailed explanations: E0412, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/issues/issue-37534.stderr b/src/test/ui/issues/issue-37534.stderr
index fe143540b735f..30f5755bea836 100644
--- a/src/test/ui/issues/issue-37534.stderr
+++ b/src/test/ui/issues/issue-37534.stderr
@@ -24,5 +24,5 @@ LL | struct Foo<T: ?Hash> { }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0392, E0405.
+Some errors have detailed explanations: E0392, E0405.
 For more information about an error, try `rustc --explain E0392`.
diff --git a/src/test/ui/issues/issue-3763.stderr b/src/test/ui/issues/issue-3763.stderr
index cc95d221c5114..50169286b1ceb 100644
--- a/src/test/ui/issues/issue-3763.stderr
+++ b/src/test/ui/issues/issue-3763.stderr
@@ -30,5 +30,5 @@ LL |     let nope = my_struct.priv_field;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0616, E0624.
+Some errors have detailed explanations: E0616, E0624.
 For more information about an error, try `rustc --explain E0616`.
diff --git a/src/test/ui/issues/issue-37887.stderr b/src/test/ui/issues/issue-37887.stderr
index 9cac105bab505..81ec3a5956bc6 100644
--- a/src/test/ui/issues/issue-37887.stderr
+++ b/src/test/ui/issues/issue-37887.stderr
@@ -15,5 +15,5 @@ LL |     extern crate libc;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0432, E0658.
+Some errors have detailed explanations: E0432, E0658.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/issues/issue-38293.stderr b/src/test/ui/issues/issue-38293.stderr
index e0b2fe4fe0542..d16d45277c038 100644
--- a/src/test/ui/issues/issue-38293.stderr
+++ b/src/test/ui/issues/issue-38293.stderr
@@ -16,5 +16,5 @@ LL | use bar::baz;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0423, E0432.
+Some errors have detailed explanations: E0423, E0432.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/issues/issue-38857.stderr b/src/test/ui/issues/issue-38857.stderr
index 9385dc56af9db..5762e3d6ac00a 100644
--- a/src/test/ui/issues/issue-38857.stderr
+++ b/src/test/ui/issues/issue-38857.stderr
@@ -12,5 +12,5 @@ LL |     let a = std::sys::imp::process::process_common::StdioPipes { ..panic!()
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0433, E0603.
+Some errors have detailed explanations: E0433, E0603.
 For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/ui/issues/issue-38940.stderr b/src/test/ui/issues/issue-38940.stderr
index d94a7101c0a38..4851c01a347b6 100644
--- a/src/test/ui/issues/issue-38940.stderr
+++ b/src/test/ui/issues/issue-38940.stderr
@@ -17,5 +17,5 @@ LL |     let x: &Bottom = &t;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0055, E0308.
+Some errors have detailed explanations: E0055, E0308.
 For more information about an error, try `rustc --explain E0055`.
diff --git a/src/test/ui/issues/issue-39559-2.stderr b/src/test/ui/issues/issue-39559-2.stderr
index 700dbe3647497..586debbbe5353 100644
--- a/src/test/ui/issues/issue-39559-2.stderr
+++ b/src/test/ui/issues/issue-39559-2.stderr
@@ -24,5 +24,5 @@ LL |         = [0; Dim3::dim()];
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0015, E0080.
+Some errors have detailed explanations: E0015, E0080.
 For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/ui/issues/issue-3973.stderr b/src/test/ui/issues/issue-3973.stderr
index 576da4bcd31c8..ee07a410a9c86 100644
--- a/src/test/ui/issues/issue-3973.stderr
+++ b/src/test/ui/issues/issue-3973.stderr
@@ -18,5 +18,5 @@ LL |     let p = Point::new(0.0, 0.0);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0407, E0599.
+Some errors have detailed explanations: E0407, E0599.
 For more information about an error, try `rustc --explain E0407`.
diff --git a/src/test/ui/issues/issue-41394.stderr b/src/test/ui/issues/issue-41394.stderr
index 5de5889d8172d..c8437ab189d8d 100644
--- a/src/test/ui/issues/issue-41394.stderr
+++ b/src/test/ui/issues/issue-41394.stderr
@@ -16,5 +16,5 @@ LL |     A = Foo::A as isize
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0369.
+Some errors have detailed explanations: E0080, E0369.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/issues/issue-41974.stderr b/src/test/ui/issues/issue-41974.stderr
index 54fa48e8bb264..20121878a0754 100644
--- a/src/test/ui/issues/issue-41974.stderr
+++ b/src/test/ui/issues/issue-41974.stderr
@@ -25,5 +25,5 @@ LL | impl<T> Drop for T where T: A {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0119, E0120, E0210.
+Some errors have detailed explanations: E0119, E0120, E0210.
 For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/issues/issue-42060.stderr b/src/test/ui/issues/issue-42060.stderr
index 6f42c86e84aab..72408c7919456 100644
--- a/src/test/ui/issues/issue-42060.stderr
+++ b/src/test/ui/issues/issue-42060.stderr
@@ -24,5 +24,5 @@ LL |     <typeof(q)>::N
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0435, E0516.
+Some errors have detailed explanations: E0435, E0516.
 For more information about an error, try `rustc --explain E0435`.
diff --git a/src/test/ui/issues/issue-42944.stderr b/src/test/ui/issues/issue-42944.stderr
index 0613be0b3d0fc..ba285953dbdbd 100644
--- a/src/test/ui/issues/issue-42944.stderr
+++ b/src/test/ui/issues/issue-42944.stderr
@@ -16,5 +16,5 @@ LL |     use foo::B;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0423, E0425.
+Some errors have detailed explanations: E0423, E0425.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/issues/issue-43162.stderr b/src/test/ui/issues/issue-43162.stderr
index d3ff9002b9676..cd11959ede6cb 100644
--- a/src/test/ui/issues/issue-43162.stderr
+++ b/src/test/ui/issues/issue-43162.stderr
@@ -26,5 +26,5 @@ LL |     break true;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0268, E0308.
+Some errors have detailed explanations: E0268, E0308.
 For more information about an error, try `rustc --explain E0268`.
diff --git a/src/test/ui/issues/issue-4335.nll.stderr b/src/test/ui/issues/issue-4335.nll.stderr
index 5ac3bdb805cb8..1b5cab249291b 100644
--- a/src/test/ui/issues/issue-4335.nll.stderr
+++ b/src/test/ui/issues/issue-4335.nll.stderr
@@ -26,5 +26,5 @@ LL |     id(Box::new(move || *v))
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0373, E0507.
+Some errors have detailed explanations: E0373, E0507.
 For more information about an error, try `rustc --explain E0373`.
diff --git a/src/test/ui/issues/issue-4335.stderr b/src/test/ui/issues/issue-4335.stderr
index 9ef8e16bbd3c9..3b04c26d49c7d 100644
--- a/src/test/ui/issues/issue-4335.stderr
+++ b/src/test/ui/issues/issue-4335.stderr
@@ -18,5 +18,5 @@ LL |     id(Box::new(|| *v))
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0373, E0507.
+Some errors have detailed explanations: E0373, E0507.
 For more information about an error, try `rustc --explain E0373`.
diff --git a/src/test/ui/issues/issue-4366-2.stderr b/src/test/ui/issues/issue-4366-2.stderr
index 76f08d77232cd..63013a6523ab0 100644
--- a/src/test/ui/issues/issue-4366-2.stderr
+++ b/src/test/ui/issues/issue-4366-2.stderr
@@ -22,5 +22,5 @@ LL | use m1::foo;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0412, E0423.
+Some errors have detailed explanations: E0412, E0423.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/issues/issue-43988.stderr b/src/test/ui/issues/issue-43988.stderr
index 6fe41a3de29b4..c72e3eab8539f 100644
--- a/src/test/ui/issues/issue-43988.stderr
+++ b/src/test/ui/issues/issue-43988.stderr
@@ -68,5 +68,5 @@ LL |     let _z = #[repr] 1;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0517, E0518.
+Some errors have detailed explanations: E0517, E0518.
 For more information about an error, try `rustc --explain E0517`.
diff --git a/src/test/ui/issues/issue-45697-1.stderr b/src/test/ui/issues/issue-45697-1.stderr
index 8d3907206081f..854e18003f330 100644
--- a/src/test/ui/issues/issue-45697-1.stderr
+++ b/src/test/ui/issues/issue-45697-1.stderr
@@ -30,5 +30,5 @@ LL |         *z.pointer += 1;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0503, E0506.
+Some errors have detailed explanations: E0503, E0506.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/issues/issue-45697.stderr b/src/test/ui/issues/issue-45697.stderr
index 5085d36febac3..01ae416b1cf14 100644
--- a/src/test/ui/issues/issue-45697.stderr
+++ b/src/test/ui/issues/issue-45697.stderr
@@ -30,5 +30,5 @@ LL |         *z.pointer += 1;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0503, E0506.
+Some errors have detailed explanations: E0503, E0506.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/issues/issue-45730.stderr b/src/test/ui/issues/issue-45730.stderr
index 3c400d6eefaa8..4fc1e3835f7ad 100644
--- a/src/test/ui/issues/issue-45730.stderr
+++ b/src/test/ui/issues/issue-45730.stderr
@@ -30,4 +30,3 @@ LL |     let x = 0 as *const i32 as *const _ as *mut _;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0641`.
diff --git a/src/test/ui/issues/issue-45829/import-self.stderr b/src/test/ui/issues/issue-45829/import-self.stderr
index 2a7277bd1e936..39522cd818392 100644
--- a/src/test/ui/issues/issue-45829/import-self.stderr
+++ b/src/test/ui/issues/issue-45829/import-self.stderr
@@ -41,5 +41,5 @@ LL | use foo::{self as OtherA};
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0252, E0255, E0429.
+Some errors have detailed explanations: E0252, E0255, E0429.
 For more information about an error, try `rustc --explain E0252`.
diff --git a/src/test/ui/issues/issue-46023.ast.nll.stderr b/src/test/ui/issues/issue-46023.ast.nll.stderr
index 05dbe42732b62..6ef44b416d07f 100644
--- a/src/test/ui/issues/issue-46023.ast.nll.stderr
+++ b/src/test/ui/issues/issue-46023.ast.nll.stderr
@@ -9,4 +9,3 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-46023.ast.stderr b/src/test/ui/issues/issue-46023.ast.stderr
index ace48f8be6b29..68f7741f4d174 100644
--- a/src/test/ui/issues/issue-46023.ast.stderr
+++ b/src/test/ui/issues/issue-46023.ast.stderr
@@ -9,4 +9,3 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-46023.mir.stderr b/src/test/ui/issues/issue-46023.mir.stderr
index 05dbe42732b62..6ef44b416d07f 100644
--- a/src/test/ui/issues/issue-46023.mir.stderr
+++ b/src/test/ui/issues/issue-46023.mir.stderr
@@ -9,4 +9,3 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-46101.stderr b/src/test/ui/issues/issue-46101.stderr
index 3ad5383294a53..772d4bfeb30a7 100644
--- a/src/test/ui/issues/issue-46101.stderr
+++ b/src/test/ui/issues/issue-46101.stderr
@@ -10,5 +10,5 @@ error[E0601]: `main` function not found in crate `issue_46101`
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0433, E0601.
+Some errors have detailed explanations: E0433, E0601.
 For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/ui/issues/issue-46471.stderr b/src/test/ui/issues/issue-46471.stderr
index 903b6585e8a4c..90202e307eb11 100644
--- a/src/test/ui/issues/issue-46471.stderr
+++ b/src/test/ui/issues/issue-46471.stderr
@@ -17,5 +17,5 @@ LL |     &x
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0515, E0597.
+Some errors have detailed explanations: E0515, E0597.
 For more information about an error, try `rustc --explain E0515`.
diff --git a/src/test/ui/issues/issue-46472.stderr b/src/test/ui/issues/issue-46472.stderr
index 2d81fa09cc278..0cc93a081b2af 100644
--- a/src/test/ui/issues/issue-46472.stderr
+++ b/src/test/ui/issues/issue-46472.stderr
@@ -24,5 +24,5 @@ LL |     &mut 4
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0515, E0597.
+Some errors have detailed explanations: E0515, E0597.
 For more information about an error, try `rustc --explain E0515`.
diff --git a/src/test/ui/issues/issue-46604.ast.nll.stderr b/src/test/ui/issues/issue-46604.ast.nll.stderr
index f43588c3bb40d..497af09efab12 100644
--- a/src/test/ui/issues/issue-46604.ast.nll.stderr
+++ b/src/test/ui/issues/issue-46604.ast.nll.stderr
@@ -12,5 +12,4 @@ LL |     buf[0]=2;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0017, E0594.
-For more information about an error, try `rustc --explain E0017`.
+For more information about this error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issues/issue-46604.ast.stderr b/src/test/ui/issues/issue-46604.ast.stderr
index 2ee1ac2d4d07b..058ee151e37f2 100644
--- a/src/test/ui/issues/issue-46604.ast.stderr
+++ b/src/test/ui/issues/issue-46604.ast.stderr
@@ -12,5 +12,5 @@ LL |     buf[0]=2;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0017, E0389.
+Some errors have detailed explanations: E0017, E0389.
 For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issues/issue-46604.mir.stderr b/src/test/ui/issues/issue-46604.mir.stderr
index f43588c3bb40d..497af09efab12 100644
--- a/src/test/ui/issues/issue-46604.mir.stderr
+++ b/src/test/ui/issues/issue-46604.mir.stderr
@@ -12,5 +12,4 @@ LL |     buf[0]=2;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0017, E0594.
-For more information about an error, try `rustc --explain E0017`.
+For more information about this error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issues/issue-46843.stderr b/src/test/ui/issues/issue-46843.stderr
index c252f0d0758cb..b7abf0213b0d5 100644
--- a/src/test/ui/issues/issue-46843.stderr
+++ b/src/test/ui/issues/issue-46843.stderr
@@ -12,5 +12,5 @@ LL |     Thing::This => 1,
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0015, E0019.
+Some errors have detailed explanations: E0015, E0019.
 For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/ui/issues/issue-50480.stderr b/src/test/ui/issues/issue-50480.stderr
index fb111e87d185c..9022bfae509f5 100644
--- a/src/test/ui/issues/issue-50480.stderr
+++ b/src/test/ui/issues/issue-50480.stderr
@@ -26,5 +26,5 @@ LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0204, E0277, E0412.
+Some errors have detailed explanations: E0204, E0277, E0412.
 For more information about an error, try `rustc --explain E0204`.
diff --git a/src/test/ui/issues/issue-50576.stderr b/src/test/ui/issues/issue-50576.stderr
index 22d978262c469..95619eeed9a46 100644
--- a/src/test/ui/issues/issue-50576.stderr
+++ b/src/test/ui/issues/issue-50576.stderr
@@ -18,5 +18,5 @@ LL |     Vec::<[u8; break]>::new();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0268, E0426.
+Some errors have detailed explanations: E0268, E0426.
 For more information about an error, try `rustc --explain E0268`.
diff --git a/src/test/ui/issues/issue-50599.stderr b/src/test/ui/issues/issue-50599.stderr
index e0c9bea4023d1..4bd74c3c785fe 100644
--- a/src/test/ui/issues/issue-50599.stderr
+++ b/src/test/ui/issues/issue-50599.stderr
@@ -18,5 +18,5 @@ LL |     let mut digits = [0u32; M];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0425.
+Some errors have detailed explanations: E0080, E0425.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/issues/issue-5100.stderr b/src/test/ui/issues/issue-5100.stderr
index 0c1a0289cf27a..b50d24671a850 100644
--- a/src/test/ui/issues/issue-5100.stderr
+++ b/src/test/ui/issues/issue-5100.stderr
@@ -61,5 +61,5 @@ LL |     let x: char = true;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0308, E0618.
+Some errors have detailed explanations: E0308, E0618.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-51102.stderr b/src/test/ui/issues/issue-51102.stderr
index 4d4b977374ef9..eb9eb68020067 100644
--- a/src/test/ui/issues/issue-51102.stderr
+++ b/src/test/ui/issues/issue-51102.stderr
@@ -20,5 +20,5 @@ LL |                 state: 0
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0025, E0026.
+Some errors have detailed explanations: E0025, E0026.
 For more information about an error, try `rustc --explain E0025`.
diff --git a/src/test/ui/issues/issue-51244.nll.stderr b/src/test/ui/issues/issue-51244.nll.stderr
index c91083955b820..8a7e71e0326a0 100644
--- a/src/test/ui/issues/issue-51244.nll.stderr
+++ b/src/test/ui/issues/issue-51244.nll.stderr
@@ -8,4 +8,3 @@ LL |     *my_ref = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-51244.stderr b/src/test/ui/issues/issue-51244.stderr
index f798b5f1fce20..4ab5e8db23ae2 100644
--- a/src/test/ui/issues/issue-51244.stderr
+++ b/src/test/ui/issues/issue-51244.stderr
@@ -8,4 +8,3 @@ LL |     *my_ref = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-51515.stderr b/src/test/ui/issues/issue-51515.stderr
index bcfed6d3bf88f..0e6c8fd48f19f 100644
--- a/src/test/ui/issues/issue-51515.stderr
+++ b/src/test/ui/issues/issue-51515.stderr
@@ -18,4 +18,3 @@ LL |     *bar = 64;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr b/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr
index f57697e5892c2..f8c3016e3a74a 100644
--- a/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr
+++ b/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr
@@ -17,5 +17,5 @@ LL |     let _ = [0; (&0 as *const i32) as usize];
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0658.
+Some errors have detailed explanations: E0080, E0658.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/issues/issue-52213.stderr b/src/test/ui/issues/issue-52213.stderr
index 8d74b8ecb881e..b4df10efc5d8d 100644
--- a/src/test/ui/issues/issue-52213.stderr
+++ b/src/test/ui/issues/issue-52213.stderr
@@ -25,4 +25,3 @@ LL |         ((u,),) => u,
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/issues/issue-52533.stderr b/src/test/ui/issues/issue-52533.stderr
index 586548002072e..1ed740c421e0f 100644
--- a/src/test/ui/issues/issue-52533.stderr
+++ b/src/test/ui/issues/issue-52533.stderr
@@ -17,4 +17,3 @@ LL |     foo(|a, b| b)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/issues/issue-52891.stderr b/src/test/ui/issues/issue-52891.stderr
index 9173c02bcd866..6e6e42ddc2d09 100644
--- a/src/test/ui/issues/issue-52891.stderr
+++ b/src/test/ui/issues/issue-52891.stderr
@@ -127,5 +127,5 @@ LL | use issue_52891::n;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0252, E0254.
+Some errors have detailed explanations: E0252, E0254.
 For more information about an error, try `rustc --explain E0252`.
diff --git a/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr b/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr
index 047ba341cfc73..7edf235652f3a 100644
--- a/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr
+++ b/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr
@@ -6,4 +6,3 @@ LL |     fake_jump!("FirstFunc");
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0669`.
diff --git a/src/test/ui/issues/issue-54954.stderr b/src/test/ui/issues/issue-54954.stderr
index dd6389b8b60c7..29edb506c4b1c 100644
--- a/src/test/ui/issues/issue-54954.stderr
+++ b/src/test/ui/issues/issue-54954.stderr
@@ -12,5 +12,5 @@ LL | const ARR_LEN: usize = Tt::const_val::<[i8; 123]>();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0019, E0379.
+Some errors have detailed explanations: E0019, E0379.
 For more information about an error, try `rustc --explain E0019`.
diff --git a/src/test/ui/issues/issue-5500-1.ast.stderr b/src/test/ui/issues/issue-5500-1.ast.stderr
index 558e7b7824937..fb0f9782846cf 100644
--- a/src/test/ui/issues/issue-5500-1.ast.stderr
+++ b/src/test/ui/issues/issue-5500-1.ast.stderr
@@ -12,4 +12,3 @@ LL | |     panic!()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-5500-1.mir.stderr b/src/test/ui/issues/issue-5500-1.mir.stderr
index 92f803e2819d2..fbabfbd2b5cfe 100644
--- a/src/test/ui/issues/issue-5500-1.mir.stderr
+++ b/src/test/ui/issues/issue-5500-1.mir.stderr
@@ -12,4 +12,3 @@ LL | |     panic!()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issues/issue-55796.stderr b/src/test/ui/issues/issue-55796.stderr
index 7cf597d3a98f8..9e67e5e125f62 100644
--- a/src/test/ui/issues/issue-55796.stderr
+++ b/src/test/ui/issues/issue-55796.stderr
@@ -42,4 +42,3 @@ LL |         Box::new(self.in_edges(u).map(|e| e.target()))
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/issues/issue-56411.stderr b/src/test/ui/issues/issue-56411.stderr
index 7b23b3766bed5..1f38c70a11938 100644
--- a/src/test/ui/issues/issue-56411.stderr
+++ b/src/test/ui/issues/issue-56411.stderr
@@ -27,5 +27,5 @@ LL | import!(("issue-56411-aux.rs", issue_56411_aux));
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0255, E0365.
+Some errors have detailed explanations: E0255, E0365.
 For more information about an error, try `rustc --explain E0255`.
diff --git a/src/test/ui/issues/issue-56806.stderr b/src/test/ui/issues/issue-56806.stderr
index 2dd3add8f60e6..96979b9dc1eec 100644
--- a/src/test/ui/issues/issue-56806.stderr
+++ b/src/test/ui/issues/issue-56806.stderr
@@ -9,4 +9,3 @@ LL |     fn dyn_instead_of_self(self: Box<dyn Trait>);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0307`.
diff --git a/src/test/ui/issues/issue-58006.stderr b/src/test/ui/issues/issue-58006.stderr
index c65e3e2777fae..c34e133c6c448 100644
--- a/src/test/ui/issues/issue-58006.stderr
+++ b/src/test/ui/issues/issue-58006.stderr
@@ -6,4 +6,3 @@ LL |             Self::A => (),
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0533`.
diff --git a/src/test/ui/issues/issue-5927.stderr b/src/test/ui/issues/issue-5927.stderr
index 6b0a2b7b935e9..89f5e399ae689 100644
--- a/src/test/ui/issues/issue-5927.stderr
+++ b/src/test/ui/issues/issue-5927.stderr
@@ -12,5 +12,4 @@ LL |         x(1) => x(1)
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0425, E0531.
-For more information about an error, try `rustc --explain E0425`.
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/ui/issues/issue-59488.stderr b/src/test/ui/issues/issue-59488.stderr
index 615adb36d330c..4ba97796d1359 100644
--- a/src/test/ui/issues/issue-59488.stderr
+++ b/src/test/ui/issues/issue-59488.stderr
@@ -71,5 +71,5 @@ LL |     foo > bar;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0308, E0369.
+Some errors have detailed explanations: E0308, E0369.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-7364.stderr b/src/test/ui/issues/issue-7364.stderr
index 52a99ce36b870..1f1079555a91f 100644
--- a/src/test/ui/issues/issue-7364.stderr
+++ b/src/test/ui/issues/issue-7364.stderr
@@ -23,5 +23,5 @@ LL | static boxed: Box<RefCell<isize>> = box RefCell::new(0);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0010, E0019, E0277.
+Some errors have detailed explanations: E0010, E0019, E0277.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/issues/issue-9725.stderr b/src/test/ui/issues/issue-9725.stderr
index eafe92e4688a8..687e0cc0f3ef1 100644
--- a/src/test/ui/issues/issue-9725.stderr
+++ b/src/test/ui/issues/issue-9725.stderr
@@ -14,5 +14,5 @@ LL |     let A { foo, foo } = A { foo: 3 };
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0025, E0416.
+Some errors have detailed explanations: E0025, E0416.
 For more information about an error, try `rustc --explain E0025`.
diff --git a/src/test/ui/keyword/keyword-self-as-identifier.stderr b/src/test/ui/keyword/keyword-self-as-identifier.stderr
index be57c6ad26fd8..5f567910ed81b 100644
--- a/src/test/ui/keyword/keyword-self-as-identifier.stderr
+++ b/src/test/ui/keyword/keyword-self-as-identifier.stderr
@@ -6,4 +6,3 @@ LL |     let Self = 22;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0531`.
diff --git a/src/test/ui/kindck/kindck-impl-type-params.stderr b/src/test/ui/kindck/kindck-impl-type-params.stderr
index 03cd480babead..8580e6812b41c 100644
--- a/src/test/ui/kindck/kindck-impl-type-params.stderr
+++ b/src/test/ui/kindck/kindck-impl-type-params.stderr
@@ -68,5 +68,4 @@ LL |     let a: Box<Gettable<Foo>> = t;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0277, E0477.
-For more information about an error, try `rustc --explain E0277`.
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/kindck/kindck-inherited-copy-bound.stderr b/src/test/ui/kindck/kindck-inherited-copy-bound.stderr
index 1b7f9cd551734..0ed2da46fbaea 100644
--- a/src/test/ui/kindck/kindck-inherited-copy-bound.stderr
+++ b/src/test/ui/kindck/kindck-inherited-copy-bound.stderr
@@ -30,5 +30,5 @@ LL |     let z = &x as &Foo;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0038, E0277.
+Some errors have detailed explanations: E0038, E0277.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/kindck/kindck-send-object1.stderr b/src/test/ui/kindck/kindck-send-object1.stderr
index 4f2d09a60f564..a4b908e4101ff 100644
--- a/src/test/ui/kindck/kindck-send-object1.stderr
+++ b/src/test/ui/kindck/kindck-send-object1.stderr
@@ -37,5 +37,4 @@ LL | fn assert_send<T:Send+'static>() { }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0477.
-For more information about an error, try `rustc --explain E0277`.
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/label/label_break_value_continue.stderr b/src/test/ui/label/label_break_value_continue.stderr
index bd1dd5938988b..b3c0b421023ac 100644
--- a/src/test/ui/label/label_break_value_continue.stderr
+++ b/src/test/ui/label/label_break_value_continue.stderr
@@ -26,5 +26,4 @@ LL |             continue;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0695, E0696.
-For more information about an error, try `rustc --explain E0695`.
+For more information about this error, try `rustc --explain E0695`.
diff --git a/src/test/ui/lexical-scopes.stderr b/src/test/ui/lexical-scopes.stderr
index 859eb04749f23..e990f705af3f9 100644
--- a/src/test/ui/lexical-scopes.stderr
+++ b/src/test/ui/lexical-scopes.stderr
@@ -16,5 +16,4 @@ LL |     Foo::f();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0574, E0599.
-For more information about an error, try `rustc --explain E0574`.
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr b/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr
index 90bec01df63ea..7b823f012b9f9 100644
--- a/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr
+++ b/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr
@@ -97,5 +97,5 @@ LL | |     }
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0309, E0310.
+Some errors have detailed explanations: E0309, E0310.
 For more information about an error, try `rustc --explain E0309`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
index e9f5fc311dfc2..56ca610019c4c 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
@@ -11,4 +11,3 @@ LL |         if x > y { x } else { y }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
index 0d506f2b9fcb4..df34d18ee83a4 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
@@ -11,4 +11,3 @@ LL |     x
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
index 98a23613c3635..22e14df9edc03 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
@@ -11,4 +11,3 @@ LL |         if true { x } else { self }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex2b-push-no-existing-names.stderr b/src/test/ui/lifetimes/lifetime-errors/ex2b-push-no-existing-names.stderr
index e505c9c0dc262..c0c75c7453d24 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex2b-push-no-existing-names.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex2b-push-no-existing-names.stderr
@@ -8,4 +8,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex2c-push-inference-variable.stderr b/src/test/ui/lifetimes/lifetime-errors/ex2c-push-inference-variable.stderr
index 63b1c6db28f14..57101cffe9b92 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex2c-push-inference-variable.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex2c-push-inference-variable.stderr
@@ -9,4 +9,3 @@ LL |     x.push(z);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex2d-push-inference-variable-2.stderr b/src/test/ui/lifetimes/lifetime-errors/ex2d-push-inference-variable-2.stderr
index 2f669efcf1eb4..cab30636280a9 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex2d-push-inference-variable-2.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex2d-push-inference-variable-2.stderr
@@ -8,4 +8,3 @@ LL |     let a: &mut Vec<Ref<i32>> = x;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex2e-push-inference-variable-3.stderr b/src/test/ui/lifetimes/lifetime-errors/ex2e-push-inference-variable-3.stderr
index 258b6805acd5c..384caca824892 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex2e-push-inference-variable-3.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex2e-push-inference-variable-3.stderr
@@ -8,4 +8,3 @@ LL |     let a: &mut Vec<Ref<i32>> = x;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-2.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-2.stderr
index 0aff80c6fbdd3..9251c5e2446f3 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-2.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-2.stderr
@@ -8,4 +8,3 @@ LL |     *v = x;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-3.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-3.stderr
index 2e5ff6782d3b6..adda66899cbf0 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-3.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-3.stderr
@@ -16,4 +16,3 @@ LL |     z.push((x,y));
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
index 8e41d7c54e68d..4341e8e663e19 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
@@ -8,4 +8,3 @@ LL |     x.b = y.b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
index da83ebc984c4c..6484e63223eff 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
@@ -10,4 +10,3 @@ LL |     x.a = x.b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
index 374bbd93d0874..a13c7e63cd6d9 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
@@ -9,4 +9,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
index 94798d1ce2ab6..14faf6f460f52 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
@@ -8,4 +8,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
index 9f5a79ed333dc..e5696b74da9ec 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
@@ -8,4 +8,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
index 2c87f8dbd2c2b..bbf5d2452bfb9 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
@@ -8,4 +8,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
index 60b92ed2b3247..f1bc1ca3aab01 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
@@ -10,4 +10,3 @@ LL |     y = x.b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
index a220c8ddb2be6..d8f6b8c49d30d 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
@@ -8,4 +8,3 @@ LL |     y.b = x;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
index 73472a8d02252..08ae2c9db52e7 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
@@ -8,4 +8,3 @@ LL |     y.b = x;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
index eb6e6f2e95e78..ff286d722aacd 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
@@ -8,4 +8,3 @@ LL |     x.b = y;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
index 199f880b3c487..3d16c26568353 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
@@ -10,4 +10,3 @@ LL |     x
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
index 838f43b37747f..10872d31ef206 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
@@ -10,4 +10,3 @@ LL |         if true { x } else { self }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
index d2cc3dba6a433..99e6e8bc5aa9b 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
@@ -8,4 +8,3 @@ LL |   y.push(z);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
index e8b0208f092f7..8ac221e333ad7 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
@@ -8,4 +8,3 @@ LL |         x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
index 5ad85c97e72d8..6cd175b8a617b 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
@@ -8,4 +8,3 @@ LL |   y.push(z);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions.stderr b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions.stderr
index b2784827672b8..053d577fa01ed 100644
--- a/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions.stderr
+++ b/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions.stderr
@@ -8,4 +8,3 @@ LL |     x.push(y);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/loops/loop-break-value.stderr b/src/test/ui/loops/loop-break-value.stderr
index 8823eecab6465..13fe50855408b 100644
--- a/src/test/ui/loops/loop-break-value.stderr
+++ b/src/test/ui/loops/loop-break-value.stderr
@@ -152,5 +152,5 @@ LL |         break;
 
 error: aborting due to 16 previous errors
 
-Some errors occurred: E0308, E0571.
+Some errors have detailed explanations: E0308, E0571.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/lub-if.stderr b/src/test/ui/lub-if.stderr
index 26f756c91833b..bb772d4c6c695 100644
--- a/src/test/ui/lub-if.stderr
+++ b/src/test/ui/lub-if.stderr
@@ -26,4 +26,3 @@ LL | pub fn opt_str3<'a>(maybestr: &'a Option<String>) -> &'static str {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/lub-match.stderr b/src/test/ui/lub-match.stderr
index 0cb0a23c6f2df..090af25143670 100644
--- a/src/test/ui/lub-match.stderr
+++ b/src/test/ui/lub-match.stderr
@@ -26,4 +26,3 @@ LL | pub fn opt_str3<'a>(maybestr: &'a Option<String>) -> &'static str {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/macros/macro-backtrace-invalid-internals.stderr b/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
index 11a4b44eff10a..015e05ed9bf61 100644
--- a/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
+++ b/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
@@ -80,5 +80,5 @@ LL |           2.0_f32.neg()
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0599, E0610, E0689.
+Some errors have detailed explanations: E0599, E0610, E0689.
 For more information about an error, try `rustc --explain E0599`.
diff --git a/src/test/ui/macros/macro-reexport-removed.stderr b/src/test/ui/macros/macro-reexport-removed.stderr
index 600d5d4cc9a6d..742a72964db01 100644
--- a/src/test/ui/macros/macro-reexport-removed.stderr
+++ b/src/test/ui/macros/macro-reexport-removed.stderr
@@ -21,5 +21,5 @@ LL | #[macro_reexport(macro_one)]
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0557, E0658.
+Some errors have detailed explanations: E0557, E0658.
 For more information about an error, try `rustc --explain E0557`.
diff --git a/src/test/ui/macros/macros-nonfatal-errors.stderr b/src/test/ui/macros/macros-nonfatal-errors.stderr
index 8a8455c262b4c..f0ea5761bc8db 100644
--- a/src/test/ui/macros/macros-nonfatal-errors.stderr
+++ b/src/test/ui/macros/macros-nonfatal-errors.stderr
@@ -88,4 +88,3 @@ LL |     trace_macros!(invalid);
 
 error: aborting due to 14 previous errors
 
-For more information about this error, try `rustc --explain E0665`.
diff --git a/src/test/ui/malformed/malformed-plugin-3.stderr b/src/test/ui/malformed/malformed-plugin-3.stderr
index 5739770ad98b4..bcbbcd48c66ba 100644
--- a/src/test/ui/malformed/malformed-plugin-3.stderr
+++ b/src/test/ui/malformed/malformed-plugin-3.stderr
@@ -6,4 +6,3 @@ LL | #![plugin(foo="bleh")]
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0498`.
diff --git a/src/test/ui/match/match-range-fail-2.stderr b/src/test/ui/match/match-range-fail-2.stderr
index b9e4534fdf5de..52a2bf2b34aa6 100644
--- a/src/test/ui/match/match-range-fail-2.stderr
+++ b/src/test/ui/match/match-range-fail-2.stderr
@@ -18,5 +18,5 @@ LL |         0xFFFF_FFFF_FFFF_FFFF ..= 1 => { }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0030, E0579.
+Some errors have detailed explanations: E0030, E0579.
 For more information about an error, try `rustc --explain E0030`.
diff --git a/src/test/ui/match/match-range-fail.stderr b/src/test/ui/match/match-range-fail.stderr
index 54969927433a4..3fd2a499e2bc3 100644
--- a/src/test/ui/match/match-range-fail.stderr
+++ b/src/test/ui/match/match-range-fail.stderr
@@ -27,5 +27,5 @@ LL |         'c' ..= 100 => { }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0029, E0308.
+Some errors have detailed explanations: E0029, E0308.
 For more information about an error, try `rustc --explain E0029`.
diff --git a/src/test/ui/match/match-vec-mismatch.stderr b/src/test/ui/match/match-vec-mismatch.stderr
index e19a0f956ce3a..47f9d48e26290 100644
--- a/src/test/ui/match/match-vec-mismatch.stderr
+++ b/src/test/ui/match/match-vec-mismatch.stderr
@@ -32,5 +32,5 @@ LL |         [] => {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0282, E0425, E0527, E0528, E0529.
+Some errors have detailed explanations: E0282, E0425, E0527, E0528, E0529.
 For more information about an error, try `rustc --explain E0282`.
diff --git a/src/test/ui/maybe-bounds-where.stderr b/src/test/ui/maybe-bounds-where.stderr
index 562e597728ebd..78524cbabecd7 100644
--- a/src/test/ui/maybe-bounds-where.stderr
+++ b/src/test/ui/maybe-bounds-where.stderr
@@ -42,4 +42,3 @@ LL | struct S5<T>(*const T) where T: ?Trait<'static> + ?Sized;
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0203`.
diff --git a/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr b/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
index 9e5f2ee4ce5fb..8a63aed60d58d 100644
--- a/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
+++ b/src/test/ui/methods/method-ambig-one-trait-unknown-int-type.stderr
@@ -14,5 +14,5 @@ LL |     let y: usize = x.foo();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0282, E0308.
+Some errors have detailed explanations: E0282, E0308.
 For more information about an error, try `rustc --explain E0282`.
diff --git a/src/test/ui/methods/method-call-err-msg.stderr b/src/test/ui/methods/method-call-err-msg.stderr
index 0e901a98348b2..b8ae4c34dc155 100644
--- a/src/test/ui/methods/method-call-err-msg.stderr
+++ b/src/test/ui/methods/method-call-err-msg.stderr
@@ -43,5 +43,5 @@ LL |      .take()
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0061, E0599.
+Some errors have detailed explanations: E0061, E0599.
 For more information about an error, try `rustc --explain E0061`.
diff --git a/src/test/ui/methods/method-deref-to-same-trait-object-with-separate-params.stderr b/src/test/ui/methods/method-deref-to-same-trait-object-with-separate-params.stderr
index 3c2e9b0176716..d6fac7025a479 100644
--- a/src/test/ui/methods/method-deref-to-same-trait-object-with-separate-params.stderr
+++ b/src/test/ui/methods/method-deref-to-same-trait-object-with-separate-params.stderr
@@ -68,5 +68,5 @@ LL |     let _seetype: () = z;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0034, E0308.
+Some errors have detailed explanations: E0034, E0308.
 For more information about an error, try `rustc --explain E0034`.
diff --git a/src/test/ui/methods/method-path-in-pattern.stderr b/src/test/ui/methods/method-path-in-pattern.stderr
index 03d6509c915d5..3f53ad768825b 100644
--- a/src/test/ui/methods/method-path-in-pattern.stderr
+++ b/src/test/ui/methods/method-path-in-pattern.stderr
@@ -18,4 +18,3 @@ LL |         <Foo>::trait_bar => {}
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0533`.
diff --git a/src/test/ui/methods/method-self-arg-2.nll.stderr b/src/test/ui/methods/method-self-arg-2.nll.stderr
index 82092dd4c0f82..946e71ee5b9c0 100644
--- a/src/test/ui/methods/method-self-arg-2.nll.stderr
+++ b/src/test/ui/methods/method-self-arg-2.nll.stderr
@@ -20,5 +20,5 @@ LL |     y.use_mut();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/methods/method-self-arg-2.stderr b/src/test/ui/methods/method-self-arg-2.stderr
index 56cc8c83fe14b..c2f7032df4186 100644
--- a/src/test/ui/methods/method-self-arg-2.stderr
+++ b/src/test/ui/methods/method-self-arg-2.stderr
@@ -22,5 +22,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0499, E0502.
+Some errors have detailed explanations: E0499, E0502.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/mismatched_types/E0409.stderr b/src/test/ui/mismatched_types/E0409.stderr
index 93115bfb998e4..e3919bf260264 100644
--- a/src/test/ui/mismatched_types/E0409.stderr
+++ b/src/test/ui/mismatched_types/E0409.stderr
@@ -17,5 +17,5 @@ LL |         (0, ref y) | (y, 0) => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0409.
+Some errors have detailed explanations: E0308, E0409.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/mismatched_types/E0631.stderr b/src/test/ui/mismatched_types/E0631.stderr
index f2bc6e1692f74..8662bb7795382 100644
--- a/src/test/ui/mismatched_types/E0631.stderr
+++ b/src/test/ui/mismatched_types/E0631.stderr
@@ -58,4 +58,3 @@ LL | fn bar<F: Fn<usize>>(_: F) {}
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0631`.
diff --git a/src/test/ui/mismatched_types/cast-rfc0401.stderr b/src/test/ui/mismatched_types/cast-rfc0401.stderr
index c30f0acaa57d6..0e0bb8da81e43 100644
--- a/src/test/ui/mismatched_types/cast-rfc0401.stderr
+++ b/src/test/ui/mismatched_types/cast-rfc0401.stderr
@@ -243,5 +243,5 @@ LL |     vec![0.0].iter().map(|s| s as f32).collect::<Vec<f32>>();
 
 error: aborting due to 34 previous errors
 
-Some errors occurred: E0054, E0277, E0604, E0605, E0606, E0607, E0609.
+Some errors have detailed explanations: E0054, E0277, E0604, E0605, E0606, E0607, E0609.
 For more information about an error, try `rustc --explain E0054`.
diff --git a/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr b/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr
index cf392e1731b0f..d4ccf8d451c12 100644
--- a/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr
+++ b/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr
@@ -51,5 +51,4 @@ LL | fn baz<F: Fn(*mut &u32)>(_: F) {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0271, E0631.
-For more information about an error, try `rustc --explain E0271`.
+For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/mismatched_types/closure-mismatch.stderr b/src/test/ui/mismatched_types/closure-mismatch.stderr
index 6fbc922561251..7161f6979087a 100644
--- a/src/test/ui/mismatched_types/closure-mismatch.stderr
+++ b/src/test/ui/mismatched_types/closure-mismatch.stderr
@@ -28,5 +28,4 @@ LL | fn baz<T: Foo>(_: T) {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0271, E0631.
-For more information about an error, try `rustc --explain E0271`.
+For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/mismatched_types/fn-variance-1.stderr b/src/test/ui/mismatched_types/fn-variance-1.stderr
index 0fb1a5346f322..c15d6620e18da 100644
--- a/src/test/ui/mismatched_types/fn-variance-1.stderr
+++ b/src/test/ui/mismatched_types/fn-variance-1.stderr
@@ -30,4 +30,3 @@ LL | fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0631`.
diff --git a/src/test/ui/mismatched_types/issue-26480.stderr b/src/test/ui/mismatched_types/issue-26480.stderr
index ef7a8d385374a..59326fc1dd26a 100644
--- a/src/test/ui/mismatched_types/issue-26480.stderr
+++ b/src/test/ui/mismatched_types/issue-26480.stderr
@@ -20,5 +20,5 @@ LL |     cast!(2);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0605.
+Some errors have detailed explanations: E0308, E0605.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/mismatched_types/issue-36053-2.stderr b/src/test/ui/mismatched_types/issue-36053-2.stderr
index c5c67e6bd9bd9..3f87ef74b8ea3 100644
--- a/src/test/ui/mismatched_types/issue-36053-2.stderr
+++ b/src/test/ui/mismatched_types/issue-36053-2.stderr
@@ -26,5 +26,4 @@ LL |     once::<&str>("str").fuse().filter(|a: &str| true).count();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0599, E0631.
-For more information about an error, try `rustc --explain E0599`.
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/mismatched_types/issue-38371.stderr b/src/test/ui/mismatched_types/issue-38371.stderr
index d16869237302c..236f742db3f71 100644
--- a/src/test/ui/mismatched_types/issue-38371.stderr
+++ b/src/test/ui/mismatched_types/issue-38371.stderr
@@ -35,5 +35,5 @@ LL | fn ugh(&[bar]: &u32) {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0308, E0529.
+Some errors have detailed explanations: E0308, E0529.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
index 3551e4105f8cb..bcb316e2bfb3f 100644
--- a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
+++ b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
@@ -21,5 +21,5 @@ LL |     let ans = s("burma", "shave");
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0057, E0308.
+Some errors have detailed explanations: E0057, E0308.
 For more information about an error, try `rustc --explain E0057`.
diff --git a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
index ad0eefa27a10c..47aa3c21f5301 100644
--- a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
+++ b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
@@ -15,4 +15,3 @@ LL | fn call_it<F:FnMut(isize,isize)->isize>(y: isize, mut f: F) -> isize {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0631`.
diff --git a/src/test/ui/missing/missing-fields-in-struct-pattern.stderr b/src/test/ui/missing/missing-fields-in-struct-pattern.stderr
index 5d88a5d03e23b..f7037468996f4 100644
--- a/src/test/ui/missing/missing-fields-in-struct-pattern.stderr
+++ b/src/test/ui/missing/missing-fields-in-struct-pattern.stderr
@@ -14,5 +14,5 @@ LL |     if let S { a, b, c, d } = S(1, 2, 3, 4) {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0026, E0027.
+Some errors have detailed explanations: E0026, E0027.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/mod/mod_file_disambig.stderr b/src/test/ui/mod/mod_file_disambig.stderr
index 2b77d866fb30b..27df0241aa21f 100644
--- a/src/test/ui/mod/mod_file_disambig.stderr
+++ b/src/test/ui/mod/mod_file_disambig.stderr
@@ -8,4 +8,3 @@ LL | mod mod_file_disambig_aux;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0584`.
diff --git a/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.nll.stderr b/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.nll.stderr
index dde54eee83b6a..483c364752b7b 100644
--- a/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.nll.stderr
+++ b/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.nll.stderr
@@ -21,5 +21,5 @@ LL |     f(&mut r, false)
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0382, E0499.
+Some errors have detailed explanations: E0382, E0499.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr b/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr
index fe91a488d10d3..bdc736576c92c 100644
--- a/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr
+++ b/src/test/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr
@@ -19,5 +19,5 @@ LL |     f(&mut r, false)
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0382, E0499.
+Some errors have detailed explanations: E0382, E0499.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/mut/mut-pattern-internal-mutability.ast.nll.stderr b/src/test/ui/mut/mut-pattern-internal-mutability.ast.nll.stderr
index 0db32017b395c..0b67a6d5b201c 100644
--- a/src/test/ui/mut/mut-pattern-internal-mutability.ast.nll.stderr
+++ b/src/test/ui/mut/mut-pattern-internal-mutability.ast.nll.stderr
@@ -22,5 +22,5 @@ LL |     drop(x);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0384, E0506.
+Some errors have detailed explanations: E0384, E0506.
 For more information about an error, try `rustc --explain E0384`.
diff --git a/src/test/ui/mut/mut-pattern-internal-mutability.ast.stderr b/src/test/ui/mut/mut-pattern-internal-mutability.ast.stderr
index da33cdf779c27..737e9f38c74f6 100644
--- a/src/test/ui/mut/mut-pattern-internal-mutability.ast.stderr
+++ b/src/test/ui/mut/mut-pattern-internal-mutability.ast.stderr
@@ -16,5 +16,5 @@ LL |     *foo += 1;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0384, E0506.
+Some errors have detailed explanations: E0384, E0506.
 For more information about an error, try `rustc --explain E0384`.
diff --git a/src/test/ui/mut/mut-pattern-internal-mutability.mir.stderr b/src/test/ui/mut/mut-pattern-internal-mutability.mir.stderr
index 0db32017b395c..0b67a6d5b201c 100644
--- a/src/test/ui/mut/mut-pattern-internal-mutability.mir.stderr
+++ b/src/test/ui/mut/mut-pattern-internal-mutability.mir.stderr
@@ -22,5 +22,5 @@ LL |     drop(x);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0384, E0506.
+Some errors have detailed explanations: E0384, E0506.
 For more information about an error, try `rustc --explain E0384`.
diff --git a/src/test/ui/mut/mutable-class-fields-2.nll.stderr b/src/test/ui/mut/mutable-class-fields-2.nll.stderr
index 15323ce9a9755..a27a82ffe4642 100644
--- a/src/test/ui/mut/mutable-class-fields-2.nll.stderr
+++ b/src/test/ui/mut/mutable-class-fields-2.nll.stderr
@@ -8,4 +8,3 @@ LL |     self.how_hungry -= 5;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields-2.stderr b/src/test/ui/mut/mutable-class-fields-2.stderr
index b0dea3082dda0..4b3ab2fa89484 100644
--- a/src/test/ui/mut/mutable-class-fields-2.stderr
+++ b/src/test/ui/mut/mutable-class-fields-2.stderr
@@ -8,4 +8,3 @@ LL |     self.how_hungry -= 5;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields.ast.nll.stderr b/src/test/ui/mut/mutable-class-fields.ast.nll.stderr
index e243fb74dc25a..b233ed295596d 100644
--- a/src/test/ui/mut/mutable-class-fields.ast.nll.stderr
+++ b/src/test/ui/mut/mutable-class-fields.ast.nll.stderr
@@ -8,4 +8,3 @@ LL |   nyan.how_hungry = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields.ast.stderr b/src/test/ui/mut/mutable-class-fields.ast.stderr
index 95a928437df2f..44f7361c3e994 100644
--- a/src/test/ui/mut/mutable-class-fields.ast.stderr
+++ b/src/test/ui/mut/mutable-class-fields.ast.stderr
@@ -8,4 +8,3 @@ LL |   nyan.how_hungry = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/mut/mutable-class-fields.mir.stderr b/src/test/ui/mut/mutable-class-fields.mir.stderr
index e243fb74dc25a..b233ed295596d 100644
--- a/src/test/ui/mut/mutable-class-fields.mir.stderr
+++ b/src/test/ui/mut/mutable-class-fields.mir.stderr
@@ -8,4 +8,3 @@ LL |   nyan.how_hungry = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/namespace/namespace-mix.stderr b/src/test/ui/namespace/namespace-mix.stderr
index 99fa3b9679482..ef2d0d87f09d5 100644
--- a/src/test/ui/namespace/namespace-mix.stderr
+++ b/src/test/ui/namespace/namespace-mix.stderr
@@ -596,5 +596,5 @@ LL | fn check<T: Impossible>(_: T) {}
 
 error: aborting due to 48 previous errors
 
-Some errors occurred: E0277, E0423.
+Some errors have detailed explanations: E0277, E0423.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/nested_impl_trait.stderr b/src/test/ui/nested_impl_trait.stderr
index 60f57e56ba118..bf853d30fab46 100644
--- a/src/test/ui/nested_impl_trait.stderr
+++ b/src/test/ui/nested_impl_trait.stderr
@@ -48,5 +48,4 @@ LL | fn allowed_in_ret_type() -> impl Fn() -> impl Into<u32> {
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0562, E0666.
-For more information about an error, try `rustc --explain E0562`.
+For more information about this error, try `rustc --explain E0562`.
diff --git a/src/test/ui/nll/cannot-move-block-spans.nll.stderr b/src/test/ui/nll/cannot-move-block-spans.nll.stderr
index 5d50ed67e2f32..c8dd07dabe179 100644
--- a/src/test/ui/nll/cannot-move-block-spans.nll.stderr
+++ b/src/test/ui/nll/cannot-move-block-spans.nll.stderr
@@ -81,5 +81,5 @@ LL |     let z = loop { let mut u = 0; u += 1; break *r; u += 2; };
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0507, E0508.
+Some errors have detailed explanations: E0507, E0508.
 For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/nll/cannot-move-block-spans.stderr b/src/test/ui/nll/cannot-move-block-spans.stderr
index 6de67a45fb9a8..1f0d91b4b76c9 100644
--- a/src/test/ui/nll/cannot-move-block-spans.stderr
+++ b/src/test/ui/nll/cannot-move-block-spans.stderr
@@ -54,5 +54,5 @@ LL |     let z = loop { let mut u = 0; u += 1; break *r; u += 2; };
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0507, E0508.
+Some errors have detailed explanations: E0507, E0508.
 For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/nll/closure-access-spans.stderr b/src/test/ui/nll/closure-access-spans.stderr
index 6c4cad923b62b..32958e28a3d08 100644
--- a/src/test/ui/nll/closure-access-spans.stderr
+++ b/src/test/ui/nll/closure-access-spans.stderr
@@ -106,5 +106,5 @@ LL |     || x;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0382, E0499, E0500, E0502, E0503, E0505.
+Some errors have detailed explanations: E0382, E0499, E0500, E0502, E0503, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/nll/closure-borrow-spans.stderr b/src/test/ui/nll/closure-borrow-spans.stderr
index fcb699a7562fb..30d99d56678ce 100644
--- a/src/test/ui/nll/closure-borrow-spans.stderr
+++ b/src/test/ui/nll/closure-borrow-spans.stderr
@@ -168,5 +168,5 @@ LL |     f.use_ref();
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0499, E0501, E0502, E0503, E0505, E0506, E0597.
+Some errors have detailed explanations: E0499, E0501, E0502, E0503, E0505, E0506, E0597.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/nll/closure-captures.stderr b/src/test/ui/nll/closure-captures.stderr
index 7dc1c59cebe48..fbd02bc8095a7 100644
--- a/src/test/ui/nll/closure-captures.stderr
+++ b/src/test/ui/nll/closure-captures.stderr
@@ -156,5 +156,4 @@ LL | |         *x = 1;});
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-comparing-against-free.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-comparing-against-free.stderr
index b2d7fd8df6d33..6d1baf9f827db 100644
--- a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-comparing-against-free.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-comparing-against-free.stderr
@@ -81,5 +81,4 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0521, E0597.
-For more information about an error, try `rustc --explain E0521`.
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr
index e30e2dfee6301..ea04a47a4804b 100644
--- a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr
@@ -48,4 +48,3 @@ LL | |     });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0521`.
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr
index ec608590a7104..033357b09fb2e 100644
--- a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr
@@ -48,4 +48,3 @@ LL | |     });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0521`.
diff --git a/src/test/ui/nll/closures-in-loops.stderr b/src/test/ui/nll/closures-in-loops.stderr
index 6408293aeea22..692eaea92b83b 100644
--- a/src/test/ui/nll/closures-in-loops.stderr
+++ b/src/test/ui/nll/closures-in-loops.stderr
@@ -27,5 +27,5 @@ LL |         v.push(|| *x = String::new());
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0499, E0524.
+Some errors have detailed explanations: E0382, E0499.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/nll/constant-thread-locals-issue-47053.stderr b/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
index ae056a9784085..16a6e59e4da3a 100644
--- a/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
+++ b/src/test/ui/nll/constant-thread-locals-issue-47053.stderr
@@ -6,4 +6,3 @@ LL |     FOO = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/generator-upvar-mutability.stderr b/src/test/ui/nll/generator-upvar-mutability.stderr
index 31b061b61d19d..1b4e5b89984e7 100644
--- a/src/test/ui/nll/generator-upvar-mutability.stderr
+++ b/src/test/ui/nll/generator-upvar-mutability.stderr
@@ -9,4 +9,3 @@ LL |         x = 1;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/guarantor-issue-46974.stderr b/src/test/ui/nll/guarantor-issue-46974.stderr
index 8486c7d48580a..80df393598775 100644
--- a/src/test/ui/nll/guarantor-issue-46974.stderr
+++ b/src/test/ui/nll/guarantor-issue-46974.stderr
@@ -20,5 +20,5 @@ LL |     &s.0
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0506, E0621.
+Some errors have detailed explanations: E0506, E0621.
 For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/nll/issue-21232-partial-init-and-erroneous-use.stderr b/src/test/ui/nll/issue-21232-partial-init-and-erroneous-use.stderr
index 54c728e3d2783..862432a5bc6af 100644
--- a/src/test/ui/nll/issue-21232-partial-init-and-erroneous-use.stderr
+++ b/src/test/ui/nll/issue-21232-partial-init-and-erroneous-use.stderr
@@ -44,5 +44,5 @@ LL |     d.s.y = 20;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0381, E0382.
+Some errors have detailed explanations: E0381, E0382.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/nll/issue-21232-partial-init-and-use.stderr b/src/test/ui/nll/issue-21232-partial-init-and-use.stderr
index ab85caabb316e..1cdf728a5e604 100644
--- a/src/test/ui/nll/issue-21232-partial-init-and-use.stderr
+++ b/src/test/ui/nll/issue-21232-partial-init-and-use.stderr
@@ -184,5 +184,5 @@ LL |             ((c.1).1).0 = 3;
 
 error: aborting due to 23 previous errors
 
-Some errors occurred: E0381, E0382.
+Some errors have detailed explanations: E0381, E0382.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/nll/issue-47388.stderr b/src/test/ui/nll/issue-47388.stderr
index 91f758a60a57e..a5f5bf6ee2fdd 100644
--- a/src/test/ui/nll/issue-47388.stderr
+++ b/src/test/ui/nll/issue-47388.stderr
@@ -8,4 +8,3 @@ LL |     fancy_ref.num = 6;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/issue-51244.stderr b/src/test/ui/nll/issue-51244.stderr
index 69efb2ca84751..6b543389af508 100644
--- a/src/test/ui/nll/issue-51244.stderr
+++ b/src/test/ui/nll/issue-51244.stderr
@@ -8,4 +8,3 @@ LL |     *my_ref = 0;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/nll/issue-52059-report-when-borrow-and-drop-conflict.stderr b/src/test/ui/nll/issue-52059-report-when-borrow-and-drop-conflict.stderr
index e2036ee4ac0c1..e8741036e1d93 100644
--- a/src/test/ui/nll/issue-52059-report-when-borrow-and-drop-conflict.stderr
+++ b/src/test/ui/nll/issue-52059-report-when-borrow-and-drop-conflict.stderr
@@ -39,5 +39,5 @@ LL |     let p = s.url; p
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0509, E0713.
+Some errors have detailed explanations: E0509, E0713.
 For more information about an error, try `rustc --explain E0509`.
diff --git a/src/test/ui/nll/issue-55850.nll.stderr b/src/test/ui/nll/issue-55850.nll.stderr
index bf0c6986ef2cb..51bc30a3df29e 100644
--- a/src/test/ui/nll/issue-55850.nll.stderr
+++ b/src/test/ui/nll/issue-55850.nll.stderr
@@ -14,5 +14,5 @@ LL |         yield &s[..]
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0597, E0626.
+Some errors have detailed explanations: E0597, E0626.
 For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/ui/nll/issue-57989.stderr b/src/test/ui/nll/issue-57989.stderr
index db28787a04681..7367dc095a31a 100644
--- a/src/test/ui/nll/issue-57989.stderr
+++ b/src/test/ui/nll/issue-57989.stderr
@@ -20,5 +20,4 @@ LL |     g;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0506, E0594.
-For more information about an error, try `rustc --explain E0506`.
+For more information about this error, try `rustc --explain E0506`.
diff --git a/src/test/ui/nll/match-cfg-fake-edges.stderr b/src/test/ui/nll/match-cfg-fake-edges.stderr
index 72c6a6cd42027..d37c52444ac0d 100644
--- a/src/test/ui/nll/match-cfg-fake-edges.stderr
+++ b/src/test/ui/nll/match-cfg-fake-edges.stderr
@@ -30,5 +30,5 @@ LL |             r;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0381, E0382, E0503.
+Some errors have detailed explanations: E0381, E0382, E0503.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/nll/match-guards-partially-borrow.stderr b/src/test/ui/nll/match-guards-partially-borrow.stderr
index a646b7d84bc0e..3d9b67b4ea660 100644
--- a/src/test/ui/nll/match-guards-partially-borrow.stderr
+++ b/src/test/ui/nll/match-guards-partially-borrow.stderr
@@ -83,5 +83,5 @@ LL |             b = &true;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0506, E0510.
+Some errors have detailed explanations: E0506, E0510.
 For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/nll/match-on-borrowed.stderr b/src/test/ui/nll/match-on-borrowed.stderr
index e8db0626a7ba2..9f804dfb3d7be 100644
--- a/src/test/ui/nll/match-on-borrowed.stderr
+++ b/src/test/ui/nll/match-on-borrowed.stderr
@@ -42,5 +42,5 @@ LL |     match n {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0381, E0503.
+Some errors have detailed explanations: E0381, E0503.
 For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/nll/move-errors.stderr b/src/test/ui/nll/move-errors.stderr
index f329748139e50..bb30da034af56 100644
--- a/src/test/ui/nll/move-errors.stderr
+++ b/src/test/ui/nll/move-errors.stderr
@@ -183,5 +183,5 @@ LL |         Ok(s) | Err(s) => (),
 
 error: aborting due to 14 previous errors
 
-Some errors occurred: E0507, E0508, E0509.
+Some errors have detailed explanations: E0507, E0508, E0509.
 For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/nll/normalization-bounds-error.stderr b/src/test/ui/nll/normalization-bounds-error.stderr
index cd88ceb16d05a..8ee00168661bd 100644
--- a/src/test/ui/nll/normalization-bounds-error.stderr
+++ b/src/test/ui/nll/normalization-bounds-error.stderr
@@ -20,4 +20,3 @@ LL | fn visit_seq<'d, 'a: 'd>() -> <&'a () as Visitor<'d>>::Value {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/nll/polonius-smoke-test.stderr b/src/test/ui/nll/polonius-smoke-test.stderr
index fb3e9cfd25975..dbc5b7a019a69 100644
--- a/src/test/ui/nll/polonius-smoke-test.stderr
+++ b/src/test/ui/nll/polonius-smoke-test.stderr
@@ -37,5 +37,5 @@ LL |     tmp;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0503, E0505, E0515.
+Some errors have detailed explanations: E0503, E0505, E0515.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/nll/user-annotations/closure-substs.stderr b/src/test/ui/nll/user-annotations/closure-substs.stderr
index 55bb3a6090c01..384d53f0e4b0a 100644
--- a/src/test/ui/nll/user-annotations/closure-substs.stderr
+++ b/src/test/ui/nll/user-annotations/closure-substs.stderr
@@ -34,4 +34,3 @@ LL |         b(x);
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0521`.
diff --git a/src/test/ui/nll/user-annotations/patterns.stderr b/src/test/ui/nll/user-annotations/patterns.stderr
index 1ac62832315d5..7ebd0ae227a80 100644
--- a/src/test/ui/nll/user-annotations/patterns.stderr
+++ b/src/test/ui/nll/user-annotations/patterns.stderr
@@ -185,5 +185,5 @@ LL |     let (y, _z): (&'static u32, u32) = (x, 44);
 
 error: aborting due to 19 previous errors
 
-Some errors occurred: E0597, E0716.
+Some errors have detailed explanations: E0597, E0716.
 For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/ui/no-args-non-move-async-closure.stderr b/src/test/ui/no-args-non-move-async-closure.stderr
index e1d16f669a99c..1b4b86210f840 100644
--- a/src/test/ui/no-args-non-move-async-closure.stderr
+++ b/src/test/ui/no-args-non-move-async-closure.stderr
@@ -8,4 +8,3 @@ LL |     let _ = async |x: u8| {};
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0708`.
diff --git a/src/test/ui/no-implicit-prelude-nested.stderr b/src/test/ui/no-implicit-prelude-nested.stderr
index 521ed8f2cf3b0..79b9396d41cc9 100644
--- a/src/test/ui/no-implicit-prelude-nested.stderr
+++ b/src/test/ui/no-implicit-prelude-nested.stderr
@@ -192,5 +192,5 @@ LL |         use std::prelude::v1::drop;
 
 error: aborting due to 18 previous errors
 
-Some errors occurred: E0405, E0425.
+Some errors have detailed explanations: E0405, E0425.
 For more information about an error, try `rustc --explain E0405`.
diff --git a/src/test/ui/no-implicit-prelude.stderr b/src/test/ui/no-implicit-prelude.stderr
index e5c54ddd1035d..eac1fcb7b67c1 100644
--- a/src/test/ui/no-implicit-prelude.stderr
+++ b/src/test/ui/no-implicit-prelude.stderr
@@ -64,5 +64,5 @@ LL | use std::prelude::v1::drop;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0405, E0425.
+Some errors have detailed explanations: E0405, E0425.
 For more information about an error, try `rustc --explain E0405`.
diff --git a/src/test/ui/no-patterns-in-args-macro.stderr b/src/test/ui/no-patterns-in-args-macro.stderr
index 28a48bf6a89c4..680430a05ee8a 100644
--- a/src/test/ui/no-patterns-in-args-macro.stderr
+++ b/src/test/ui/no-patterns-in-args-macro.stderr
@@ -18,5 +18,5 @@ LL |     m!((bad, pat));
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0130, E0561, E0642.
+Some errors have detailed explanations: E0130, E0642.
 For more information about an error, try `rustc --explain E0130`.
diff --git a/src/test/ui/no-patterns-in-args.stderr b/src/test/ui/no-patterns-in-args.stderr
index 0768c3f4de8b8..b65e0ecd253e6 100644
--- a/src/test/ui/no-patterns-in-args.stderr
+++ b/src/test/ui/no-patterns-in-args.stderr
@@ -30,5 +30,4 @@ LL | type A2 = fn(&arg: u8);
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0130, E0561.
-For more information about an error, try `rustc --explain E0130`.
+For more information about this error, try `rustc --explain E0130`.
diff --git a/src/test/ui/non-interger-atomic.stderr b/src/test/ui/non-interger-atomic.stderr
index 9a49ee88d00cc..7d1130d238e2c 100644
--- a/src/test/ui/non-interger-atomic.stderr
+++ b/src/test/ui/non-interger-atomic.stderr
@@ -96,4 +96,3 @@ LL |     intrinsics::atomic_cxchg(p, v, v);
 
 error: aborting due to 16 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/numeric/numeric-fields.stderr b/src/test/ui/numeric/numeric-fields.stderr
index ce51bbaa114fd..13c18d740fc1c 100644
--- a/src/test/ui/numeric/numeric-fields.stderr
+++ b/src/test/ui/numeric/numeric-fields.stderr
@@ -14,5 +14,5 @@ LL |         S{0: a, 0x1: b, ..} => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0026, E0560.
+Some errors have detailed explanations: E0026, E0560.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.stderr b/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.stderr
index f079803c901b4..0319c7bfbe272 100644
--- a/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.stderr
+++ b/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.stderr
@@ -18,4 +18,3 @@ LL | fn f(t: &Ref2<Test>) {
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0228`.
diff --git a/src/test/ui/object-lifetime/object-lifetime-default-elision.stderr b/src/test/ui/object-lifetime/object-lifetime-default-elision.stderr
index ed734c20f38ba..dcb07a1706f35 100644
--- a/src/test/ui/object-lifetime/object-lifetime-default-elision.stderr
+++ b/src/test/ui/object-lifetime/object-lifetime-default-elision.stderr
@@ -50,4 +50,3 @@ LL | fn load3<'a,'b>(ss: &'a SomeTrait) -> &'b SomeTrait {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/object-lifetime/object-lifetime-default-mybox.stderr b/src/test/ui/object-lifetime/object-lifetime-default-mybox.stderr
index 402448cde3112..4c23f867be81d 100644
--- a/src/test/ui/object-lifetime/object-lifetime-default-mybox.stderr
+++ b/src/test/ui/object-lifetime/object-lifetime-default-mybox.stderr
@@ -27,5 +27,4 @@ LL | fn load2<'a>(ss: &MyBox<SomeTrait+'a>) -> MyBox<SomeTrait+'a> {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0308, E0623.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/on-unimplemented/bad-annotation.stderr b/src/test/ui/on-unimplemented/bad-annotation.stderr
index 31b626e0ff4c5..abbe9f0fcd41e 100644
--- a/src/test/ui/on-unimplemented/bad-annotation.stderr
+++ b/src/test/ui/on-unimplemented/bad-annotation.stderr
@@ -72,5 +72,5 @@ LL | #[rustc_on_unimplemented(on(desugared, on(desugared, message="x")), message
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0230, E0231, E0232.
+Some errors have detailed explanations: E0230, E0231, E0232.
 For more information about an error, try `rustc --explain E0230`.
diff --git a/src/test/ui/order-dependent-cast-inference.stderr b/src/test/ui/order-dependent-cast-inference.stderr
index 081038c573acf..01e59f8f022fd 100644
--- a/src/test/ui/order-dependent-cast-inference.stderr
+++ b/src/test/ui/order-dependent-cast-inference.stderr
@@ -10,4 +10,3 @@ LL |     let mut y = 0 as *const _;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0641`.
diff --git a/src/test/ui/parse-error-correct.stderr b/src/test/ui/parse-error-correct.stderr
index b0d2b2d0c0a13..d593431d9781d 100644
--- a/src/test/ui/parse-error-correct.stderr
+++ b/src/test/ui/parse-error-correct.stderr
@@ -29,5 +29,5 @@ LL |     let x = y.foo;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0610, E0618.
+Some errors have detailed explanations: E0610, E0618.
 For more information about an error, try `rustc --explain E0610`.
diff --git a/src/test/ui/parser-recovery-1.stderr b/src/test/ui/parser-recovery-1.stderr
index cd02710c40b77..c29f42759178e 100644
--- a/src/test/ui/parser-recovery-1.stderr
+++ b/src/test/ui/parser-recovery-1.stderr
@@ -36,5 +36,5 @@ error[E0601]: `main` function not found in crate `parser_recovery_1`
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0425, E0601.
+Some errors have detailed explanations: E0425, E0601.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/parser/default.stderr b/src/test/ui/parser/default.stderr
index c43fffd58af20..ded088acfc42e 100644
--- a/src/test/ui/parser/default.stderr
+++ b/src/test/ui/parser/default.stderr
@@ -21,5 +21,5 @@ LL | impl Foo for u32 {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0046, E0449.
+Some errors have detailed explanations: E0046, E0449.
 For more information about an error, try `rustc --explain E0046`.
diff --git a/src/test/ui/parser/doc-inside-trait-item.stderr b/src/test/ui/parser/doc-inside-trait-item.stderr
index 261e27b6e0d18..3287ece9ae644 100644
--- a/src/test/ui/parser/doc-inside-trait-item.stderr
+++ b/src/test/ui/parser/doc-inside-trait-item.stderr
@@ -8,4 +8,3 @@ LL |     /// empty doc
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0584`.
diff --git a/src/test/ui/parser/issue-8537.stderr b/src/test/ui/parser/issue-8537.stderr
index 82ca614215430..29a68c9e1c375 100644
--- a/src/test/ui/parser/issue-8537.stderr
+++ b/src/test/ui/parser/issue-8537.stderr
@@ -8,4 +8,3 @@ LL |   "invalid-ab_isize"
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0703`.
diff --git a/src/test/ui/parser/lex-bad-char-literals-6.stderr b/src/test/ui/parser/lex-bad-char-literals-6.stderr
index df99726034878..74959c9a4ed4a 100644
--- a/src/test/ui/parser/lex-bad-char-literals-6.stderr
+++ b/src/test/ui/parser/lex-bad-char-literals-6.stderr
@@ -43,5 +43,5 @@ LL |     if x == z {}
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/parser/require-parens-for-chained-comparison.stderr b/src/test/ui/parser/require-parens-for-chained-comparison.stderr
index 8899b0d43cd8b..76e548de045aa 100644
--- a/src/test/ui/parser/require-parens-for-chained-comparison.stderr
+++ b/src/test/ui/parser/require-parens-for-chained-comparison.stderr
@@ -49,5 +49,5 @@ LL |     f<X>();
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0308, E0369.
+Some errors have detailed explanations: E0308, E0369.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/parser/struct-literal-in-match-discriminant.stderr b/src/test/ui/parser/struct-literal-in-match-discriminant.stderr
index 94a758eb5268d..d061591e510ce 100644
--- a/src/test/ui/parser/struct-literal-in-match-discriminant.stderr
+++ b/src/test/ui/parser/struct-literal-in-match-discriminant.stderr
@@ -38,5 +38,5 @@ LL | |         } => {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0308, E0423, E0425.
+Some errors have detailed explanations: E0308, E0423, E0425.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/parser/struct-literal-in-while.stderr b/src/test/ui/parser/struct-literal-in-while.stderr
index d48244654cd02..c07975331f859 100644
--- a/src/test/ui/parser/struct-literal-in-while.stderr
+++ b/src/test/ui/parser/struct-literal-in-while.stderr
@@ -32,5 +32,5 @@ LL |     }.hi() {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0423, E0599.
+Some errors have detailed explanations: E0423, E0599.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/parser/struct-literal-restrictions-in-lamda.stderr b/src/test/ui/parser/struct-literal-restrictions-in-lamda.stderr
index a8c93233dbc53..977875dd9386c 100644
--- a/src/test/ui/parser/struct-literal-restrictions-in-lamda.stderr
+++ b/src/test/ui/parser/struct-literal-restrictions-in-lamda.stderr
@@ -32,5 +32,5 @@ LL |     }.hi() {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0423, E0599.
+Some errors have detailed explanations: E0423, E0599.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/pattern/pat-tuple-bad-type.stderr b/src/test/ui/pattern/pat-tuple-bad-type.stderr
index 84b9a622431e6..3da3bcb635f19 100644
--- a/src/test/ui/pattern/pat-tuple-bad-type.stderr
+++ b/src/test/ui/pattern/pat-tuple-bad-type.stderr
@@ -20,5 +20,5 @@ LL |         (..) => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0282, E0308.
+Some errors have detailed explanations: E0282, E0308.
 For more information about an error, try `rustc --explain E0282`.
diff --git a/src/test/ui/pattern/pat-tuple-overfield.stderr b/src/test/ui/pattern/pat-tuple-overfield.stderr
index 9bf14e15fceab..0430897510b85 100644
--- a/src/test/ui/pattern/pat-tuple-overfield.stderr
+++ b/src/test/ui/pattern/pat-tuple-overfield.stderr
@@ -30,5 +30,5 @@ LL |         S(1, 2, .., 3, 4) => {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0023, E0308.
+Some errors have detailed explanations: E0023, E0308.
 For more information about an error, try `rustc --explain E0023`.
diff --git a/src/test/ui/pattern/pattern-error-continue.stderr b/src/test/ui/pattern/pattern-error-continue.stderr
index 11e0c31cfa62f..a581f07496e6c 100644
--- a/src/test/ui/pattern/pattern-error-continue.stderr
+++ b/src/test/ui/pattern/pattern-error-continue.stderr
@@ -37,5 +37,5 @@ LL |     f(true);
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0023, E0308, E0433, E0532.
+Some errors have detailed explanations: E0023, E0308, E0433, E0532.
 For more information about an error, try `rustc --explain E0023`.
diff --git a/src/test/ui/privacy/privacy-ns1.stderr b/src/test/ui/privacy/privacy-ns1.stderr
index 07b013be7251d..09148f9d0e6e1 100644
--- a/src/test/ui/privacy/privacy-ns1.stderr
+++ b/src/test/ui/privacy/privacy-ns1.stderr
@@ -72,5 +72,5 @@ LL | use foo3::Bar;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0412, E0423, E0425, E0573.
+Some errors have detailed explanations: E0412, E0423, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/privacy/privacy-ns2.stderr b/src/test/ui/privacy/privacy-ns2.stderr
index cd5b536906443..8ea32f36f9e7a 100644
--- a/src/test/ui/privacy/privacy-ns2.stderr
+++ b/src/test/ui/privacy/privacy-ns2.stderr
@@ -82,5 +82,5 @@ LL |     use foo3::{Bar,Baz};
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0423, E0573, E0603.
+Some errors have detailed explanations: E0423, E0603.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/privacy/privacy1.stderr b/src/test/ui/privacy/privacy1.stderr
index 73672d1c214f1..b647cc8ab8a83 100644
--- a/src/test/ui/privacy/privacy1.stderr
+++ b/src/test/ui/privacy/privacy1.stderr
@@ -102,5 +102,5 @@ LL |         ::bar::baz::A.bar2();
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0603, E0624.
+Some errors have detailed explanations: E0603, E0624.
 For more information about an error, try `rustc --explain E0603`.
diff --git a/src/test/ui/privacy/privacy2.stderr b/src/test/ui/privacy/privacy2.stderr
index 2e6bb99f43664..9f2359657bd7c 100644
--- a/src/test/ui/privacy/privacy2.stderr
+++ b/src/test/ui/privacy/privacy2.stderr
@@ -14,5 +14,5 @@ error: requires `sized` lang_item
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0432, E0603.
+Some errors have detailed explanations: E0432, E0603.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/privacy/private-in-public-assoc-ty.stderr b/src/test/ui/privacy/private-in-public-assoc-ty.stderr
index a610b47592315..81d70ee770857 100644
--- a/src/test/ui/privacy/private-in-public-assoc-ty.stderr
+++ b/src/test/ui/privacy/private-in-public-assoc-ty.stderr
@@ -58,5 +58,5 @@ LL |         existential type Exist: PrivTr;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0445, E0446.
+Some errors have detailed explanations: E0445, E0446.
 For more information about an error, try `rustc --explain E0445`.
diff --git a/src/test/ui/privacy/private-in-public.stderr b/src/test/ui/privacy/private-in-public.stderr
index 3c57e50cfedfa..e3fa4c145c3dd 100644
--- a/src/test/ui/privacy/private-in-public.stderr
+++ b/src/test/ui/privacy/private-in-public.stderr
@@ -294,5 +294,5 @@ LL |     pub fn f3(arg: Result<u8>) {}
 
 error: aborting due to 32 previous errors
 
-Some errors occurred: E0445, E0446.
+Some errors have detailed explanations: E0445, E0446.
 For more information about an error, try `rustc --explain E0445`.
diff --git a/src/test/ui/privacy/restricted/test.stderr b/src/test/ui/privacy/restricted/test.stderr
index b4ef7b8e3f79f..fa78ae759c737 100644
--- a/src/test/ui/privacy/restricted/test.stderr
+++ b/src/test/ui/privacy/restricted/test.stderr
@@ -78,5 +78,5 @@ LL |     u.h();
 
 error: aborting due to 12 previous errors
 
-Some errors occurred: E0364, E0433, E0603, E0616, E0624.
+Some errors have detailed explanations: E0364, E0433, E0603, E0616, E0624.
 For more information about an error, try `rustc --explain E0364`.
diff --git a/src/test/ui/proc-macro/ambiguous-builtin-attrs.stderr b/src/test/ui/proc-macro/ambiguous-builtin-attrs.stderr
index 975be7ce03b81..23310f6c6f528 100644
--- a/src/test/ui/proc-macro/ambiguous-builtin-attrs.stderr
+++ b/src/test/ui/proc-macro/ambiguous-builtin-attrs.stderr
@@ -76,5 +76,5 @@ LL | use builtin_attrs::*;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0425, E0659.
+Some errors have detailed explanations: E0425, E0659.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/proc-macro/derive-helper-shadowing.stderr b/src/test/ui/proc-macro/derive-helper-shadowing.stderr
index 581393534928a..fb86cabf939c4 100644
--- a/src/test/ui/proc-macro/derive-helper-shadowing.stderr
+++ b/src/test/ui/proc-macro/derive-helper-shadowing.stderr
@@ -27,5 +27,5 @@ LL | use derive_helper_shadowing::*;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0658, E0659.
+Some errors have detailed explanations: E0658, E0659.
 For more information about an error, try `rustc --explain E0658`.
diff --git a/src/test/ui/proc-macro/proc-macro-attributes.stderr b/src/test/ui/proc-macro/proc-macro-attributes.stderr
index 084c7289d044e..5117c7e155952 100644
--- a/src/test/ui/proc-macro/proc-macro-attributes.stderr
+++ b/src/test/ui/proc-macro/proc-macro-attributes.stderr
@@ -77,5 +77,5 @@ LL | #[macro_use]
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0658, E0659.
+Some errors have detailed explanations: E0658, E0659.
 For more information about an error, try `rustc --explain E0658`.
diff --git a/src/test/ui/proc-macro/span-preservation.stderr b/src/test/ui/proc-macro/span-preservation.stderr
index fbccde28f59b4..1cc7706ce3a4c 100644
--- a/src/test/ui/proc-macro/span-preservation.stderr
+++ b/src/test/ui/proc-macro/span-preservation.stderr
@@ -48,5 +48,5 @@ LL |     0
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0308, E0560.
+Some errors have detailed explanations: E0308, E0560.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/pub/pub-restricted.stderr b/src/test/ui/pub/pub-restricted.stderr
index 7eeefa9550543..044e5fc5188e6 100644
--- a/src/test/ui/pub/pub-restricted.stderr
+++ b/src/test/ui/pub/pub-restricted.stderr
@@ -50,4 +50,3 @@ LL |         pub (in x) non_parent_invalid: usize,
 
 error: aborting due to 5 previous errors
 
-For more information about this error, try `rustc --explain E0704`.
diff --git a/src/test/ui/qualified/qualified-path-params-2.stderr b/src/test/ui/qualified/qualified-path-params-2.stderr
index 2d14d6c5aa898..15da5193e8834 100644
--- a/src/test/ui/qualified/qualified-path-params-2.stderr
+++ b/src/test/ui/qualified/qualified-path-params-2.stderr
@@ -12,5 +12,5 @@ LL | type A = <S as Tr>::A::f<u8>;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0109, E0223.
+Some errors have detailed explanations: E0109, E0223.
 For more information about an error, try `rustc --explain E0109`.
diff --git a/src/test/ui/qualified/qualified-path-params.stderr b/src/test/ui/qualified/qualified-path-params.stderr
index 926b098040f14..b8d3b744e837c 100644
--- a/src/test/ui/qualified/qualified-path-params.stderr
+++ b/src/test/ui/qualified/qualified-path-params.stderr
@@ -15,5 +15,4 @@ LL |         0 ..= <S as Tr>::A::f::<u8> => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0029, E0533.
-For more information about an error, try `rustc --explain E0029`.
+For more information about this error, try `rustc --explain E0029`.
diff --git a/src/test/ui/question-mark-type-infer.stderr b/src/test/ui/question-mark-type-infer.stderr
index f62a540572c93..2a1bdf57a88cb 100644
--- a/src/test/ui/question-mark-type-infer.stderr
+++ b/src/test/ui/question-mark-type-infer.stderr
@@ -6,4 +6,3 @@ LL |     l.iter().map(f).collect()?
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0284`.
diff --git a/src/test/ui/range/range-1.stderr b/src/test/ui/range/range-1.stderr
index 00c0c80515557..bbc2abea51df7 100644
--- a/src/test/ui/range/range-1.stderr
+++ b/src/test/ui/range/range-1.stderr
@@ -24,5 +24,5 @@ LL |     let range = *arr..;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/regions/region-borrow-params-issue-29793-small.stderr b/src/test/ui/regions/region-borrow-params-issue-29793-small.stderr
index d6ad68fe94e1e..c2c2d64676b85 100644
--- a/src/test/ui/regions/region-borrow-params-issue-29793-small.stderr
+++ b/src/test/ui/regions/region-borrow-params-issue-29793-small.stderr
@@ -244,5 +244,5 @@ LL |             let f = move |t: bool| if t { x } else { y }; // (separate erro
 
 error: aborting due to 20 previous errors
 
-Some errors occurred: E0373, E0597.
+Some errors have detailed explanations: E0373, E0597.
 For more information about an error, try `rustc --explain E0373`.
diff --git a/src/test/ui/regions/region-bounds-on-objects-and-type-parameters.stderr b/src/test/ui/regions/region-bounds-on-objects-and-type-parameters.stderr
index ec71d55705e85..1111117369fd8 100644
--- a/src/test/ui/regions/region-bounds-on-objects-and-type-parameters.stderr
+++ b/src/test/ui/regions/region-bounds-on-objects-and-type-parameters.stderr
@@ -31,5 +31,5 @@ LL | struct Foo<'a,'b,'c> {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0226, E0392, E0478.
-For more information about an error, try `rustc --explain E0226`.
+Some errors have detailed explanations: E0392, E0478.
+For more information about an error, try `rustc --explain E0392`.
diff --git a/src/test/ui/regions/region-lifetime-bounds-on-fns-where-clause.stderr b/src/test/ui/regions/region-lifetime-bounds-on-fns-where-clause.stderr
index 7b901c2f96014..fd78f82d0f321 100644
--- a/src/test/ui/regions/region-lifetime-bounds-on-fns-where-clause.stderr
+++ b/src/test/ui/regions/region-lifetime-bounds-on-fns-where-clause.stderr
@@ -27,5 +27,4 @@ LL |     let _: fn(&mut &isize, &mut &isize) = a;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0623.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/regions/region-multiple-lifetime-bounds-on-fns-where-clause.stderr b/src/test/ui/regions/region-multiple-lifetime-bounds-on-fns-where-clause.stderr
index 3e42cfcffb438..220c5493d19b1 100644
--- a/src/test/ui/regions/region-multiple-lifetime-bounds-on-fns-where-clause.stderr
+++ b/src/test/ui/regions/region-multiple-lifetime-bounds-on-fns-where-clause.stderr
@@ -38,5 +38,4 @@ LL |     let _: fn(&mut &isize, &mut &isize, &mut &isize) = a;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0308, E0623.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/regions/region-object-lifetime-2.stderr b/src/test/ui/regions/region-object-lifetime-2.stderr
index 8817ad1c9f73c..d3552ab0c4b23 100644
--- a/src/test/ui/regions/region-object-lifetime-2.stderr
+++ b/src/test/ui/regions/region-object-lifetime-2.stderr
@@ -27,4 +27,3 @@ LL |     x.borrowed()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/region-object-lifetime-4.stderr b/src/test/ui/regions/region-object-lifetime-4.stderr
index fee7f40efd485..75b26ffc6d576 100644
--- a/src/test/ui/regions/region-object-lifetime-4.stderr
+++ b/src/test/ui/regions/region-object-lifetime-4.stderr
@@ -27,4 +27,3 @@ LL |     x.borrowed()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/region-object-lifetime-in-coercion.stderr b/src/test/ui/regions/region-object-lifetime-in-coercion.stderr
index b8ea6d3476b51..c94a25ce60478 100644
--- a/src/test/ui/regions/region-object-lifetime-in-coercion.stderr
+++ b/src/test/ui/regions/region-object-lifetime-in-coercion.stderr
@@ -48,5 +48,4 @@ LL | fn d<'a,'b>(v: &'a [u8]) -> Box<Foo+'b> {
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0495, E0621.
-For more information about an error, try `rustc --explain E0495`.
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/ui/regions/regions-addr-of-arg.nll.stderr b/src/test/ui/regions/regions-addr-of-arg.nll.stderr
index 54f44b98b9195..e77289287e536 100644
--- a/src/test/ui/regions/regions-addr-of-arg.nll.stderr
+++ b/src/test/ui/regions/regions-addr-of-arg.nll.stderr
@@ -16,5 +16,5 @@ LL |     &a
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0515, E0597.
+Some errors have detailed explanations: E0515, E0597.
 For more information about an error, try `rustc --explain E0515`.
diff --git a/src/test/ui/regions/regions-addr-of-self.stderr b/src/test/ui/regions/regions-addr-of-self.stderr
index a0b8b6b51e5a1..2274e9341dbc9 100644
--- a/src/test/ui/regions/regions-addr-of-self.stderr
+++ b/src/test/ui/regions/regions-addr-of-self.stderr
@@ -26,4 +26,3 @@ LL |         let p: &'static mut usize = &mut self.cats_chased;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-addr-of-upvar-self.stderr b/src/test/ui/regions/regions-addr-of-upvar-self.stderr
index ac5e5e9aabc5b..d02caeb44f1a8 100644
--- a/src/test/ui/regions/regions-addr-of-upvar-self.stderr
+++ b/src/test/ui/regions/regions-addr-of-upvar-self.stderr
@@ -23,4 +23,3 @@ LL |             let p: &'static mut usize = &mut self.food;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-assoc-type-region-bound-in-trait-not-met.stderr b/src/test/ui/regions/regions-assoc-type-region-bound-in-trait-not-met.stderr
index d01e991103923..9732cd12ce15f 100644
--- a/src/test/ui/regions/regions-assoc-type-region-bound-in-trait-not-met.stderr
+++ b/src/test/ui/regions/regions-assoc-type-region-bound-in-trait-not-met.stderr
@@ -46,4 +46,3 @@ LL | impl<'a,'b> Foo<'b> for &'a i64 {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-assoc-type-static-bound-in-trait-not-met.stderr b/src/test/ui/regions/regions-assoc-type-static-bound-in-trait-not-met.stderr
index 33a4ea01ce2e5..2067bc3946c92 100644
--- a/src/test/ui/regions/regions-assoc-type-static-bound-in-trait-not-met.stderr
+++ b/src/test/ui/regions/regions-assoc-type-static-bound-in-trait-not-met.stderr
@@ -21,4 +21,3 @@ LL | impl<'a> Foo for &'a i32 {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-bounded-by-trait-requiring-static.stderr b/src/test/ui/regions/regions-bounded-by-trait-requiring-static.stderr
index c72d6483c28f4..fcd7332cf39f9 100644
--- a/src/test/ui/regions/regions-bounded-by-trait-requiring-static.stderr
+++ b/src/test/ui/regions/regions-bounded-by-trait-requiring-static.stderr
@@ -48,4 +48,3 @@ LL |     assert_send::<*mut &'a isize>();
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0477`.
diff --git a/src/test/ui/regions/regions-bounded-method-type-parameters-cross-crate.stderr b/src/test/ui/regions/regions-bounded-method-type-parameters-cross-crate.stderr
index eb205a303dbdf..4e88be1c1e8a8 100644
--- a/src/test/ui/regions/regions-bounded-method-type-parameters-cross-crate.stderr
+++ b/src/test/ui/regions/regions-bounded-method-type-parameters-cross-crate.stderr
@@ -9,4 +9,3 @@ LL |     a.bigger_region(b)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-bounded-method-type-parameters-trait-bound.stderr b/src/test/ui/regions/regions-bounded-method-type-parameters-trait-bound.stderr
index de1073cd1d9da..6b1302b539402 100644
--- a/src/test/ui/regions/regions-bounded-method-type-parameters-trait-bound.stderr
+++ b/src/test/ui/regions/regions-bounded-method-type-parameters-trait-bound.stderr
@@ -9,4 +9,3 @@ LL |     f.method(b);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-bounded-method-type-parameters.stderr b/src/test/ui/regions/regions-bounded-method-type-parameters.stderr
index 66b61b1349d2b..f77f97f44f2b7 100644
--- a/src/test/ui/regions/regions-bounded-method-type-parameters.stderr
+++ b/src/test/ui/regions/regions-bounded-method-type-parameters.stderr
@@ -8,4 +8,3 @@ LL |     Foo.some_method::<&'a isize>();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0477`.
diff --git a/src/test/ui/regions/regions-close-associated-type-into-object.stderr b/src/test/ui/regions/regions-close-associated-type-into-object.stderr
index 89c0c2534266a..2401f549a5604 100644
--- a/src/test/ui/regions/regions-close-associated-type-into-object.stderr
+++ b/src/test/ui/regions/regions-close-associated-type-into-object.stderr
@@ -52,5 +52,5 @@ LL |     Box::new(item)
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0309, E0310.
+Some errors have detailed explanations: E0309, E0310.
 For more information about an error, try `rustc --explain E0309`.
diff --git a/src/test/ui/regions/regions-close-object-into-object-2.stderr b/src/test/ui/regions/regions-close-object-into-object-2.stderr
index d5e228e1f0d9d..b5b03e618e1de 100644
--- a/src/test/ui/regions/regions-close-object-into-object-2.stderr
+++ b/src/test/ui/regions/regions-close-object-into-object-2.stderr
@@ -21,4 +21,3 @@ LL |     box B(&*v) as Box<X>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-close-object-into-object-4.stderr b/src/test/ui/regions/regions-close-object-into-object-4.stderr
index c9ad95d31d6a0..20cbcbb841f2b 100644
--- a/src/test/ui/regions/regions-close-object-into-object-4.stderr
+++ b/src/test/ui/regions/regions-close-object-into-object-4.stderr
@@ -21,4 +21,3 @@ LL |     box B(&*v) as Box<X>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-close-over-type-parameter-1.stderr b/src/test/ui/regions/regions-close-over-type-parameter-1.stderr
index 6d33f147308c5..615c55d9da346 100644
--- a/src/test/ui/regions/regions-close-over-type-parameter-1.stderr
+++ b/src/test/ui/regions/regions-close-over-type-parameter-1.stderr
@@ -56,5 +56,5 @@ LL |     box v as Box<SomeTrait+'b>
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0309, E0310.
+Some errors have detailed explanations: E0309, E0310.
 For more information about an error, try `rustc --explain E0309`.
diff --git a/src/test/ui/regions/regions-close-over-type-parameter-multiple.stderr b/src/test/ui/regions/regions-close-over-type-parameter-multiple.stderr
index 68809eb548b2f..96e6a329e7d52 100644
--- a/src/test/ui/regions/regions-close-over-type-parameter-multiple.stderr
+++ b/src/test/ui/regions/regions-close-over-type-parameter-multiple.stderr
@@ -25,4 +25,3 @@ LL | fn make_object_bad<'a,'b,'c,A:SomeTrait+'a+'b>(v: A) -> Box<SomeTrait+'c> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-close-param-into-object.stderr b/src/test/ui/regions/regions-close-param-into-object.stderr
index a7f05723817ef..ef226073de6d3 100644
--- a/src/test/ui/regions/regions-close-param-into-object.stderr
+++ b/src/test/ui/regions/regions-close-param-into-object.stderr
@@ -60,5 +60,5 @@ LL |     Box::new(v)
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0309, E0310.
+Some errors have detailed explanations: E0309, E0310.
 For more information about an error, try `rustc --explain E0309`.
diff --git a/src/test/ui/regions/regions-creating-enums3.stderr b/src/test/ui/regions/regions-creating-enums3.stderr
index 2fc1fc3f68128..763b62d945df8 100644
--- a/src/test/ui/regions/regions-creating-enums3.stderr
+++ b/src/test/ui/regions/regions-creating-enums3.stderr
@@ -10,4 +10,3 @@ LL |     Ast::Add(x, y)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-creating-enums4.stderr b/src/test/ui/regions/regions-creating-enums4.stderr
index 4d00783d180b6..e13cbe9960ab8 100644
--- a/src/test/ui/regions/regions-creating-enums4.stderr
+++ b/src/test/ui/regions/regions-creating-enums4.stderr
@@ -23,4 +23,3 @@ LL | fn mk_add_bad2<'a,'b>(x: &'a Ast<'a>, y: &'a Ast<'a>, z: &Ast) -> Ast<'b> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-early-bound-error-method.stderr b/src/test/ui/regions/regions-early-bound-error-method.stderr
index 7b9f2c9503b2f..2e5f55f8742cc 100644
--- a/src/test/ui/regions/regions-early-bound-error-method.stderr
+++ b/src/test/ui/regions/regions-early-bound-error-method.stderr
@@ -17,4 +17,3 @@ LL |     fn or<'b,G:GetRef<'b>>(&self, g2: G) -> &'a isize {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/regions/regions-early-bound-error.stderr b/src/test/ui/regions/regions-early-bound-error.stderr
index a68355b78f54c..bc52f4bef7eaa 100644
--- a/src/test/ui/regions/regions-early-bound-error.stderr
+++ b/src/test/ui/regions/regions-early-bound-error.stderr
@@ -17,4 +17,3 @@ LL | fn get<'a,'b,G:GetRef<'a, isize>>(g1: G, b: &'b isize) -> &'b isize {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/regions/regions-escape-method.stderr b/src/test/ui/regions/regions-escape-method.stderr
index b93dd0d4c57c9..d867448e1372a 100644
--- a/src/test/ui/regions/regions-escape-method.stderr
+++ b/src/test/ui/regions/regions-escape-method.stderr
@@ -25,4 +25,3 @@ LL |     s.f(|p| p)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-escape-via-trait-or-not.stderr b/src/test/ui/regions/regions-escape-via-trait-or-not.stderr
index a6b165e2d4444..c8a02683d1000 100644
--- a/src/test/ui/regions/regions-escape-via-trait-or-not.stderr
+++ b/src/test/ui/regions/regions-escape-via-trait-or-not.stderr
@@ -25,4 +25,3 @@ LL |     with(|o| o)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-free-region-ordering-callee.stderr b/src/test/ui/regions/regions-free-region-ordering-callee.stderr
index 4648bf046bc77..49cf1dfc642da 100644
--- a/src/test/ui/regions/regions-free-region-ordering-callee.stderr
+++ b/src/test/ui/regions/regions-free-region-ordering-callee.stderr
@@ -22,4 +22,3 @@ LL |     let z: &'b usize = &*x;
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-free-region-ordering-caller.ast.stderr b/src/test/ui/regions/regions-free-region-ordering-caller.ast.stderr
index a33d3583552dc..9d6bae79ce5d8 100644
--- a/src/test/ui/regions/regions-free-region-ordering-caller.ast.stderr
+++ b/src/test/ui/regions/regions-free-region-ordering-caller.ast.stderr
@@ -29,4 +29,3 @@ LL |     let z: Option<&'a &'b usize> = None;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-free-region-ordering-caller1.nll.stderr b/src/test/ui/regions/regions-free-region-ordering-caller1.nll.stderr
index 539343a68294f..8042b1740b141 100644
--- a/src/test/ui/regions/regions-free-region-ordering-caller1.nll.stderr
+++ b/src/test/ui/regions/regions-free-region-ordering-caller1.nll.stderr
@@ -28,5 +28,5 @@ LL | }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0597, E0716.
+Some errors have detailed explanations: E0597, E0716.
 For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/ui/regions/regions-free-region-ordering-incorrect.stderr b/src/test/ui/regions/regions-free-region-ordering-incorrect.stderr
index 676e96a038b43..5fad6de2a62af 100644
--- a/src/test/ui/regions/regions-free-region-ordering-incorrect.stderr
+++ b/src/test/ui/regions/regions-free-region-ordering-incorrect.stderr
@@ -30,4 +30,3 @@ LL | |         }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-infer-call-3.stderr b/src/test/ui/regions/regions-infer-call-3.stderr
index 1d6dbdb2c7b57..151c8307a14f6 100644
--- a/src/test/ui/regions/regions-infer-call-3.stderr
+++ b/src/test/ui/regions/regions-infer-call-3.stderr
@@ -27,4 +27,3 @@ LL |     let z = with(|y| { select(x, y) });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-infer-contravariance-due-to-decl.stderr b/src/test/ui/regions/regions-infer-contravariance-due-to-decl.stderr
index f3a0358b90fb0..9374818960d36 100644
--- a/src/test/ui/regions/regions-infer-contravariance-due-to-decl.stderr
+++ b/src/test/ui/regions/regions-infer-contravariance-due-to-decl.stderr
@@ -12,4 +12,3 @@ LL |     let _: Contravariant<'long> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-infer-covariance-due-to-decl.stderr b/src/test/ui/regions/regions-infer-covariance-due-to-decl.stderr
index c3e2075fbc37e..cd0a18a892f20 100644
--- a/src/test/ui/regions/regions-infer-covariance-due-to-decl.stderr
+++ b/src/test/ui/regions/regions-infer-covariance-due-to-decl.stderr
@@ -11,4 +11,3 @@ LL |     let _: Covariant<'short> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-lifetime-bounds-on-fns.stderr b/src/test/ui/regions/regions-lifetime-bounds-on-fns.stderr
index 46200e4d84bcf..0c3c342728c01 100644
--- a/src/test/ui/regions/regions-lifetime-bounds-on-fns.stderr
+++ b/src/test/ui/regions/regions-lifetime-bounds-on-fns.stderr
@@ -27,5 +27,4 @@ LL |     let _: fn(&mut &isize, &mut &isize) = a;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0623.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/regions/regions-nested-fns.stderr b/src/test/ui/regions/regions-nested-fns.stderr
index 3cecd4ee83ca5..702254a0ac423 100644
--- a/src/test/ui/regions/regions-nested-fns.stderr
+++ b/src/test/ui/regions/regions-nested-fns.stderr
@@ -57,5 +57,3 @@ LL | fn nested<'x>(x: &'x isize) {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0312, E0495.
-For more information about an error, try `rustc --explain E0312`.
diff --git a/src/test/ui/regions/regions-normalize-in-where-clause-list.stderr b/src/test/ui/regions/regions-normalize-in-where-clause-list.stderr
index c44edf1f03bc3..912e118316271 100644
--- a/src/test/ui/regions/regions-normalize-in-where-clause-list.stderr
+++ b/src/test/ui/regions/regions-normalize-in-where-clause-list.stderr
@@ -23,4 +23,3 @@ LL | fn bar<'a, 'b>()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref-mut-ref.stderr b/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref-mut-ref.stderr
index aca3a1ed05728..ead448df930fe 100644
--- a/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref-mut-ref.stderr
+++ b/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref-mut-ref.stderr
@@ -10,4 +10,3 @@ LL |     &mut ***p
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref.stderr b/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref.stderr
index a9916dbe4f5ef..064e89ee001c1 100644
--- a/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref.stderr
+++ b/src/test/ui/regions/regions-reborrow-from-shorter-mut-ref.stderr
@@ -10,4 +10,3 @@ LL |     &mut **p
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-ret-borrowed-1.stderr b/src/test/ui/regions/regions-ret-borrowed-1.stderr
index 72e47cea094c5..403af2a9e6a44 100644
--- a/src/test/ui/regions/regions-ret-borrowed-1.stderr
+++ b/src/test/ui/regions/regions-ret-borrowed-1.stderr
@@ -25,4 +25,3 @@ LL |     with(|o| o)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-ret-borrowed.stderr b/src/test/ui/regions/regions-ret-borrowed.stderr
index ce0c429ccb247..5d1f26da6c783 100644
--- a/src/test/ui/regions/regions-ret-borrowed.stderr
+++ b/src/test/ui/regions/regions-ret-borrowed.stderr
@@ -25,4 +25,3 @@ LL |     with(|o| o)
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-return-ref-to-upvar-issue-17403.stderr b/src/test/ui/regions/regions-return-ref-to-upvar-issue-17403.stderr
index be441bc48082e..291b8367f7b75 100644
--- a/src/test/ui/regions/regions-return-ref-to-upvar-issue-17403.stderr
+++ b/src/test/ui/regions/regions-return-ref-to-upvar-issue-17403.stderr
@@ -27,4 +27,3 @@ LL |         let y = f();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/regions/regions-static-bound.ll.stderr b/src/test/ui/regions/regions-static-bound.ll.stderr
index d0dc554b6f34f..fc8cca929d389 100644
--- a/src/test/ui/regions/regions-static-bound.ll.stderr
+++ b/src/test/ui/regions/regions-static-bound.ll.stderr
@@ -30,5 +30,4 @@ LL |     static_id_indirect(&v);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0312, E0621.
-For more information about an error, try `rustc --explain E0312`.
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/ui/regions/regions-trait-object-subtyping.stderr b/src/test/ui/regions/regions-trait-object-subtyping.stderr
index 3b30ddd16ccc1..f2d2b37d90726 100644
--- a/src/test/ui/regions/regions-trait-object-subtyping.stderr
+++ b/src/test/ui/regions/regions-trait-object-subtyping.stderr
@@ -61,5 +61,5 @@ LL | fn foo4<'a:'b,'b>(x: Wrapper<&'a mut Dummy>) -> Wrapper<&'b mut Dummy> {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0478, E0495.
+Some errors have detailed explanations: E0308, E0478.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr b/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr
index e135007604b86..309106e856a98 100644
--- a/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr
+++ b/src/test/ui/regions/regions-variance-contravariant-use-covariant-in-second-position.stderr
@@ -11,4 +11,3 @@ LL |     let _: S<'long, 'long> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-variance-contravariant-use-covariant.stderr b/src/test/ui/regions/regions-variance-contravariant-use-covariant.stderr
index e7c106cbbe3d1..44199881444ad 100644
--- a/src/test/ui/regions/regions-variance-contravariant-use-covariant.stderr
+++ b/src/test/ui/regions/regions-variance-contravariant-use-covariant.stderr
@@ -12,4 +12,3 @@ LL |     let _: Contravariant<'long> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-variance-covariant-use-contravariant.stderr b/src/test/ui/regions/regions-variance-covariant-use-contravariant.stderr
index e5e5261ba993f..22ba8838893d6 100644
--- a/src/test/ui/regions/regions-variance-covariant-use-contravariant.stderr
+++ b/src/test/ui/regions/regions-variance-covariant-use-contravariant.stderr
@@ -11,4 +11,3 @@ LL |     let _: Covariant<'short> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/regions/regions-variance-invariant-use-contravariant.stderr b/src/test/ui/regions/regions-variance-invariant-use-contravariant.stderr
index 2a2d5d019a129..a779b485ea701 100644
--- a/src/test/ui/regions/regions-variance-invariant-use-contravariant.stderr
+++ b/src/test/ui/regions/regions-variance-invariant-use-contravariant.stderr
@@ -11,4 +11,3 @@ LL |     let _: Invariant<'short> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/reject-specialized-drops-8142.stderr b/src/test/ui/reject-specialized-drops-8142.stderr
index 7dacc1f274025..08aca3bb14c26 100644
--- a/src/test/ui/reject-specialized-drops-8142.stderr
+++ b/src/test/ui/reject-specialized-drops-8142.stderr
@@ -111,5 +111,5 @@ LL | struct W<'l1, 'l2> { x: &'l1 i8, y: &'l2 u8 }
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0308, E0366, E0367, E0495.
+Some errors have detailed explanations: E0308, E0366, E0367.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/repeat_count.stderr b/src/test/ui/repeat_count.stderr
index df3227bfcde13..d4c2edf993ed4 100644
--- a/src/test/ui/repeat_count.stderr
+++ b/src/test/ui/repeat_count.stderr
@@ -60,5 +60,5 @@ LL |     let g = [0; G { g: () }];
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0308, E0435.
+Some errors have detailed explanations: E0308, E0435.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/repr/repr-align-assign.stderr b/src/test/ui/repr/repr-align-assign.stderr
index cc046e04de542..177bd81e8f265 100644
--- a/src/test/ui/repr/repr-align-assign.stderr
+++ b/src/test/ui/repr/repr-align-assign.stderr
@@ -12,4 +12,3 @@ LL | #[repr(align="8")]
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0693`.
diff --git a/src/test/ui/repr/repr-packed-contains-align.stderr b/src/test/ui/repr/repr-packed-contains-align.stderr
index df001d6b5f2a4..219516d8abc48 100644
--- a/src/test/ui/repr/repr-packed-contains-align.stderr
+++ b/src/test/ui/repr/repr-packed-contains-align.stderr
@@ -56,4 +56,3 @@ LL | | }
 
 error: aborting due to 8 previous errors
 
-For more information about this error, try `rustc --explain E0588`.
diff --git a/src/test/ui/repr/repr-transparent-other-items.stderr b/src/test/ui/repr/repr-transparent-other-items.stderr
index c3fb1d9e21e6f..24fa309a2fb69 100644
--- a/src/test/ui/repr/repr-transparent-other-items.stderr
+++ b/src/test/ui/repr/repr-transparent-other-items.stderr
@@ -65,5 +65,5 @@ LL | enum Void {}
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0084, E0517.
+Some errors have detailed explanations: E0084, E0517.
 For more information about an error, try `rustc --explain E0084`.
diff --git a/src/test/ui/repr/repr-transparent.stderr b/src/test/ui/repr/repr-transparent.stderr
index 2ecee838be146..2542a842fe8a9 100644
--- a/src/test/ui/repr/repr-transparent.stderr
+++ b/src/test/ui/repr/repr-transparent.stderr
@@ -68,5 +68,5 @@ LL | struct GenericAlign<T>(ZstAlign32<T>, u32);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0690, E0691.
+Some errors have detailed explanations: E0690, E0691.
 For more information about an error, try `rustc --explain E0690`.
diff --git a/src/test/ui/resolve/enums-are-namespaced-xc.stderr b/src/test/ui/resolve/enums-are-namespaced-xc.stderr
index a0771ed9dcad9..3e812c2694d03 100644
--- a/src/test/ui/resolve/enums-are-namespaced-xc.stderr
+++ b/src/test/ui/resolve/enums-are-namespaced-xc.stderr
@@ -30,5 +30,5 @@ LL | use namespaced_enums::Foo::C;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0422, E0425.
+Some errors have detailed explanations: E0422, E0425.
 For more information about an error, try `rustc --explain E0422`.
diff --git a/src/test/ui/resolve/issue-16058.stderr b/src/test/ui/resolve/issue-16058.stderr
index 9766f8f1412b6..64177ac2a8310 100644
--- a/src/test/ui/resolve/issue-16058.stderr
+++ b/src/test/ui/resolve/issue-16058.stderr
@@ -14,4 +14,3 @@ LL | use std::thread::Result;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/resolve/issue-21221-1.stderr b/src/test/ui/resolve/issue-21221-1.stderr
index 925923f92be4e..d00d87393aab6 100644
--- a/src/test/ui/resolve/issue-21221-1.stderr
+++ b/src/test/ui/resolve/issue-21221-1.stderr
@@ -47,5 +47,5 @@ LL | use std::ops::Div;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0405, E0412.
+Some errors have detailed explanations: E0405, E0412.
 For more information about an error, try `rustc --explain E0405`.
diff --git a/src/test/ui/resolve/issue-2356.stderr b/src/test/ui/resolve/issue-2356.stderr
index fb4acaa141e35..01dff5dd82fd4 100644
--- a/src/test/ui/resolve/issue-2356.stderr
+++ b/src/test/ui/resolve/issue-2356.stderr
@@ -108,5 +108,5 @@ LL |     self += 1;
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0424, E0425.
+Some errors have detailed explanations: E0424, E0425.
 For more information about an error, try `rustc --explain E0424`.
diff --git a/src/test/ui/resolve/issue-5035.stderr b/src/test/ui/resolve/issue-5035.stderr
index 68d35f3b5fefb..96befdbe07339 100644
--- a/src/test/ui/resolve/issue-5035.stderr
+++ b/src/test/ui/resolve/issue-5035.stderr
@@ -17,5 +17,5 @@ LL | impl K for isize {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0404, E0432.
+Some errors have detailed explanations: E0404, E0432.
 For more information about an error, try `rustc --explain E0404`.
diff --git a/src/test/ui/resolve/levenshtein.stderr b/src/test/ui/resolve/levenshtein.stderr
index cddfe4e7ff55a..7af2cdf7b5736 100644
--- a/src/test/ui/resolve/levenshtein.stderr
+++ b/src/test/ui/resolve/levenshtein.stderr
@@ -48,5 +48,5 @@ LL |     let b: m::first = m::second; // Misspelled item in module.
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0412, E0425.
+Some errors have detailed explanations: E0412, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/resolve/privacy-enum-ctor.stderr b/src/test/ui/resolve/privacy-enum-ctor.stderr
index 75d9c97513d31..a1a8714ab3f38 100644
--- a/src/test/ui/resolve/privacy-enum-ctor.stderr
+++ b/src/test/ui/resolve/privacy-enum-ctor.stderr
@@ -266,5 +266,5 @@ LL |     let _: E = E::Unit;
 
 error: aborting due to 23 previous errors
 
-Some errors occurred: E0308, E0412, E0423, E0603, E0618.
+Some errors have detailed explanations: E0308, E0412, E0423, E0603, E0618.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/resolve/privacy-struct-ctor.stderr b/src/test/ui/resolve/privacy-struct-ctor.stderr
index 519e74d9f6315..9bf7d19117448 100644
--- a/src/test/ui/resolve/privacy-struct-ctor.stderr
+++ b/src/test/ui/resolve/privacy-struct-ctor.stderr
@@ -67,5 +67,5 @@ LL |     xcrate::m::n::Z;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0423, E0603.
+Some errors have detailed explanations: E0423, E0603.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/resolve/resolve-assoc-suggestions.stderr b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
index f2e1d72e7a351..fd97ce09d4a70 100644
--- a/src/test/ui/resolve/resolve-assoc-suggestions.stderr
+++ b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
@@ -54,5 +54,5 @@ LL |         method;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0412, E0425, E0531.
+Some errors have detailed explanations: E0412, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/resolve/resolve-bad-visibility.stderr b/src/test/ui/resolve/resolve-bad-visibility.stderr
index 32b85f202f1da..b8004a48a6777 100644
--- a/src/test/ui/resolve/resolve-bad-visibility.stderr
+++ b/src/test/ui/resolve/resolve-bad-visibility.stderr
@@ -30,5 +30,3 @@ LL | pub(in too_soon) struct H;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0577, E0578.
-For more information about an error, try `rustc --explain E0577`.
diff --git a/src/test/ui/resolve/resolve-inconsistent-binding-mode.stderr b/src/test/ui/resolve/resolve-inconsistent-binding-mode.stderr
index a14d3d67b10a3..6f660872f5e58 100644
--- a/src/test/ui/resolve/resolve-inconsistent-binding-mode.stderr
+++ b/src/test/ui/resolve/resolve-inconsistent-binding-mode.stderr
@@ -49,5 +49,5 @@ LL |       Opts::A(ref mut i) | Opts::B(ref i) => {}
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0308, E0409.
+Some errors have detailed explanations: E0308, E0409.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/resolve/resolve-primitive-fallback.stderr b/src/test/ui/resolve/resolve-primitive-fallback.stderr
index 963bab43551c4..92c2a03298381 100644
--- a/src/test/ui/resolve/resolve-primitive-fallback.stderr
+++ b/src/test/ui/resolve/resolve-primitive-fallback.stderr
@@ -18,5 +18,5 @@ LL |     std::mem::size_of(u16);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0061, E0412, E0423.
+Some errors have detailed explanations: E0061, E0412, E0423.
 For more information about an error, try `rustc --explain E0061`.
diff --git a/src/test/ui/resolve/resolve-self-in-impl-2.stderr b/src/test/ui/resolve/resolve-self-in-impl-2.stderr
index 765f150ebc745..3791fe90a6bae 100644
--- a/src/test/ui/resolve/resolve-self-in-impl-2.stderr
+++ b/src/test/ui/resolve/resolve-self-in-impl-2.stderr
@@ -12,5 +12,5 @@ LL | impl Self::N for S {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0405, E0411.
+Some errors have detailed explanations: E0405, E0411.
 For more information about an error, try `rustc --explain E0405`.
diff --git a/src/test/ui/resolve/token-error-correct-3.stderr b/src/test/ui/resolve/token-error-correct-3.stderr
index 52a3117ff3ac1..5e965e0952c53 100644
--- a/src/test/ui/resolve/token-error-correct-3.stderr
+++ b/src/test/ui/resolve/token-error-correct-3.stderr
@@ -35,5 +35,5 @@ LL |             fs::create_dir_all(path.as_ref()).map(|()| true)
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0308, E0425.
+Some errors have detailed explanations: E0308, E0425.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/resolve/tuple-struct-alias.stderr b/src/test/ui/resolve/tuple-struct-alias.stderr
index fc701b1644d1d..02af357a2c32c 100644
--- a/src/test/ui/resolve/tuple-struct-alias.stderr
+++ b/src/test/ui/resolve/tuple-struct-alias.stderr
@@ -16,5 +16,5 @@ LL |         A(..) => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0423, E0532.
+Some errors have detailed explanations: E0423, E0532.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
index 70cabcbeb60b8..c86a6d70344cc 100644
--- a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
+++ b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
@@ -14,5 +14,5 @@ LL | fn g<F:Typedef(isize) -> isize>(x: F) {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0404, E0405.
+Some errors have detailed explanations: E0404, E0405.
 For more information about an error, try `rustc --explain E0404`.
diff --git a/src/test/ui/resolve/use_suggestion_placement.stderr b/src/test/ui/resolve/use_suggestion_placement.stderr
index 8d2fdd530f10e..258b989387c50 100644
--- a/src/test/ui/resolve/use_suggestion_placement.stderr
+++ b/src/test/ui/resolve/use_suggestion_placement.stderr
@@ -32,5 +32,5 @@ LL | use std::collections::hash_map::HashMap;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0412, E0425.
+Some errors have detailed explanations: E0412, E0425.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr b/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr
index d6a89006bc0fb..9d53e6d7887df 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr
@@ -18,4 +18,3 @@ LL |         *x += 1;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
index 5106618af64d0..286ae09249af5 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
@@ -18,4 +18,3 @@ LL |         *x += 1;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr
index a6f2f3ec30968..5eace3d263d46 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr
@@ -18,4 +18,3 @@ LL |             *n += 1;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
index b6424f842648f..75738c2b5e6f2 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr
@@ -18,4 +18,3 @@ LL |             *n += 1;
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/rfc-2008-non-exhaustive/struct.stderr b/src/test/ui/rfc-2008-non-exhaustive/struct.stderr
index ecfad88a82552..96040f11b525f 100644
--- a/src/test/ui/rfc-2008-non-exhaustive/struct.stderr
+++ b/src/test/ui/rfc-2008-non-exhaustive/struct.stderr
@@ -60,5 +60,5 @@ LL |     let UnitStruct { } = us;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0423, E0603, E0638, E0639.
+Some errors have detailed explanations: E0423, E0603, E0638, E0639.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/rfc-2008-non-exhaustive/variant.stderr b/src/test/ui/rfc-2008-non-exhaustive/variant.stderr
index edfca78915017..d9d6ea21b8bd4 100644
--- a/src/test/ui/rfc-2008-non-exhaustive/variant.stderr
+++ b/src/test/ui/rfc-2008-non-exhaustive/variant.stderr
@@ -48,5 +48,5 @@ LL |     if let NonExhaustiveVariants::Struct { field } = variant_struct {
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0603, E0638, E0639.
+Some errors have detailed explanations: E0603, E0638, E0639.
 For more information about an error, try `rustc --explain E0603`.
diff --git a/src/test/ui/rfc-2093-infer-outlives/regions-struct-not-wf.stderr b/src/test/ui/rfc-2093-infer-outlives/regions-struct-not-wf.stderr
index 8130f5de5587d..5a11c5fb95fef 100644
--- a/src/test/ui/rfc-2093-infer-outlives/regions-struct-not-wf.stderr
+++ b/src/test/ui/rfc-2093-infer-outlives/regions-struct-not-wf.stderr
@@ -45,5 +45,5 @@ LL | impl<'a, 'b, T> Trait1<'a, 'b, T> for u32 {
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0309, E0491.
+Some errors have detailed explanations: E0309, E0491.
 For more information about an error, try `rustc --explain E0309`.
diff --git a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr
index d65edc6f7e247..f8c0a1f3bff34 100644
--- a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr
+++ b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr
@@ -36,5 +36,5 @@ LL |     fn iter<'a>(&'a self) -> Self::Iter<'undeclared>;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0109, E0261.
+Some errors have detailed explanations: E0109, E0261.
 For more information about an error, try `rustc --explain E0109`.
diff --git a/src/test/ui/rust-2018/uniform-paths/macro-rules.stderr b/src/test/ui/rust-2018/uniform-paths/macro-rules.stderr
index e1000e588fa0c..f1b5e0c5efaac 100644
--- a/src/test/ui/rust-2018/uniform-paths/macro-rules.stderr
+++ b/src/test/ui/rust-2018/uniform-paths/macro-rules.stderr
@@ -30,5 +30,5 @@ LL |     macro legacy_macro() {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0364, E0659.
+Some errors have detailed explanations: E0364, E0659.
 For more information about an error, try `rustc --explain E0364`.
diff --git a/src/test/ui/self/self_type_keyword-2.stderr b/src/test/ui/self/self_type_keyword-2.stderr
index eedec6896f474..359410bc1cd6a 100644
--- a/src/test/ui/self/self_type_keyword-2.stderr
+++ b/src/test/ui/self/self_type_keyword-2.stderr
@@ -24,5 +24,4 @@ LL |         Foo { x: Self } => (),
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0432, E0531.
-For more information about an error, try `rustc --explain E0432`.
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/ui/shift-various-bad-types.stderr b/src/test/ui/shift-various-bad-types.stderr
index 1bcff65ad754f..8ffc0f1ea08cc 100644
--- a/src/test/ui/shift-various-bad-types.stderr
+++ b/src/test/ui/shift-various-bad-types.stderr
@@ -30,5 +30,5 @@ LL |     let _: i32 = 22_i64 >> 1_i32;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic-saturating.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic-saturating.stderr
index 0e88540bcc8e5..e10ac2e1192c1 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic-saturating.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic-saturating.stderr
@@ -12,4 +12,3 @@ LL |         simd_saturating_sub(z, z);
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic.stderr
index 27493950af0c6..014db52504fc8 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-arithmetic.stderr
@@ -84,4 +84,3 @@ LL |         simd_xor(z, z);
 
 error: aborting due to 14 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-bitmask.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-bitmask.stderr
index d016838d098d4..f9135d1cbfeb5 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-bitmask.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-bitmask.stderr
@@ -30,4 +30,3 @@ LL |         let _: u128 = simd_bitmask(m64);
 
 error: aborting due to 5 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-cast.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-cast.stderr
index 6e33e3b30f505..333f92a40a871 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-cast.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-cast.stderr
@@ -24,4 +24,3 @@ LL |         simd_cast::<_, i32x8>(x);
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-comparison.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-comparison.stderr
index d8da2e5ee5788..cea319f1bc86b 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-comparison.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-comparison.stderr
@@ -108,4 +108,3 @@ LL |         simd_ge::<_, i16x8>(x, x);
 
 error: aborting due to 18 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-elements.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-elements.stderr
index 2f8ffb6035e53..3a84567b53a40 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-elements.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-elements.stderr
@@ -90,4 +90,3 @@ LL |         simd_shuffle8::<_, i32x2>(x, x, [0; 8]);
 
 error: aborting due to 15 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-reduction.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-reduction.stderr
index b56de9613ddb4..144571cb26353 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-reduction.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-reduction.stderr
@@ -72,4 +72,3 @@ LL |     simd_reduce_mul_ordered(z, x);
 
 error: aborting due to 12 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-select.stderr b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-select.stderr
index a46352c730802..e03e396fdf40d 100644
--- a/src/test/ui/simd-intrinsic/simd-intrinsic-generic-select.stderr
+++ b/src/test/ui/simd-intrinsic/simd-intrinsic-generic-select.stderr
@@ -48,4 +48,3 @@ LL |         simd_select_bitmask("x", x, x);
 
 error: aborting due to 8 previous errors
 
-For more information about this error, try `rustc --explain E0511`.
diff --git a/src/test/ui/simd-type.stderr b/src/test/ui/simd-type.stderr
index 48b9916e89d98..0c4242f46b786 100644
--- a/src/test/ui/simd-type.stderr
+++ b/src/test/ui/simd-type.stderr
@@ -12,5 +12,5 @@ LL | struct i64f64(i64, f64);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0075, E0076.
+Some errors have detailed explanations: E0075, E0076.
 For more information about an error, try `rustc --explain E0075`.
diff --git a/src/test/ui/span/E0493.stderr b/src/test/ui/span/E0493.stderr
index d05e89e257f45..7e164ba9681c6 100644
--- a/src/test/ui/span/E0493.stderr
+++ b/src/test/ui/span/E0493.stderr
@@ -6,4 +6,3 @@ LL | const F : Foo = (Foo { a : 0 }, Foo { a : 1 }).1;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0493`.
diff --git a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr
index 0a9bc3ac51c65..8fceef64c8cf2 100644
--- a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr
+++ b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr
@@ -84,5 +84,5 @@ LL |     *x.y_mut() = 3;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0499, E0596.
+Some errors have detailed explanations: E0499, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr
index 63baa7c8cb528..5f337712b4b24 100644
--- a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr
+++ b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr
@@ -86,5 +86,5 @@ LL |     *x.y_mut() = 3;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0499, E0596.
+Some errors have detailed explanations: E0499, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr
index 4e2ab59f82245..51b726137825b 100644
--- a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr
+++ b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr
@@ -47,5 +47,5 @@ LL |         foo(f);
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0499, E0505, E0507, E0596.
+Some errors have detailed explanations: E0499, E0505, E0507, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr
index a61ee8334afff..7855c8ed46bd9 100644
--- a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr
+++ b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr
@@ -46,5 +46,5 @@ LL |         foo(f);
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0499, E0504, E0507, E0596.
+Some errors have detailed explanations: E0499, E0504, E0507, E0596.
 For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/span/impl-wrong-item-for-trait.stderr b/src/test/ui/span/impl-wrong-item-for-trait.stderr
index 8e08d3690e660..81409aac2897d 100644
--- a/src/test/ui/span/impl-wrong-item-for-trait.stderr
+++ b/src/test/ui/span/impl-wrong-item-for-trait.stderr
@@ -68,5 +68,5 @@ LL | impl Debug for FooTypeForMethod {
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0046, E0323, E0324, E0325, E0437.
+Some errors have detailed explanations: E0046, E0323, E0324, E0325, E0437.
 For more information about an error, try `rustc --explain E0046`.
diff --git a/src/test/ui/span/issue-27522.stderr b/src/test/ui/span/issue-27522.stderr
index c99231a5336b6..46f424b1927b1 100644
--- a/src/test/ui/span/issue-27522.stderr
+++ b/src/test/ui/span/issue-27522.stderr
@@ -9,4 +9,3 @@ LL |     fn handler(self: &SomeType);
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0307`.
diff --git a/src/test/ui/span/issue-34264.stderr b/src/test/ui/span/issue-34264.stderr
index c5b6245572c67..295b8c6f67f35 100644
--- a/src/test/ui/span/issue-34264.stderr
+++ b/src/test/ui/span/issue-34264.stderr
@@ -45,5 +45,5 @@ LL |     bar(1, 2, 3);
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0061, E0308.
+Some errors have detailed explanations: E0061, E0308.
 For more information about an error, try `rustc --explain E0061`.
diff --git a/src/test/ui/span/regions-escape-loop-via-vec.nll.stderr b/src/test/ui/span/regions-escape-loop-via-vec.nll.stderr
index 284981e934195..b47250db723fe 100644
--- a/src/test/ui/span/regions-escape-loop-via-vec.nll.stderr
+++ b/src/test/ui/span/regions-escape-loop-via-vec.nll.stderr
@@ -45,5 +45,5 @@ LL |         x += 1;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0503, E0597.
+Some errors have detailed explanations: E0503, E0597.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/span/regions-escape-loop-via-vec.stderr b/src/test/ui/span/regions-escape-loop-via-vec.stderr
index 1d604b58d7e79..9e46f86510aeb 100644
--- a/src/test/ui/span/regions-escape-loop-via-vec.stderr
+++ b/src/test/ui/span/regions-escape-loop-via-vec.stderr
@@ -37,5 +37,5 @@ LL |         x += 1;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0503, E0506, E0597.
+Some errors have detailed explanations: E0503, E0506, E0597.
 For more information about an error, try `rustc --explain E0503`.
diff --git a/src/test/ui/span/send-is-not-static-std-sync.nll.stderr b/src/test/ui/span/send-is-not-static-std-sync.nll.stderr
index 93473a86b5a59..d00b157d389ef 100644
--- a/src/test/ui/span/send-is-not-static-std-sync.nll.stderr
+++ b/src/test/ui/span/send-is-not-static-std-sync.nll.stderr
@@ -68,5 +68,5 @@ LL | }
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0505, E0597.
+Some errors have detailed explanations: E0505, E0597.
 For more information about an error, try `rustc --explain E0505`.
diff --git a/src/test/ui/span/send-is-not-static-std-sync.stderr b/src/test/ui/span/send-is-not-static-std-sync.stderr
index aa9e1c2de2212..e3024875b94ba 100644
--- a/src/test/ui/span/send-is-not-static-std-sync.stderr
+++ b/src/test/ui/span/send-is-not-static-std-sync.stderr
@@ -57,5 +57,5 @@ LL |     drop(y);
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0505, E0597.
+Some errors have detailed explanations: E0505, E0597.
 For more information about an error, try `rustc --explain E0505`.
diff --git a/src/test/ui/span/visibility-ty-params.stderr b/src/test/ui/span/visibility-ty-params.stderr
index ddc13bb1c76ae..cdbede3c197e3 100644
--- a/src/test/ui/span/visibility-ty-params.stderr
+++ b/src/test/ui/span/visibility-ty-params.stderr
@@ -20,4 +20,3 @@ LL | m!{ S<u8> }
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0577`.
diff --git a/src/test/ui/specialization/specialization-overlap-hygiene.stderr b/src/test/ui/specialization/specialization-overlap-hygiene.stderr
index 6adf16de4621a..ed99aa3102df9 100644
--- a/src/test/ui/specialization/specialization-overlap-hygiene.stderr
+++ b/src/test/ui/specialization/specialization-overlap-hygiene.stderr
@@ -9,4 +9,3 @@ LL |    fn f() {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr b/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr
index 2bc544d107da0..d683d0895301f 100644
--- a/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr
+++ b/src/test/ui/stability-attribute/stability-attribute-sanity-2.stderr
@@ -18,5 +18,5 @@ LL | #[unstable(feature = "a", issue = "no")]
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0538, E0541, E0545.
+Some errors have detailed explanations: E0538, E0541.
 For more information about an error, try `rustc --explain E0538`.
diff --git a/src/test/ui/stability-attribute/stability-attribute-sanity.stderr b/src/test/ui/stability-attribute/stability-attribute-sanity.stderr
index 5343e3bd537f3..d9a5448bdd8af 100644
--- a/src/test/ui/stability-attribute/stability-attribute-sanity.stderr
+++ b/src/test/ui/stability-attribute/stability-attribute-sanity.stderr
@@ -102,5 +102,4 @@ LL | fn deprecated_without_unstable_or_stable() { }
 
 error: aborting due to 17 previous errors
 
-Some errors occurred: E0539, E0540, E0541, E0542, E0544, E0546, E0547, E0549, E0553.
-For more information about an error, try `rustc --explain E0539`.
+For more information about this error, try `rustc --explain E0541`.
diff --git a/src/test/ui/static/static-closures.stderr b/src/test/ui/static/static-closures.stderr
index 99235e26e15e7..ced78c03e09d6 100644
--- a/src/test/ui/static/static-closures.stderr
+++ b/src/test/ui/static/static-closures.stderr
@@ -6,4 +6,3 @@ LL |     static || {};
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0697`.
diff --git a/src/test/ui/static/static-drop-scope.nll.stderr b/src/test/ui/static/static-drop-scope.nll.stderr
index df6383b4fc222..8a23dad1ba3ea 100644
--- a/src/test/ui/static/static-drop-scope.nll.stderr
+++ b/src/test/ui/static/static-drop-scope.nll.stderr
@@ -68,5 +68,4 @@ LL | const EARLY_DROP_C_OPTION_CONSTANT: i32 = (HELPER, 0).1;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0493, E0716.
-For more information about an error, try `rustc --explain E0493`.
+For more information about this error, try `rustc --explain E0716`.
diff --git a/src/test/ui/static/static-drop-scope.stderr b/src/test/ui/static/static-drop-scope.stderr
index 3e3032eb4fb60..9793a1db57f23 100644
--- a/src/test/ui/static/static-drop-scope.stderr
+++ b/src/test/ui/static/static-drop-scope.stderr
@@ -68,5 +68,4 @@ LL | const EARLY_DROP_C_OPTION_CONSTANT: i32 = (HELPER, 0).1;
 
 error: aborting due to 10 previous errors
 
-Some errors occurred: E0493, E0597.
-For more information about an error, try `rustc --explain E0493`.
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/static/static-mut-not-constant.stderr b/src/test/ui/static/static-mut-not-constant.stderr
index d2c6ba6a2f85a..3560be0e29e43 100644
--- a/src/test/ui/static/static-mut-not-constant.stderr
+++ b/src/test/ui/static/static-mut-not-constant.stderr
@@ -12,5 +12,5 @@ LL | static mut a: Box<isize> = box 3;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0010, E0019.
+Some errors have detailed explanations: E0010, E0019.
 For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/ui/static/static-reference-to-fn-2.nll.stderr b/src/test/ui/static/static-reference-to-fn-2.nll.stderr
index 07c8b48eb1d90..26f214b9781a3 100644
--- a/src/test/ui/static/static-reference-to-fn-2.nll.stderr
+++ b/src/test/ui/static/static-reference-to-fn-2.nll.stderr
@@ -43,5 +43,5 @@ LL | |     }
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0515, E0716.
+Some errors have detailed explanations: E0515, E0716.
 For more information about an error, try `rustc --explain E0515`.
diff --git a/src/test/ui/str/str-array-assignment.stderr b/src/test/ui/str/str-array-assignment.stderr
index 87809d212d79d..ecd5fb4412967 100644
--- a/src/test/ui/str/str-array-assignment.stderr
+++ b/src/test/ui/str/str-array-assignment.stderr
@@ -48,5 +48,5 @@ LL |   let w: &str = s[..2];
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/structs/struct-field-cfg.stderr b/src/test/ui/structs/struct-field-cfg.stderr
index 565866a682ada..29bad31ef969f 100644
--- a/src/test/ui/structs/struct-field-cfg.stderr
+++ b/src/test/ui/structs/struct-field-cfg.stderr
@@ -26,5 +26,5 @@ LL |     let Foo { present: (), #[cfg(all())] absent: () } = foo;
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0026, E0027, E0063, E0560.
+Some errors have detailed explanations: E0026, E0027, E0063, E0560.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/structs/struct-pat-derived-error.stderr b/src/test/ui/structs/struct-pat-derived-error.stderr
index 92a88defc52de..673715cd3ef6b 100644
--- a/src/test/ui/structs/struct-pat-derived-error.stderr
+++ b/src/test/ui/structs/struct-pat-derived-error.stderr
@@ -18,5 +18,5 @@ LL |         let A { x, y } = self.d;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0026, E0027, E0609.
+Some errors have detailed explanations: E0026, E0027, E0609.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/structs/struct-path-associated-type.stderr b/src/test/ui/structs/struct-path-associated-type.stderr
index f054bd3d29776..7cfbd7b720b34 100644
--- a/src/test/ui/structs/struct-path-associated-type.stderr
+++ b/src/test/ui/structs/struct-path-associated-type.stderr
@@ -54,5 +54,5 @@ LL |         S::A {} => {}
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0071, E0109, E0223.
+Some errors have detailed explanations: E0071, E0109, E0223.
 For more information about an error, try `rustc --explain E0071`.
diff --git a/src/test/ui/structs/struct-path-self.stderr b/src/test/ui/structs/struct-path-self.stderr
index d9e84acdb3cda..9eaa1f95bd0c1 100644
--- a/src/test/ui/structs/struct-path-self.stderr
+++ b/src/test/ui/structs/struct-path-self.stderr
@@ -36,5 +36,5 @@ LL |         let z = Self::<u8> {};
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0071, E0109.
+Some errors have detailed explanations: E0071, E0109.
 For more information about an error, try `rustc --explain E0071`.
diff --git a/src/test/ui/structs/structure-constructor-type-mismatch.stderr b/src/test/ui/structs/structure-constructor-type-mismatch.stderr
index 375678b7cee5c..62d872bb3e4d6 100644
--- a/src/test/ui/structs/structure-constructor-type-mismatch.stderr
+++ b/src/test/ui/structs/structure-constructor-type-mismatch.stderr
@@ -141,5 +141,5 @@ LL |         PairF::<u32> { .. } => {}
 
 error: aborting due to 13 previous errors
 
-Some errors occurred: E0107, E0308.
+Some errors have detailed explanations: E0107, E0308.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/substs-ppaux.normal.stderr b/src/test/ui/substs-ppaux.normal.stderr
index 567b4d9f4403e..123dd86b90549 100644
--- a/src/test/ui/substs-ppaux.normal.stderr
+++ b/src/test/ui/substs-ppaux.normal.stderr
@@ -51,5 +51,5 @@ LL |     fn bar<'a, T>() where T: 'a {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/substs-ppaux.verbose.stderr b/src/test/ui/substs-ppaux.verbose.stderr
index 86936475f8c14..9167346282bab 100644
--- a/src/test/ui/substs-ppaux.verbose.stderr
+++ b/src/test/ui/substs-ppaux.verbose.stderr
@@ -51,5 +51,5 @@ LL |     fn bar<'a, T>() where T: 'a {}
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/suggestions/borrow-for-loop-head.nll.stderr b/src/test/ui/suggestions/borrow-for-loop-head.nll.stderr
index 96dbdec7074a9..10287f59ccec9 100644
--- a/src/test/ui/suggestions/borrow-for-loop-head.nll.stderr
+++ b/src/test/ui/suggestions/borrow-for-loop-head.nll.stderr
@@ -21,5 +21,5 @@ LL |         for j in &a {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0382, E0505.
+Some errors have detailed explanations: E0382, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/suggestions/borrow-for-loop-head.stderr b/src/test/ui/suggestions/borrow-for-loop-head.stderr
index 17ac3fe86d083..ecf351284b45c 100644
--- a/src/test/ui/suggestions/borrow-for-loop-head.stderr
+++ b/src/test/ui/suggestions/borrow-for-loop-head.stderr
@@ -20,5 +20,5 @@ LL |         for j in &a {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0382, E0505.
+Some errors have detailed explanations: E0382, E0505.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/suggestions/suggest-ref-mut.stderr b/src/test/ui/suggestions/suggest-ref-mut.stderr
index 9f00967d84089..3dd9fbc6f1480 100644
--- a/src/test/ui/suggestions/suggest-ref-mut.stderr
+++ b/src/test/ui/suggestions/suggest-ref-mut.stderr
@@ -35,4 +35,3 @@ LL |         ref quo => { *quo = 32; },
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/suggestions/type-ascription-instead-of-path.stderr b/src/test/ui/suggestions/type-ascription-instead-of-path.stderr
index 1beb822d6a749..0f9b31fb52b4f 100644
--- a/src/test/ui/suggestions/type-ascription-instead-of-path.stderr
+++ b/src/test/ui/suggestions/type-ascription-instead-of-path.stderr
@@ -14,5 +14,5 @@ LL |     std:io::stdin();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0423, E0433.
+Some errors have detailed explanations: E0423, E0433.
 For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr b/src/test/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
index d0f9e1f7f7c8e..f86351c19922c 100644
--- a/src/test/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
+++ b/src/test/ui/suggestions/type-mismatch-struct-field-shorthand-2.stderr
@@ -26,5 +26,5 @@ LL |     let _ = RGB { r, g, c };
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0308, E0560.
+Some errors have detailed explanations: E0308, E0560.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/suggestions/use-type-argument-instead-of-assoc-type.stderr b/src/test/ui/suggestions/use-type-argument-instead-of-assoc-type.stderr
index 16e9fa90aa1a6..5e333187e3d36 100644
--- a/src/test/ui/suggestions/use-type-argument-instead-of-assoc-type.stderr
+++ b/src/test/ui/suggestions/use-type-argument-instead-of-assoc-type.stderr
@@ -27,5 +27,5 @@ LL |     i: Box<T<usize, usize, A = usize, C = usize, B=usize>>,
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0191.
+Some errors have detailed explanations: E0107, E0191.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/svh/svh-change-lit.stderr b/src/test/ui/svh/svh-change-lit.stderr
index 1b1501331b70c..bf51e31bfd668 100644
--- a/src/test/ui/svh/svh-change-lit.stderr
+++ b/src/test/ui/svh/svh-change-lit.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-change-significant-cfg.stderr b/src/test/ui/svh/svh-change-significant-cfg.stderr
index 2357a4387d414..c747464db753c 100644
--- a/src/test/ui/svh/svh-change-significant-cfg.stderr
+++ b/src/test/ui/svh/svh-change-significant-cfg.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-change-trait-bound.stderr b/src/test/ui/svh/svh-change-trait-bound.stderr
index 9fe949b2e7d15..b144b3b70da03 100644
--- a/src/test/ui/svh/svh-change-trait-bound.stderr
+++ b/src/test/ui/svh/svh-change-trait-bound.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-change-type-arg.stderr b/src/test/ui/svh/svh-change-type-arg.stderr
index a8b35d29c9970..473e4000d2d9c 100644
--- a/src/test/ui/svh/svh-change-type-arg.stderr
+++ b/src/test/ui/svh/svh-change-type-arg.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-change-type-ret.stderr b/src/test/ui/svh/svh-change-type-ret.stderr
index ebe44a7bee59d..ecb332fc5b5e9 100644
--- a/src/test/ui/svh/svh-change-type-ret.stderr
+++ b/src/test/ui/svh/svh-change-type-ret.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-change-type-static.stderr b/src/test/ui/svh/svh-change-type-static.stderr
index da09c3230a1cd..33f7e3c485acd 100644
--- a/src/test/ui/svh/svh-change-type-static.stderr
+++ b/src/test/ui/svh/svh-change-type-static.stderr
@@ -11,4 +11,3 @@ LL | extern crate b;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/svh/svh-use-trait.stderr b/src/test/ui/svh/svh-use-trait.stderr
index 4676143a06e2f..3230bb5c38457 100644
--- a/src/test/ui/svh/svh-use-trait.stderr
+++ b/src/test/ui/svh/svh-use-trait.stderr
@@ -11,4 +11,3 @@ LL | extern crate utb;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0460`.
diff --git a/src/test/ui/syntax-trait-polarity.stderr b/src/test/ui/syntax-trait-polarity.stderr
index 689e24bb8346e..b66db9feedbdc 100644
--- a/src/test/ui/syntax-trait-polarity.stderr
+++ b/src/test/ui/syntax-trait-polarity.stderr
@@ -36,5 +36,5 @@ LL | impl<T> !TestTrait for TestType2<T> {}
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0192, E0198.
+Some errors have detailed explanations: E0192, E0198.
 For more information about an error, try `rustc --explain E0192`.
diff --git a/src/test/ui/synthetic-param.stderr b/src/test/ui/synthetic-param.stderr
index b63a57a201838..bfafd8cbd72ec 100644
--- a/src/test/ui/synthetic-param.stderr
+++ b/src/test/ui/synthetic-param.stderr
@@ -18,4 +18,3 @@ LL |     Bar::<i8>::func::<u8>(42);
 
 error: aborting due to 3 previous errors
 
-For more information about this error, try `rustc --explain E0632`.
diff --git a/src/test/ui/thread-local-in-ctfe.nll.stderr b/src/test/ui/thread-local-in-ctfe.nll.stderr
index c5cca9d25c19b..33cef3ef4f774 100644
--- a/src/test/ui/thread-local-in-ctfe.nll.stderr
+++ b/src/test/ui/thread-local-in-ctfe.nll.stderr
@@ -52,5 +52,4 @@ LL |     A
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0625, E0712.
-For more information about an error, try `rustc --explain E0625`.
+For more information about this error, try `rustc --explain E0712`.
diff --git a/src/test/ui/thread-local-in-ctfe.stderr b/src/test/ui/thread-local-in-ctfe.stderr
index abeb2a3e0dee5..2b60ec1486cde 100644
--- a/src/test/ui/thread-local-in-ctfe.stderr
+++ b/src/test/ui/thread-local-in-ctfe.stderr
@@ -30,4 +30,3 @@ LL |     A
 
 error: aborting due to 5 previous errors
 
-For more information about this error, try `rustc --explain E0625`.
diff --git a/src/test/ui/thread-local-mutation.nll.stderr b/src/test/ui/thread-local-mutation.nll.stderr
index e5dc0e72edfc7..7f7738b5d6509 100644
--- a/src/test/ui/thread-local-mutation.nll.stderr
+++ b/src/test/ui/thread-local-mutation.nll.stderr
@@ -6,4 +6,3 @@ LL |     S = "after";
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/thread-local-mutation.stderr b/src/test/ui/thread-local-mutation.stderr
index 685e7c6585a0f..8f9022f4a4e51 100644
--- a/src/test/ui/thread-local-mutation.stderr
+++ b/src/test/ui/thread-local-mutation.stderr
@@ -6,4 +6,3 @@ LL |     S = "after";
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/tool-attributes/tool-attributes-misplaced-1.stderr b/src/test/ui/tool-attributes/tool-attributes-misplaced-1.stderr
index 1e9d1609f02b8..1c799b41c5a6c 100644
--- a/src/test/ui/tool-attributes/tool-attributes-misplaced-1.stderr
+++ b/src/test/ui/tool-attributes/tool-attributes-misplaced-1.stderr
@@ -36,5 +36,4 @@ LL |     rustfmt::skip;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0423, E0573.
-For more information about an error, try `rustc --explain E0423`.
+For more information about this error, try `rustc --explain E0423`.
diff --git a/src/test/ui/tool_lints.stderr b/src/test/ui/tool_lints.stderr
index 2484b10116f0e..de941604a9491 100644
--- a/src/test/ui/tool_lints.stderr
+++ b/src/test/ui/tool_lints.stderr
@@ -6,4 +6,3 @@ LL | #[warn(foo::bar)]
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0710`.
diff --git a/src/test/ui/traits/trait-alias-object.stderr b/src/test/ui/traits/trait-alias-object.stderr
index c6b61eae4a1be..353aea311e90a 100644
--- a/src/test/ui/traits/trait-alias-object.stderr
+++ b/src/test/ui/traits/trait-alias-object.stderr
@@ -14,5 +14,5 @@ LL |     let _: &dyn IteratorAlias = &vec![123].into_iter();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0038, E0191.
+Some errors have detailed explanations: E0038, E0191.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/traits/trait-as-struct-constructor.stderr b/src/test/ui/traits/trait-as-struct-constructor.stderr
index e1d54fbf8aa7b..434dcbc8736aa 100644
--- a/src/test/ui/traits/trait-as-struct-constructor.stderr
+++ b/src/test/ui/traits/trait-as-struct-constructor.stderr
@@ -6,4 +6,3 @@ LL |     TraitNotAStruct{ value: 0 };
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/traits/trait-impl-can-not-have-untraitful-items.stderr b/src/test/ui/traits/trait-impl-can-not-have-untraitful-items.stderr
index 84565bdaa135d..0abed79d38470 100644
--- a/src/test/ui/traits/trait-impl-can-not-have-untraitful-items.stderr
+++ b/src/test/ui/traits/trait-impl-can-not-have-untraitful-items.stderr
@@ -18,5 +18,5 @@ LL |     fn foo(&self) { }
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0407, E0437, E0438.
+Some errors have detailed explanations: E0407, E0437, E0438.
 For more information about an error, try `rustc --explain E0407`.
diff --git a/src/test/ui/traits/trait-impl-for-module.stderr b/src/test/ui/traits/trait-impl-for-module.stderr
index c62bcfca94de9..4a06cd777d49e 100644
--- a/src/test/ui/traits/trait-impl-for-module.stderr
+++ b/src/test/ui/traits/trait-impl-for-module.stderr
@@ -6,4 +6,3 @@ LL | impl A for a {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/traits/trait-impl-of-supertrait-has-wrong-lifetime-parameters.stderr b/src/test/ui/traits/trait-impl-of-supertrait-has-wrong-lifetime-parameters.stderr
index 4c63d6097758e..fb417b82d15ce 100644
--- a/src/test/ui/traits/trait-impl-of-supertrait-has-wrong-lifetime-parameters.stderr
+++ b/src/test/ui/traits/trait-impl-of-supertrait-has-wrong-lifetime-parameters.stderr
@@ -20,4 +20,3 @@ LL | impl<'a,'b> T2<'a, 'b> for S<'a, 'b> {
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/traits/trait-item-privacy.stderr b/src/test/ui/traits/trait-item-privacy.stderr
index 3bf5309ee7d0c..de699a69fa8bc 100644
--- a/src/test/ui/traits/trait-item-privacy.stderr
+++ b/src/test/ui/traits/trait-item-privacy.stderr
@@ -142,5 +142,5 @@ LL |         A = u8,
 
 error: aborting due to 15 previous errors
 
-Some errors occurred: E0038, E0223, E0599, E0624.
+Some errors have detailed explanations: E0038, E0223, E0599, E0624.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr b/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr
index 2570db0212aa1..9cf39584a8c1e 100644
--- a/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr
+++ b/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr
@@ -9,4 +9,3 @@ LL |     fn test(&self) { println!("two"); }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/traits/trait-object-macro-matcher.stderr b/src/test/ui/traits/trait-object-macro-matcher.stderr
index 3a6bf3dcc8ce8..57a529ebc5765 100644
--- a/src/test/ui/traits/trait-object-macro-matcher.stderr
+++ b/src/test/ui/traits/trait-object-macro-matcher.stderr
@@ -14,5 +14,4 @@ LL |     m!(Copy + Send + 'static);
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0038, E0224.
-For more information about an error, try `rustc --explain E0038`.
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/ui/traits/trait-object-vs-lifetime-2.stderr b/src/test/ui/traits/trait-object-vs-lifetime-2.stderr
index 70ad839b9af6c..057f587a7b630 100644
--- a/src/test/ui/traits/trait-object-vs-lifetime-2.stderr
+++ b/src/test/ui/traits/trait-object-vs-lifetime-2.stderr
@@ -6,4 +6,3 @@ LL |     'static +: 'static + Copy,
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0224`.
diff --git a/src/test/ui/traits/trait-object-vs-lifetime.stderr b/src/test/ui/traits/trait-object-vs-lifetime.stderr
index e0c52a72a0931..c13d0e3f29373 100644
--- a/src/test/ui/traits/trait-object-vs-lifetime.stderr
+++ b/src/test/ui/traits/trait-object-vs-lifetime.stderr
@@ -30,5 +30,4 @@ LL |     let _: S<'static +, 'static>;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0107, E0224.
-For more information about an error, try `rustc --explain E0107`.
+For more information about this error, try `rustc --explain E0107`.
diff --git a/src/test/ui/traits/trait-safety-trait-impl.stderr b/src/test/ui/traits/trait-safety-trait-impl.stderr
index c83a2cd71e553..5b29fd12ab5fd 100644
--- a/src/test/ui/traits/trait-safety-trait-impl.stderr
+++ b/src/test/ui/traits/trait-safety-trait-impl.stderr
@@ -12,5 +12,5 @@ LL | unsafe impl SafeTrait for u32 { }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0199, E0200.
+Some errors have detailed explanations: E0199, E0200.
 For more information about an error, try `rustc --explain E0199`.
diff --git a/src/test/ui/traits/trait-test-2.stderr b/src/test/ui/traits/trait-test-2.stderr
index 4d61ac67deda8..0e3446e0d231d 100644
--- a/src/test/ui/traits/trait-test-2.stderr
+++ b/src/test/ui/traits/trait-test-2.stderr
@@ -31,5 +31,5 @@ LL |     (box 10 as Box<bar>).dup();
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0038, E0107.
+Some errors have detailed explanations: E0038, E0107.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/traits/traits-inductive-overflow-supertrait-oibit.stderr b/src/test/ui/traits/traits-inductive-overflow-supertrait-oibit.stderr
index a91be8e69ac3a..87e7ba3e7efcf 100644
--- a/src/test/ui/traits/traits-inductive-overflow-supertrait-oibit.stderr
+++ b/src/test/ui/traits/traits-inductive-overflow-supertrait-oibit.stderr
@@ -19,5 +19,4 @@ LL | fn copy<T: Magic>(x: T) -> (T, T) { (x, x) }
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0568.
-For more information about an error, try `rustc --explain E0277`.
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/transmute/transmute-from-fn-item-types-error.stderr b/src/test/ui/transmute/transmute-from-fn-item-types-error.stderr
index d08078bcfbaea..1a6093343ab84 100644
--- a/src/test/ui/transmute/transmute-from-fn-item-types-error.stderr
+++ b/src/test/ui/transmute/transmute-from-fn-item-types-error.stderr
@@ -88,5 +88,5 @@ LL |     mem::transmute::<_, Option<fn()>>(Some(baz));
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0512, E0591.
+Some errors have detailed explanations: E0512, E0591.
 For more information about an error, try `rustc --explain E0512`.
diff --git a/src/test/ui/trivial-bounds/trivial-bounds-leak.stderr b/src/test/ui/trivial-bounds/trivial-bounds-leak.stderr
index 3de683e5661aa..46b4b2a878492 100644
--- a/src/test/ui/trivial-bounds/trivial-bounds-leak.stderr
+++ b/src/test/ui/trivial-bounds/trivial-bounds-leak.stderr
@@ -44,5 +44,5 @@ LL | fn generic_function<T: Foo>(t: T) {}
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0277, E0599.
+Some errors have detailed explanations: E0277, E0599.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/try-block/try-block-bad-lifetime.stderr b/src/test/ui/try-block/try-block-bad-lifetime.stderr
index a236cb90557b4..de1667d8832b7 100644
--- a/src/test/ui/try-block/try-block-bad-lifetime.stderr
+++ b/src/test/ui/try-block/try-block-bad-lifetime.stderr
@@ -48,5 +48,5 @@ LL |         let i_ptr = if let Err(i_ptr) = j { i_ptr } else { panic ! ("") };
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0382, E0506, E0597.
+Some errors have detailed explanations: E0382, E0506, E0597.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/try-block/try-block-bad-type.stderr b/src/test/ui/try-block/try-block-bad-type.stderr
index 07e7149793c14..bb3306c12a416 100644
--- a/src/test/ui/try-block/try-block-bad-type.stderr
+++ b/src/test/ui/try-block/try-block-bad-type.stderr
@@ -48,5 +48,5 @@ LL |     let res: i32 = try { 5 };
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0271, E0277.
+Some errors have detailed explanations: E0271, E0277.
 For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/ui/try-block/try-block-in-edition2015.stderr b/src/test/ui/try-block/try-block-in-edition2015.stderr
index c94e43131faf0..7034cdce7553d 100644
--- a/src/test/ui/try-block/try-block-in-edition2015.stderr
+++ b/src/test/ui/try-block/try-block-in-edition2015.stderr
@@ -21,4 +21,3 @@ LL |     let try_result: Option<_> = try {
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/try-block/try-block-maybe-bad-lifetime.stderr b/src/test/ui/try-block/try-block-maybe-bad-lifetime.stderr
index 665a6262d3ae7..1f0e09277ba97 100644
--- a/src/test/ui/try-block/try-block-maybe-bad-lifetime.stderr
+++ b/src/test/ui/try-block/try-block-maybe-bad-lifetime.stderr
@@ -36,5 +36,5 @@ LL |         do_something_with(j);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0382, E0506.
+Some errors have detailed explanations: E0382, E0506.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/type-alias-enum-variants-panic.stderr b/src/test/ui/type-alias-enum-variants-panic.stderr
index 3480d116383ee..24cf85f52783f 100644
--- a/src/test/ui/type-alias-enum-variants-panic.stderr
+++ b/src/test/ui/type-alias-enum-variants-panic.stderr
@@ -18,5 +18,4 @@ LL |     let Alias::Variant(..) = panic!();
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0164, E0533.
-For more information about an error, try `rustc --explain E0164`.
+For more information about this error, try `rustc --explain E0164`.
diff --git a/src/test/ui/type/type-ascription-precedence.stderr b/src/test/ui/type/type-ascription-precedence.stderr
index 992974eef6428..aecb0f8738785 100644
--- a/src/test/ui/type/type-ascription-precedence.stderr
+++ b/src/test/ui/type/type-ascription-precedence.stderr
@@ -68,5 +68,5 @@ LL |     (S .. S): S;
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0308, E0600, E0614.
+Some errors have detailed explanations: E0308, E0600, E0614.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type/type-ascription-with-fn-call.stderr b/src/test/ui/type/type-ascription-with-fn-call.stderr
index eeaca5300f9b6..624c817e33e32 100644
--- a/src/test/ui/type/type-ascription-with-fn-call.stderr
+++ b/src/test/ui/type/type-ascription-with-fn-call.stderr
@@ -11,4 +11,3 @@ LL |     f();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/type/type-check/assignment-expected-bool.stderr b/src/test/ui/type/type-check/assignment-expected-bool.stderr
index fed8b91346582..b636a71f3afe2 100644
--- a/src/test/ui/type/type-check/assignment-expected-bool.stderr
+++ b/src/test/ui/type/type-check/assignment-expected-bool.stderr
@@ -147,5 +147,5 @@ LL |     let _: usize = 0 = 0;
 
 error: aborting due to 13 previous errors
 
-Some errors occurred: E0070, E0308.
+Some errors have detailed explanations: E0070, E0308.
 For more information about an error, try `rustc --explain E0070`.
diff --git a/src/test/ui/type/type-check/issue-41314.stderr b/src/test/ui/type/type-check/issue-41314.stderr
index 3461ab4df60bb..c2bba98d10a83 100644
--- a/src/test/ui/type/type-check/issue-41314.stderr
+++ b/src/test/ui/type/type-check/issue-41314.stderr
@@ -14,5 +14,5 @@ LL |         X::Y { number } => {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0026, E0027.
+Some errors have detailed explanations: E0026, E0027.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/type/type-check/missing_trait_impl.stderr b/src/test/ui/type/type-check/missing_trait_impl.stderr
index b0e3c35c70567..2a158ab8564f3 100644
--- a/src/test/ui/type/type-check/missing_trait_impl.stderr
+++ b/src/test/ui/type/type-check/missing_trait_impl.stderr
@@ -20,5 +20,5 @@ LL |     x += x;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0368, E0369.
+Some errors have detailed explanations: E0368, E0369.
 For more information about an error, try `rustc --explain E0368`.
diff --git a/src/test/ui/type/type-dependent-def-issue-49241.stderr b/src/test/ui/type/type-dependent-def-issue-49241.stderr
index 5040b728c539a..25cae8d9e4954 100644
--- a/src/test/ui/type/type-dependent-def-issue-49241.stderr
+++ b/src/test/ui/type/type-dependent-def-issue-49241.stderr
@@ -12,5 +12,5 @@ LL |     let s: [u32; l] = v.into_iter().collect();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0435.
+Some errors have detailed explanations: E0080, E0435.
 For more information about an error, try `rustc --explain E0080`.
diff --git a/src/test/ui/type/type-parameter-defaults-referencing-Self-ppaux.stderr b/src/test/ui/type/type-parameter-defaults-referencing-Self-ppaux.stderr
index 7306929d712ab..0beb9e9eb4b03 100644
--- a/src/test/ui/type/type-parameter-defaults-referencing-Self-ppaux.stderr
+++ b/src/test/ui/type/type-parameter-defaults-referencing-Self-ppaux.stderr
@@ -20,5 +20,5 @@ LL |     let y = x as MyAdd<i32>;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0038, E0620.
+Some errors have detailed explanations: E0038, E0620.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/type/type-path-err-node-types.stderr b/src/test/ui/type/type-path-err-node-types.stderr
index 29a438a23c7ab..ed744478f26f8 100644
--- a/src/test/ui/type/type-path-err-node-types.stderr
+++ b/src/test/ui/type/type-path-err-node-types.stderr
@@ -24,5 +24,5 @@ LL |     nonexistent.nonexistent::<u8>();
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0412, E0425, E0433, E0576.
+Some errors have detailed explanations: E0412, E0425, E0433.
 For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/typeck/typeck-auto-trait-no-supertraits-2.stderr b/src/test/ui/typeck/typeck-auto-trait-no-supertraits-2.stderr
index 8755bcded9d2f..1184e30749fe0 100644
--- a/src/test/ui/typeck/typeck-auto-trait-no-supertraits-2.stderr
+++ b/src/test/ui/typeck/typeck-auto-trait-no-supertraits-2.stderr
@@ -6,4 +6,3 @@ LL | auto trait Magic : Sized where Option<Self> : Magic {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0568`.
diff --git a/src/test/ui/typeck/typeck-auto-trait-no-supertraits.stderr b/src/test/ui/typeck/typeck-auto-trait-no-supertraits.stderr
index 5a38883490959..7b45ca07b35c7 100644
--- a/src/test/ui/typeck/typeck-auto-trait-no-supertraits.stderr
+++ b/src/test/ui/typeck/typeck-auto-trait-no-supertraits.stderr
@@ -6,4 +6,3 @@ LL | auto trait Magic: Copy {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0568`.
diff --git a/src/test/ui/typeck/typeck-default-trait-impl-cross-crate-coherence.stderr b/src/test/ui/typeck/typeck-default-trait-impl-cross-crate-coherence.stderr
index 154b4042c681d..6518684496559 100644
--- a/src/test/ui/typeck/typeck-default-trait-impl-cross-crate-coherence.stderr
+++ b/src/test/ui/typeck/typeck-default-trait-impl-cross-crate-coherence.stderr
@@ -33,5 +33,5 @@ LL | impl DefaultedTrait for lib::Something<C> { }
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0117, E0321.
+Some errors have detailed explanations: E0117, E0321.
 For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr b/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
index 2187c61fabf15..1251d6eee80f0 100644
--- a/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
+++ b/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
@@ -103,5 +103,4 @@ LL |     fn dummy3(self: &&Bar<T>) {}
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0307, E0308.
-For more information about an error, try `rustc --explain E0307`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/ufcs/ufcs-partially-resolved.stderr b/src/test/ui/ufcs/ufcs-partially-resolved.stderr
index c399a32bc56b8..5ee8adaaf270f 100644
--- a/src/test/ui/ufcs/ufcs-partially-resolved.stderr
+++ b/src/test/ui/ufcs/ufcs-partially-resolved.stderr
@@ -200,5 +200,5 @@ LL |     <u8 as Dr>::X::N;
 
 error: aborting due to 32 previous errors
 
-Some errors occurred: E0223, E0433, E0575, E0576, E0599.
+Some errors have detailed explanations: E0223, E0433, E0599.
 For more information about an error, try `rustc --explain E0223`.
diff --git a/src/test/ui/ufcs/ufcs-qpath-self-mismatch.stderr b/src/test/ui/ufcs/ufcs-qpath-self-mismatch.stderr
index e3027eedbf909..610146954c985 100644
--- a/src/test/ui/ufcs/ufcs-qpath-self-mismatch.stderr
+++ b/src/test/ui/ufcs/ufcs-qpath-self-mismatch.stderr
@@ -20,5 +20,5 @@ LL |     <i32 as Add<i32>>::add(1, 2u32);
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0277, E0308.
+Some errors have detailed explanations: E0277, E0308.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.nll.stderr b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.nll.stderr
index 3e7f79040fe8a..296cba184b986 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.nll.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.nll.stderr
@@ -71,5 +71,4 @@ LL |     || set(&mut x);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0594, E0596.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
index e4aa54032e3f8..946a994350a13 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-immutable-capture.stderr
@@ -65,5 +65,5 @@ LL |     move || set(&mut x);
 
 error: aborting due to 8 previous errors
 
-Some errors occurred: E0594, E0595, E0596.
-For more information about an error, try `rustc --explain E0594`.
+Some errors have detailed explanations: E0595, E0596.
+For more information about an error, try `rustc --explain E0595`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct-1.stderr b/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct-1.stderr
index fa52e66fb0349..81095826f38ae 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct-1.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct-1.stderr
@@ -12,5 +12,5 @@ LL |     let x: Box<Bar()> = panic!();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0214.
+Some errors have detailed explanations: E0107, E0214.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct.stderr b/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct.stderr
index b34237937ee1c..3c78d9f9135cf 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-sugar-used-on-struct.stderr
@@ -12,5 +12,5 @@ LL | fn foo(b: Box<Bar()>) {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0214.
+Some errors have detailed explanations: E0107, E0214.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters-3.stderr b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters-3.stderr
index 3a9fff3831c61..62b3a25443055 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters-3.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters-3.stderr
@@ -12,5 +12,5 @@ LL | fn foo(_: &Three())
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0220.
+Some errors have detailed explanations: E0107, E0220.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters.stderr b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters.stderr
index 3f80197897c2a..b64fc61cc8568 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-number-number-type-parameters.stderr
@@ -12,5 +12,5 @@ LL | fn foo(_: Zero())
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0220.
+Some errors have detailed explanations: E0107, E0220.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-trait.stderr b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-trait.stderr
index a04062e7b9d3a..bd707a8508a7d 100644
--- a/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-trait.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closure-sugar-wrong-trait.stderr
@@ -12,5 +12,5 @@ LL | fn f<F:Trait(isize) -> isize>(x: F) {}
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0107, E0220.
+Some errors have detailed explanations: E0107, E0220.
 For more information about an error, try `rustc --explain E0107`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.nll.stderr b/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.nll.stderr
index 19cb2cb733814..706e59097d7ed 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.nll.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.nll.stderr
@@ -58,5 +58,5 @@ LL |     factorial = Some(Box::new(f));
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0506, E0597.
+Some errors have detailed explanations: E0506, E0597.
 For more information about an error, try `rustc --explain E0506`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.stderr b/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.stderr
index 47fe0ee72dc88..abd17ab79e139 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.stderr
@@ -26,5 +26,5 @@ LL |     let f = move |x: u32| -> u32 {
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0373, E0597.
+Some errors have detailed explanations: E0373, E0597.
 For more information about an error, try `rustc --explain E0373`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-infer-argument-types-two-region-pointers.stderr b/src/test/ui/unboxed-closures/unboxed-closures-infer-argument-types-two-region-pointers.stderr
index 526055ba04b65..728efadf4196e 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-infer-argument-types-two-region-pointers.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-infer-argument-types-two-region-pointers.stderr
@@ -23,4 +23,3 @@ LL | |     });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut-no-mut.stderr b/src/test/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut-no-mut.stderr
index c90c150749884..2b4ac41427939 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut-no-mut.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut-no-mut.stderr
@@ -18,5 +18,5 @@ LL |     tick2();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0595, E0596.
+Some errors have detailed explanations: E0595, E0596.
 For more information about an error, try `rustc --explain E0595`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.nll.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.nll.stderr
index 6bba38510b676..fef6c23a50130 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.nll.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.nll.stderr
@@ -42,4 +42,3 @@ LL | |     });
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
index 055a1748db627..14a77df04b63f 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutate-upvar.stderr
@@ -49,5 +49,4 @@ LL | |     });
 
 error: aborting due to 4 previous errors
 
-Some errors occurred: E0594, E0595.
-For more information about an error, try `rustc --explain E0594`.
+For more information about this error, try `rustc --explain E0595`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.ast.nll.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.ast.nll.stderr
index 3440edeadf9c1..a438ec2f5b941 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.ast.nll.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.ast.nll.stderr
@@ -17,4 +17,3 @@ LL | |     });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.mir.stderr b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.mir.stderr
index 3440edeadf9c1..a438ec2f5b941 100644
--- a/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.mir.stderr
+++ b/src/test/ui/unboxed-closures/unboxed-closures-mutated-upvar-from-fn-closure.mir.stderr
@@ -17,4 +17,3 @@ LL | |     });
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/underscore-lifetime/dyn-trait-underscore-in-struct.stderr b/src/test/ui/underscore-lifetime/dyn-trait-underscore-in-struct.stderr
index 1ea9c423e5a6f..b20c23ade2b78 100644
--- a/src/test/ui/underscore-lifetime/dyn-trait-underscore-in-struct.stderr
+++ b/src/test/ui/underscore-lifetime/dyn-trait-underscore-in-struct.stderr
@@ -12,5 +12,4 @@ LL |     x: Box<dyn Debug + '_>,
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0106, E0228.
-For more information about an error, try `rustc --explain E0106`.
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/underscore-lifetime/dyn-trait-underscore.stderr b/src/test/ui/underscore-lifetime/dyn-trait-underscore.stderr
index d0475bf08c38d..92e5ac282e4d6 100644
--- a/src/test/ui/underscore-lifetime/dyn-trait-underscore.stderr
+++ b/src/test/ui/underscore-lifetime/dyn-trait-underscore.stderr
@@ -24,4 +24,3 @@ LL |     Box::new(items.iter())
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/underscore-lifetime/in-binder.stderr b/src/test/ui/underscore-lifetime/in-binder.stderr
index fcd7eddb57605..1b936dd9aec2f 100644
--- a/src/test/ui/underscore-lifetime/in-binder.stderr
+++ b/src/test/ui/underscore-lifetime/in-binder.stderr
@@ -36,4 +36,3 @@ LL | fn foo<'_>() {
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/underscore-lifetime-binders.stderr b/src/test/ui/underscore-lifetime/underscore-lifetime-binders.stderr
index 104e63884777f..936e3ba55fea1 100644
--- a/src/test/ui/underscore-lifetime/underscore-lifetime-binders.stderr
+++ b/src/test/ui/underscore-lifetime/underscore-lifetime-binders.stderr
@@ -34,5 +34,4 @@ LL | fn foo2(_: &'_ u8, y: &'_ u8) -> &'_ u8 { y }
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0106, E0637.
-For more information about an error, try `rustc --explain E0106`.
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/underscore-lifetime/underscore-lifetime-elison-mismatch.stderr b/src/test/ui/underscore-lifetime/underscore-lifetime-elison-mismatch.stderr
index 76c14ccc14b45..21fdfcaef862e 100644
--- a/src/test/ui/underscore-lifetime/underscore-lifetime-elison-mismatch.stderr
+++ b/src/test/ui/underscore-lifetime/underscore-lifetime-elison-mismatch.stderr
@@ -8,4 +8,3 @@ LL | fn foo(x: &mut Vec<&'_ u8>, y: &'_ u8) { x.push(y); }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/underscore-lifetime/underscore-outlives-bounds.stderr b/src/test/ui/underscore-lifetime/underscore-outlives-bounds.stderr
index 4b38a26f957f9..6fa74d4e31034 100644
--- a/src/test/ui/underscore-lifetime/underscore-outlives-bounds.stderr
+++ b/src/test/ui/underscore-lifetime/underscore-outlives-bounds.stderr
@@ -6,4 +6,3 @@ LL | impl<'b: '_> Foo<'b> for i32 {}
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2015.stderr b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2015.stderr
index fe726cb49c737..eec8e4b846886 100644
--- a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2015.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2015.stderr
@@ -6,4 +6,3 @@ LL |     T: WithType<&u32>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2018.stderr b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2018.stderr
index fe726cb49c737..eec8e4b846886 100644
--- a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2018.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-ampersand.rust2018.stderr
@@ -6,4 +6,3 @@ LL |     T: WithType<&u32>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2015.stderr b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2015.stderr
index 95939fd6b7e03..d2c3e352045b6 100644
--- a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2015.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2015.stderr
@@ -6,4 +6,3 @@ LL |     T: WithRegion<'_>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2018.stderr b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2018.stderr
index 95939fd6b7e03..d2c3e352045b6 100644
--- a/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2018.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-inherent-impl-underscore.rust2018.stderr
@@ -6,4 +6,3 @@ LL |     T: WithRegion<'_>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2015.stderr b/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2015.stderr
index fbd14de21078b..586b2b6aeaf28 100644
--- a/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2015.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2015.stderr
@@ -6,4 +6,3 @@ LL |     T: WithType<&u32>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2018.stderr b/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2018.stderr
index fbd14de21078b..586b2b6aeaf28 100644
--- a/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2018.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-trait-impl-region.rust2018.stderr
@@ -6,4 +6,3 @@ LL |     T: WithType<&u32>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2015.stderr b/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2015.stderr
index 92caff0dcde99..faabf57a7df40 100644
--- a/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2015.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2015.stderr
@@ -6,4 +6,3 @@ LL |     T: WithRegion<'_>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2018.stderr b/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2018.stderr
index 92caff0dcde99..faabf57a7df40 100644
--- a/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2018.stderr
+++ b/src/test/ui/underscore-lifetime/where-clause-trait-impl-underscore.rust2018.stderr
@@ -6,4 +6,3 @@ LL |     T: WithRegion<'_>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/underscore-lifetime/where-clauses.stderr b/src/test/ui/underscore-lifetime/where-clauses.stderr
index 1a3ea4af7e12e..8674a925c110d 100644
--- a/src/test/ui/underscore-lifetime/where-clauses.stderr
+++ b/src/test/ui/underscore-lifetime/where-clauses.stderr
@@ -12,4 +12,3 @@ LL | impl<T: '_> Foo<'static> for Vec<T> {}
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0637`.
diff --git a/src/test/ui/uninhabited/uninhabited-matches-feature-gated.stderr b/src/test/ui/uninhabited/uninhabited-matches-feature-gated.stderr
index 533cf595ef0c2..de7a963577085 100644
--- a/src/test/ui/uninhabited/uninhabited-matches-feature-gated.stderr
+++ b/src/test/ui/uninhabited/uninhabited-matches-feature-gated.stderr
@@ -54,5 +54,5 @@ LL |     let Ok(x) = x;
 
 error: aborting due to 7 previous errors
 
-Some errors occurred: E0004, E0005.
+Some errors have detailed explanations: E0004, E0005.
 For more information about an error, try `rustc --explain E0004`.
diff --git a/src/test/ui/union/union-borrow-move-parent-sibling.nll.stderr b/src/test/ui/union/union-borrow-move-parent-sibling.nll.stderr
index 70860c822ebda..2f4c921ea08f9 100644
--- a/src/test/ui/union/union-borrow-move-parent-sibling.nll.stderr
+++ b/src/test/ui/union/union-borrow-move-parent-sibling.nll.stderr
@@ -66,5 +66,5 @@ LL |     let b = u.x;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0382, E0502.
+Some errors have detailed explanations: E0382, E0502.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/union/union-borrow-move-parent-sibling.stderr b/src/test/ui/union/union-borrow-move-parent-sibling.stderr
index c1c6932e1e25a..a7df3d5f76d56 100644
--- a/src/test/ui/union/union-borrow-move-parent-sibling.stderr
+++ b/src/test/ui/union/union-borrow-move-parent-sibling.stderr
@@ -63,5 +63,5 @@ LL |     let b = u.x;
 
 error: aborting due to 6 previous errors
 
-Some errors occurred: E0382, E0502.
+Some errors have detailed explanations: E0382, E0502.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/union/union-derive-clone.stderr b/src/test/ui/union/union-derive-clone.stderr
index 7421bb73ec9d3..37a0093784048 100644
--- a/src/test/ui/union/union-derive-clone.stderr
+++ b/src/test/ui/union/union-derive-clone.stderr
@@ -23,5 +23,5 @@ LL |     let w = u.clone();
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0277, E0599.
+Some errors have detailed explanations: E0277, E0599.
 For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/ui/union/union-fields-2.stderr b/src/test/ui/union/union-fields-2.stderr
index b4d6ed9b02011..68cb66d89d218 100644
--- a/src/test/ui/union/union-fields-2.stderr
+++ b/src/test/ui/union/union-fields-2.stderr
@@ -80,5 +80,5 @@ LL |     let U { a, .. } = u;
 
 error: aborting due to 13 previous errors
 
-Some errors occurred: E0026, E0436, E0560.
+Some errors have detailed explanations: E0026, E0436, E0560.
 For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/ui/union/union-suggest-field.stderr b/src/test/ui/union/union-suggest-field.stderr
index c737bc29d9472..5050e4a986499 100644
--- a/src/test/ui/union/union-suggest-field.stderr
+++ b/src/test/ui/union/union-suggest-field.stderr
@@ -18,5 +18,5 @@ LL |     let y = u.calculate;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0560, E0609, E0615.
+Some errors have detailed explanations: E0560, E0609, E0615.
 For more information about an error, try `rustc --explain E0560`.
diff --git a/src/test/ui/unknown-lint-tool-name.stderr b/src/test/ui/unknown-lint-tool-name.stderr
index a127af633dcf8..dd3070bbcb3d2 100644
--- a/src/test/ui/unknown-lint-tool-name.stderr
+++ b/src/test/ui/unknown-lint-tool-name.stderr
@@ -12,4 +12,3 @@ LL | #[allow(foo::bar)]
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0710`.
diff --git a/src/test/ui/unop-move-semantics.nll.stderr b/src/test/ui/unop-move-semantics.nll.stderr
index c11445c8adf59..5122d16bd9347 100644
--- a/src/test/ui/unop-move-semantics.nll.stderr
+++ b/src/test/ui/unop-move-semantics.nll.stderr
@@ -48,5 +48,5 @@ LL |     !*n;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0382, E0505, E0507.
+Some errors have detailed explanations: E0382, E0505, E0507.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/unop-move-semantics.stderr b/src/test/ui/unop-move-semantics.stderr
index e2fb425492073..90e1bfd24ee22 100644
--- a/src/test/ui/unop-move-semantics.stderr
+++ b/src/test/ui/unop-move-semantics.stderr
@@ -41,5 +41,5 @@ LL |     !*n;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0382, E0505, E0507.
+Some errors have detailed explanations: E0382, E0505, E0507.
 For more information about an error, try `rustc --explain E0382`.
diff --git a/src/test/ui/unsafe/ranged_ints2_const.stderr b/src/test/ui/unsafe/ranged_ints2_const.stderr
index 7d3e141ba709b..a120e50cab90c 100644
--- a/src/test/ui/unsafe/ranged_ints2_const.stderr
+++ b/src/test/ui/unsafe/ranged_ints2_const.stderr
@@ -24,5 +24,5 @@ LL |     let y = &mut x.0;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0133, E0723.
+Some errors have detailed explanations: E0133, E0723.
 For more information about an error, try `rustc --explain E0133`.
diff --git a/src/test/ui/unsafe/ranged_ints3_const.stderr b/src/test/ui/unsafe/ranged_ints3_const.stderr
index ea15cd5e901bd..d2eb3bc536008 100644
--- a/src/test/ui/unsafe/ranged_ints3_const.stderr
+++ b/src/test/ui/unsafe/ranged_ints3_const.stderr
@@ -20,5 +20,5 @@ LL |     let y = &x.0;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0133, E0492.
+Some errors have detailed explanations: E0133, E0492.
 For more information about an error, try `rustc --explain E0133`.
diff --git a/src/test/ui/unspecified-self-in-trait-ref.stderr b/src/test/ui/unspecified-self-in-trait-ref.stderr
index f894cd36a4f90..06370cec90e2d 100644
--- a/src/test/ui/unspecified-self-in-trait-ref.stderr
+++ b/src/test/ui/unspecified-self-in-trait-ref.stderr
@@ -32,5 +32,5 @@ LL |     let e = Bar::<usize>::lol();
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0393, E0599.
+Some errors have detailed explanations: E0393, E0599.
 For more information about an error, try `rustc --explain E0393`.
diff --git a/src/test/ui/use/issue-18986.stderr b/src/test/ui/use/issue-18986.stderr
index 6c23178c70011..14e1bb624033b 100644
--- a/src/test/ui/use/issue-18986.stderr
+++ b/src/test/ui/use/issue-18986.stderr
@@ -6,4 +6,3 @@ LL |         Trait { x: 42 } => ()
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/ui/use/use-from-trait-xc.stderr b/src/test/ui/use/use-from-trait-xc.stderr
index faa4829bfdd62..f7438cce22967 100644
--- a/src/test/ui/use/use-from-trait-xc.stderr
+++ b/src/test/ui/use/use-from-trait-xc.stderr
@@ -54,5 +54,5 @@ LL | use use_from_trait_xc::Foo::C;
 
 error: aborting due to 9 previous errors
 
-Some errors occurred: E0253, E0432, E0603.
+Some errors have detailed explanations: E0253, E0432, E0603.
 For more information about an error, try `rustc --explain E0253`.
diff --git a/src/test/ui/use/use-from-trait.stderr b/src/test/ui/use/use-from-trait.stderr
index af4b3b0c455e1..a5b0e356b34c5 100644
--- a/src/test/ui/use/use-from-trait.stderr
+++ b/src/test/ui/use/use-from-trait.stderr
@@ -30,5 +30,5 @@ LL | use Foo::C2;
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0253, E0432.
+Some errors have detailed explanations: E0253, E0432.
 For more information about an error, try `rustc --explain E0253`.
diff --git a/src/test/ui/use/use-keyword.stderr b/src/test/ui/use/use-keyword.stderr
index 1cb30fa487e09..62b6a77fbfb98 100644
--- a/src/test/ui/use/use-keyword.stderr
+++ b/src/test/ui/use/use-keyword.stderr
@@ -18,5 +18,5 @@ LL |         use super::{self as C};
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0429, E0432.
+Some errors have detailed explanations: E0429, E0432.
 For more information about an error, try `rustc --explain E0429`.
diff --git a/src/test/ui/use/use-mod.stderr b/src/test/ui/use/use-mod.stderr
index c23ab34eae678..0cae5eb14aeeb 100644
--- a/src/test/ui/use/use-mod.stderr
+++ b/src/test/ui/use/use-mod.stderr
@@ -29,5 +29,5 @@ LL |     self
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0252, E0430, E0431.
+Some errors have detailed explanations: E0252, E0430, E0431.
 For more information about an error, try `rustc --explain E0252`.
diff --git a/src/test/ui/use/use-mod/use-mod-4.stderr b/src/test/ui/use/use-mod/use-mod-4.stderr
index 99f5c352184d5..df9898844d34d 100644
--- a/src/test/ui/use/use-mod/use-mod-4.stderr
+++ b/src/test/ui/use/use-mod/use-mod-4.stderr
@@ -18,5 +18,5 @@ LL | use foo::self;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0429, E0432.
+Some errors have detailed explanations: E0429, E0432.
 For more information about an error, try `rustc --explain E0429`.
diff --git a/src/test/ui/use/use-self-type.stderr b/src/test/ui/use/use-self-type.stderr
index 38c09c2be76f2..0dd0e04267c33 100644
--- a/src/test/ui/use/use-self-type.stderr
+++ b/src/test/ui/use/use-self-type.stderr
@@ -12,5 +12,5 @@ LL |         use Self::f;
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0432, E0433.
+Some errors have detailed explanations: E0432, E0433.
 For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/ui/use/use-super-global-path.stderr b/src/test/ui/use/use-super-global-path.stderr
index a513d37738dfa..72b3deaaecea5 100644
--- a/src/test/ui/use/use-super-global-path.stderr
+++ b/src/test/ui/use/use-super-global-path.stderr
@@ -22,5 +22,5 @@ LL |     use main;
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0425, E0433.
+Some errors have detailed explanations: E0425, E0433.
 For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/variance/variance-associated-types.stderr b/src/test/ui/variance/variance-associated-types.stderr
index c0231aead4a4a..b9aa9695f6224 100644
--- a/src/test/ui/variance/variance-associated-types.stderr
+++ b/src/test/ui/variance/variance-associated-types.stderr
@@ -16,4 +16,3 @@ LL | | }
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-cell-is-invariant.stderr b/src/test/ui/variance/variance-cell-is-invariant.stderr
index 6fcd6460fe30a..91f6d7659ed4e 100644
--- a/src/test/ui/variance/variance-cell-is-invariant.stderr
+++ b/src/test/ui/variance/variance-cell-is-invariant.stderr
@@ -12,4 +12,3 @@ LL |     let _: Foo<'long> = c;
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0623`.
diff --git a/src/test/ui/variance/variance-object-types.stderr b/src/test/ui/variance/variance-object-types.stderr
index 385d8dc5c773e..be94a727a8d16 100644
--- a/src/test/ui/variance/variance-object-types.stderr
+++ b/src/test/ui/variance/variance-object-types.stderr
@@ -8,4 +8,3 @@ LL | | }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-regions-direct.stderr b/src/test/ui/variance/variance-regions-direct.stderr
index bbc34799449af..8c9c89955bd34 100644
--- a/src/test/ui/variance/variance-regions-direct.stderr
+++ b/src/test/ui/variance/variance-regions-direct.stderr
@@ -62,4 +62,3 @@ LL | | }
 
 error: aborting due to 7 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-regions-indirect.stderr b/src/test/ui/variance/variance-regions-indirect.stderr
index ccd4335f5004a..17efc6231d5e7 100644
--- a/src/test/ui/variance/variance-regions-indirect.stderr
+++ b/src/test/ui/variance/variance-regions-indirect.stderr
@@ -42,4 +42,3 @@ LL | | }
 
 error: aborting due to 5 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-trait-bounds.stderr b/src/test/ui/variance/variance-trait-bounds.stderr
index f136bd121d0df..98bc1b003c39d 100644
--- a/src/test/ui/variance/variance-trait-bounds.stderr
+++ b/src/test/ui/variance/variance-trait-bounds.stderr
@@ -32,4 +32,3 @@ LL | | }
 
 error: aborting due to 4 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-trait-object-bound.stderr b/src/test/ui/variance/variance-trait-object-bound.stderr
index 4fa4a2e8ab45c..503c087fb4d38 100644
--- a/src/test/ui/variance/variance-trait-object-bound.stderr
+++ b/src/test/ui/variance/variance-trait-object-bound.stderr
@@ -8,4 +8,3 @@ LL | | }
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-types-bounds.stderr b/src/test/ui/variance/variance-types-bounds.stderr
index 991bfd33a2e2a..8e3e0515aec02 100644
--- a/src/test/ui/variance/variance-types-bounds.stderr
+++ b/src/test/ui/variance/variance-types-bounds.stderr
@@ -44,4 +44,3 @@ LL | | }
 
 error: aborting due to 5 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variance/variance-types.stderr b/src/test/ui/variance/variance-types.stderr
index f68a2666729dc..05bd4747cf168 100644
--- a/src/test/ui/variance/variance-types.stderr
+++ b/src/test/ui/variance/variance-types.stderr
@@ -50,4 +50,3 @@ LL | | }
 
 error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0208`.
diff --git a/src/test/ui/variants/variant-used-as-type.stderr b/src/test/ui/variants/variant-used-as-type.stderr
index fdfc044d81f6c..1138b69ae3bc3 100644
--- a/src/test/ui/variants/variant-used-as-type.stderr
+++ b/src/test/ui/variants/variant-used-as-type.stderr
@@ -24,4 +24,3 @@ LL | impl Ty {}
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/wf/wf-fn-where-clause.stderr b/src/test/ui/wf/wf-fn-where-clause.stderr
index f1648aa12acdc..b50e895d8655c 100644
--- a/src/test/ui/wf/wf-fn-where-clause.stderr
+++ b/src/test/ui/wf/wf-fn-where-clause.stderr
@@ -33,5 +33,5 @@ LL | fn bar() where Vec<dyn Copy>:, {}
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0038, E0277.
+Some errors have detailed explanations: E0038, E0277.
 For more information about an error, try `rustc --explain E0038`.
diff --git a/src/test/ui/wf/wf-static-method.stderr b/src/test/ui/wf/wf-static-method.stderr
index 32832ceb79cad..f82526aa88ebf 100644
--- a/src/test/ui/wf/wf-static-method.stderr
+++ b/src/test/ui/wf/wf-static-method.stderr
@@ -105,5 +105,4 @@ LL |     <IndirectEvil>::static_evil(b)
 
 error: aborting due to 5 previous errors
 
-Some errors occurred: E0312, E0478, E0495.
-For more information about an error, try `rustc --explain E0312`.
+For more information about this error, try `rustc --explain E0478`.
diff --git a/src/test/ui/where-clauses/where-for-self.stderr b/src/test/ui/where-clauses/where-for-self.stderr
index d06afc1e42376..84430ffcf887f 100644
--- a/src/test/ui/where-clauses/where-for-self.stderr
+++ b/src/test/ui/where-clauses/where-for-self.stderr
@@ -6,4 +6,3 @@ LL |     where for<'a> &'a T: for<'b> Bar<'b>
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0316`.
diff --git a/src/test/ui/where-clauses/where-lifetime-resolution.stderr b/src/test/ui/where-clauses/where-lifetime-resolution.stderr
index ce6354b0ae72f..babf8efc23f35 100644
--- a/src/test/ui/where-clauses/where-lifetime-resolution.stderr
+++ b/src/test/ui/where-clauses/where-lifetime-resolution.stderr
@@ -18,5 +18,4 @@ LL |     for<'a> for<'b> Trait2<'a, 'b>: Trait2<'a, 'b>,
 
 error: aborting due to 3 previous errors
 
-Some errors occurred: E0261, E0316.
-For more information about an error, try `rustc --explain E0261`.
+For more information about this error, try `rustc --explain E0261`.
diff --git a/src/test/ui/write-to-static-mut-in-static.stderr b/src/test/ui/write-to-static-mut-in-static.stderr
index eba1c609d2f83..4349f6e89c119 100644
--- a/src/test/ui/write-to-static-mut-in-static.stderr
+++ b/src/test/ui/write-to-static-mut-in-static.stderr
@@ -24,5 +24,5 @@ LL | pub static mut C: u32 = unsafe { C = 1; 0 };
 
 error: aborting due to 2 previous errors
 
-Some errors occurred: E0080, E0391.
+Some errors have detailed explanations: E0080, E0391.
 For more information about an error, try `rustc --explain E0080`.