about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_errors/emitter.rs53
-rw-r--r--src/test/ui-fulldeps/lint-plugin-forbid-attrs.stderr1
-rw-r--r--src/test/ui-fulldeps/proc-macro/signature.stderr1
-rw-r--r--src/test/ui/anonymous-higher-ranked-lifetime.stderr1
-rw-r--r--src/test/ui/arbitrary-self-types-not-object-safe.stderr1
-rw-r--r--src/test/ui/asm-out-assign-imm.stderr1
-rw-r--r--src/test/ui/associated-const-impl-wrong-lifetime.stderr1
-rw-r--r--src/test/ui/associated-const-impl-wrong-type.stderr1
-rw-r--r--src/test/ui/associated-type-projection-from-multiple-supertraits.stderr2
-rw-r--r--src/test/ui/associated-types-ICE-when-projecting-out-of-err.stderr1
-rw-r--r--src/test/ui/associated-types-in-ambiguous-context.stderr1
-rw-r--r--src/test/ui/attr-usage-repr.stderr1
-rw-r--r--src/test/ui/augmented-assignments.stderr2
-rw-r--r--src/test/ui/binary-op-on-double-ref.stderr1
-rw-r--r--src/test/ui/blind-item-item-shadow.stderr1
-rw-r--r--src/test/ui/block-result/block-must-not-have-result-do.stderr1
-rw-r--r--src/test/ui/block-result/block-must-not-have-result-res.stderr1
-rw-r--r--src/test/ui/block-result/block-must-not-have-result-while.stderr1
-rw-r--r--src/test/ui/block-result/consider-removing-last-semi.stderr1
-rw-r--r--src/test/ui/block-result/issue-11714.stderr1
-rw-r--r--src/test/ui/block-result/issue-13428.stderr1
-rw-r--r--src/test/ui/block-result/issue-13624.stderr1
-rw-r--r--src/test/ui/block-result/issue-20862.stderr2
-rw-r--r--src/test/ui/block-result/issue-22645.stderr2
-rw-r--r--src/test/ui/block-result/issue-3563.stderr1
-rw-r--r--src/test/ui/block-result/issue-5500.stderr1
-rw-r--r--src/test/ui/block-result/unexpected-return-on-unit.stderr1
-rw-r--r--src/test/ui/bogus-tag.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-box-insensitivity.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-closures-two-mut.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-in-static.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-move-error-with-note.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-reinit.stderr1
-rw-r--r--src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr2
-rw-r--r--src/test/ui/borrowck/immutable-arg.stderr1
-rw-r--r--src/test/ui/borrowck/issue-41962.stderr1
-rw-r--r--src/test/ui/borrowck/mut-borrow-in-loop.stderr1
-rw-r--r--src/test/ui/borrowck/mut-borrow-outside-loop.stderr1
-rw-r--r--src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr2
-rw-r--r--src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr1
-rw-r--r--src/test/ui/cast-as-bool.stderr1
-rw-r--r--src/test/ui/cast-errors-issue-43825.stderr1
-rw-r--r--src/test/ui/cast-rfc0401-2.stderr1
-rw-r--r--src/test/ui/cast-to-unsized-trait-object-suggestion.stderr1
-rw-r--r--src/test/ui/casts-differing-anon.stderr1
-rw-r--r--src/test/ui/casts-issue-46365.stderr1
-rw-r--r--src/test/ui/changing-crates.stderr1
-rw-r--r--src/test/ui/check_match/issue-35609.stderr1
-rw-r--r--src/test/ui/closure-expected-type/expect-region-supply-region.stderr1
-rw-r--r--src/test/ui/closure_context/issue-26046-fn-mut.stderr1
-rw-r--r--src/test/ui/closure_context/issue-26046-fn-once.stderr1
-rw-r--r--src/test/ui/closure_context/issue-42065.stderr1
-rw-r--r--src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr1
-rw-r--r--src/test/ui/codemap_tests/empty_span.stderr1
-rw-r--r--src/test/ui/codemap_tests/huge_multispan_highlight.stderr1
-rw-r--r--src/test/ui/codemap_tests/issue-11715.stderr1
-rw-r--r--src/test/ui/codemap_tests/issue-28308.stderr1
-rw-r--r--src/test/ui/codemap_tests/one_line.stderr1
-rw-r--r--src/test/ui/codemap_tests/overlapping_inherent_impls.stderr1
-rw-r--r--src/test/ui/codemap_tests/overlapping_spans.stderr1
-rw-r--r--src/test/ui/codemap_tests/tab.stderr2
-rw-r--r--src/test/ui/codemap_tests/tab_3.stderr1
-rw-r--r--src/test/ui/codemap_tests/two_files.stderr1
-rw-r--r--src/test/ui/codemap_tests/unicode_2.stderr1
-rw-r--r--src/test/ui/coercion-missing-tail-expected-type.stderr1
-rw-r--r--src/test/ui/coherence-error-suppression.stderr1
-rw-r--r--src/test/ui/coherence-impls-copy.stderr2
-rw-r--r--src/test/ui/coherence-overlap-downstream-inherent.stderr1
-rw-r--r--src/test/ui/coherence-overlap-downstream.stderr1
-rw-r--r--src/test/ui/coherence-overlap-issue-23516-inherent.stderr1
-rw-r--r--src/test/ui/coherence-overlap-issue-23516.stderr1
-rw-r--r--src/test/ui/coherence-overlap-upstream-inherent.stderr1
-rw-r--r--src/test/ui/coherence-overlap-upstream.stderr1
-rw-r--r--src/test/ui/command-line-diagnostics.stderr1
-rw-r--r--src/test/ui/compare-method/proj-outlives-region.stderr1
-rw-r--r--src/test/ui/compare-method/region-extra-2.stderr1
-rw-r--r--src/test/ui/compare-method/region-extra.stderr1
-rw-r--r--src/test/ui/compare-method/region-unrelated.stderr1
-rw-r--r--src/test/ui/compare-method/reordered-type-param.stderr1
-rw-r--r--src/test/ui/compare-method/trait-bound-on-type-parameter.stderr1
-rw-r--r--src/test/ui/compare-method/traits-misc-mismatch-1.stderr1
-rw-r--r--src/test/ui/compare-method/traits-misc-mismatch-2.stderr1
-rw-r--r--src/test/ui/const-deref-ptr.stderr1
-rw-r--r--src/test/ui/const-eval-overflow-2.stderr1
-rw-r--r--src/test/ui/const-eval-overflow-4.stderr1
-rw-r--r--src/test/ui/const-eval-span.stderr1
-rw-r--r--src/test/ui/const-eval/issue-43197.stderr1
-rw-r--r--src/test/ui/const-expr-addr-operator.stderr1
-rw-r--r--src/test/ui/const-fn-error.stderr2
-rw-r--r--src/test/ui/const-fn-mismatch.stderr1
-rw-r--r--src/test/ui/const-fn-not-in-trait.stderr1
-rw-r--r--src/test/ui/const-len-underflow-separate-spans.stderr1
-rw-r--r--src/test/ui/const-pattern-irrefutable.stderr1
-rw-r--r--src/test/ui/const-pattern-not-const-evaluable.stderr1
-rw-r--r--src/test/ui/const-unsized.stderr1
-rw-r--r--src/test/ui/cycle-trait-supertrait-indirect.stderr1
-rw-r--r--src/test/ui/deref-suggestion.stderr1
-rw-r--r--src/test/ui/derived-errors/issue-31997-1.stderr1
-rw-r--r--src/test/ui/did_you_mean/E0178.stderr1
-rw-r--r--src/test/ui/did_you_mean/bad-assoc-pat.stderr1
-rw-r--r--src/test/ui/did_you_mean/bad-assoc-ty.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-31424.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-34126.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-34337.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-35937.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-36798.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-36798_unknown_field.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-37139.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-38147-1.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-38147-2.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-38147-3.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-38147-4.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-39544.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-40006.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-40823.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-42599_available_fields_note.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-42764.stderr1
-rw-r--r--src/test/ui/did_you_mean/issue-43871-enum-instead-of-variant.stderr2
-rw-r--r--src/test/ui/did_you_mean/recursion_limit.stderr1
-rw-r--r--src/test/ui/did_you_mean/recursion_limit_deref.stderr2
-rw-r--r--src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr2
-rw-r--r--src/test/ui/discrim-overflow-2.stderr1
-rw-r--r--src/test/ui/discrim-overflow.stderr1
-rw-r--r--src/test/ui/double-import.stderr1
-rw-r--r--src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr1
-rw-r--r--src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr1
-rw-r--r--src/test/ui/dropck/dropck-eyepatch-reorder.stderr1
-rw-r--r--src/test/ui/dropck/dropck-eyepatch.stderr1
-rw-r--r--src/test/ui/e0119/complex-impl.stderr2
-rw-r--r--src/test/ui/e0119/conflict-with-std.stderr1
-rw-r--r--src/test/ui/e0119/issue-23563.stderr1
-rw-r--r--src/test/ui/e0119/issue-27403.stderr1
-rw-r--r--src/test/ui/e0119/issue-28981.stderr2
-rw-r--r--src/test/ui/e0119/so-37347311.stderr1
-rw-r--r--src/test/ui/empty-struct-unit-expr.stderr1
-rw-r--r--src/test/ui/enum-and-module-in-same-scope.stderr1
-rw-r--r--src/test/ui/error-codes/E0004-2.stderr1
-rw-r--r--src/test/ui/error-codes/E0004.stderr1
-rw-r--r--src/test/ui/error-codes/E0005.stderr1
-rw-r--r--src/test/ui/error-codes/E0007.stderr2
-rw-r--r--src/test/ui/error-codes/E0008.stderr1
-rw-r--r--src/test/ui/error-codes/E0009.stderr1
-rw-r--r--src/test/ui/error-codes/E0010-teach.stderr1
-rw-r--r--src/test/ui/error-codes/E0010.stderr1
-rw-r--r--src/test/ui/error-codes/E0017.stderr2
-rw-r--r--src/test/ui/error-codes/E0023.stderr1
-rw-r--r--src/test/ui/error-codes/E0025.stderr1
-rw-r--r--src/test/ui/error-codes/E0026-teach.stderr1
-rw-r--r--src/test/ui/error-codes/E0026.stderr1
-rw-r--r--src/test/ui/error-codes/E0027-teach.stderr1
-rw-r--r--src/test/ui/error-codes/E0027.stderr1
-rw-r--r--src/test/ui/error-codes/E0029-teach.stderr2
-rw-r--r--src/test/ui/error-codes/E0029.stderr2
-rw-r--r--src/test/ui/error-codes/E0030-teach.stderr1
-rw-r--r--src/test/ui/error-codes/E0030.stderr1
-rw-r--r--src/test/ui/error-codes/E0033-teach.stderr2
-rw-r--r--src/test/ui/error-codes/E0033.stderr2
-rw-r--r--src/test/ui/error-codes/E0034.stderr1
-rw-r--r--src/test/ui/error-codes/E0038.stderr1
-rw-r--r--src/test/ui/error-codes/E0040.stderr1
-rw-r--r--src/test/ui/error-codes/E0044.stderr1
-rw-r--r--src/test/ui/error-codes/E0045.stderr1
-rw-r--r--src/test/ui/error-codes/E0049.stderr1
-rw-r--r--src/test/ui/error-codes/E0050.stderr1
-rw-r--r--src/test/ui/error-codes/E0054.stderr1
-rw-r--r--src/test/ui/error-codes/E0055.stderr1
-rw-r--r--src/test/ui/error-codes/E0057.stderr1
-rw-r--r--src/test/ui/error-codes/E0059.stderr1
-rw-r--r--src/test/ui/error-codes/E0060.stderr1
-rw-r--r--src/test/ui/error-codes/E0061.stderr1
-rw-r--r--src/test/ui/error-codes/E0062.stderr1
-rw-r--r--src/test/ui/error-codes/E0063.stderr1
-rw-r--r--src/test/ui/error-codes/E0067.stderr2
-rw-r--r--src/test/ui/error-codes/E0069.stderr1
-rw-r--r--src/test/ui/error-codes/E0070.stderr2
-rw-r--r--src/test/ui/error-codes/E0071.stderr1
-rw-r--r--src/test/ui/error-codes/E0075.stderr1
-rw-r--r--src/test/ui/error-codes/E0076.stderr1
-rw-r--r--src/test/ui/error-codes/E0077.stderr1
-rw-r--r--src/test/ui/error-codes/E0080.stderr1
-rw-r--r--src/test/ui/error-codes/E0081.stderr1
-rw-r--r--src/test/ui/error-codes/E0084.stderr1
-rw-r--r--src/test/ui/error-codes/E0087.stderr1
-rw-r--r--src/test/ui/error-codes/E0088.stderr1
-rw-r--r--src/test/ui/error-codes/E0089.stderr1
-rw-r--r--src/test/ui/error-codes/E0090.stderr1
-rw-r--r--src/test/ui/error-codes/E0091.stderr1
-rw-r--r--src/test/ui/error-codes/E0092.stderr1
-rw-r--r--src/test/ui/error-codes/E0093.stderr1
-rw-r--r--src/test/ui/error-codes/E0094.stderr1
-rw-r--r--src/test/ui/error-codes/E0106.stderr1
-rw-r--r--src/test/ui/error-codes/E0107.stderr1
-rw-r--r--src/test/ui/error-codes/E0109.stderr1
-rw-r--r--src/test/ui/error-codes/E0110.stderr1
-rw-r--r--src/test/ui/error-codes/E0116.stderr1
-rw-r--r--src/test/ui/error-codes/E0117.stderr2
-rw-r--r--src/test/ui/error-codes/E0118.stderr1
-rw-r--r--src/test/ui/error-codes/E0119.stderr1
-rw-r--r--src/test/ui/error-codes/E0120.stderr1
-rw-r--r--src/test/ui/error-codes/E0121.stderr1
-rw-r--r--src/test/ui/error-codes/E0124.stderr1
-rw-r--r--src/test/ui/error-codes/E0128.stderr1
-rw-r--r--src/test/ui/error-codes/E0130.stderr1
-rw-r--r--src/test/ui/error-codes/E0131.stderr1
-rw-r--r--src/test/ui/error-codes/E0132.stderr1
-rw-r--r--src/test/ui/error-codes/E0133.stderr1
-rw-r--r--src/test/ui/error-codes/E0137.stderr1
-rw-r--r--src/test/ui/error-codes/E0138.stderr1
-rw-r--r--src/test/ui/error-codes/E0152.stderr1
-rw-r--r--src/test/ui/error-codes/E0161.stderr2
-rw-r--r--src/test/ui/error-codes/E0162.stderr1
-rw-r--r--src/test/ui/error-codes/E0164.stderr1
-rw-r--r--src/test/ui/error-codes/E0165.stderr1
-rw-r--r--src/test/ui/error-codes/E0184.stderr1
-rw-r--r--src/test/ui/error-codes/E0185.stderr1
-rw-r--r--src/test/ui/error-codes/E0186.stderr1
-rw-r--r--src/test/ui/error-codes/E0191.stderr1
-rw-r--r--src/test/ui/error-codes/E0192.stderr1
-rw-r--r--src/test/ui/error-codes/E0194.stderr1
-rw-r--r--src/test/ui/error-codes/E0195.stderr1
-rw-r--r--src/test/ui/error-codes/E0197.stderr1
-rw-r--r--src/test/ui/error-codes/E0198.stderr1
-rw-r--r--src/test/ui/error-codes/E0199.stderr1
-rw-r--r--src/test/ui/error-codes/E0200.stderr1
-rw-r--r--src/test/ui/error-codes/E0201.stderr1
-rw-r--r--src/test/ui/error-codes/E0206.stderr2
-rw-r--r--src/test/ui/error-codes/E0207.stderr1
-rw-r--r--src/test/ui/error-codes/E0214.stderr1
-rw-r--r--src/test/ui/error-codes/E0220.stderr2
-rw-r--r--src/test/ui/error-codes/E0221.stderr1
-rw-r--r--src/test/ui/error-codes/E0223.stderr1
-rw-r--r--src/test/ui/error-codes/E0225.stderr1
-rw-r--r--src/test/ui/error-codes/E0229.stderr1
-rw-r--r--src/test/ui/error-codes/E0232.stderr1
-rw-r--r--src/test/ui/error-codes/E0243.stderr1
-rw-r--r--src/test/ui/error-codes/E0244.stderr1
-rw-r--r--src/test/ui/error-codes/E0252.stderr1
-rw-r--r--src/test/ui/error-codes/E0253.stderr1
-rw-r--r--src/test/ui/error-codes/E0254.stderr1
-rw-r--r--src/test/ui/error-codes/E0255.stderr1
-rw-r--r--src/test/ui/error-codes/E0259.stderr1
-rw-r--r--src/test/ui/error-codes/E0260.stderr1
-rw-r--r--src/test/ui/error-codes/E0261.stderr1
-rw-r--r--src/test/ui/error-codes/E0262.stderr1
-rw-r--r--src/test/ui/error-codes/E0263.stderr1
-rw-r--r--src/test/ui/error-codes/E0264.stderr1
-rw-r--r--src/test/ui/error-codes/E0267.stderr1
-rw-r--r--src/test/ui/error-codes/E0268.stderr1
-rw-r--r--src/test/ui/error-codes/E0271.stderr1
-rw-r--r--src/test/ui/error-codes/E0275.stderr1
-rw-r--r--src/test/ui/error-codes/E0276.stderr1
-rw-r--r--src/test/ui/error-codes/E0277-2.stderr1
-rw-r--r--src/test/ui/error-codes/E0277.stderr1
-rw-r--r--src/test/ui/error-codes/E0282.stderr1
-rw-r--r--src/test/ui/error-codes/E0283.stderr1
-rw-r--r--src/test/ui/error-codes/E0296.stderr1
-rw-r--r--src/test/ui/error-codes/E0297.stderr1
-rw-r--r--src/test/ui/error-codes/E0301.stderr1
-rw-r--r--src/test/ui/error-codes/E0302.stderr1
-rw-r--r--src/test/ui/error-codes/E0303.stderr2
-rw-r--r--src/test/ui/error-codes/E0308-4.stderr1
-rw-r--r--src/test/ui/error-codes/E0308.stderr1
-rw-r--r--src/test/ui/error-codes/E0365.stderr1
-rw-r--r--src/test/ui/error-codes/E0370.stderr1
-rw-r--r--src/test/ui/error-codes/E0374.stderr1
-rw-r--r--src/test/ui/error-codes/E0375.stderr1
-rw-r--r--src/test/ui/error-codes/E0376.stderr1
-rw-r--r--src/test/ui/error-codes/E0388.stderr2
-rw-r--r--src/test/ui/error-codes/E0389.stderr1
-rw-r--r--src/test/ui/error-codes/E0390.stderr1
-rw-r--r--src/test/ui/error-codes/E0392.stderr1
-rw-r--r--src/test/ui/error-codes/E0393.stderr1
-rw-r--r--src/test/ui/error-codes/E0394.stderr1
-rw-r--r--src/test/ui/error-codes/E0395.stderr1
-rw-r--r--src/test/ui/error-codes/E0396.stderr1
-rw-r--r--src/test/ui/error-codes/E0401.stderr1
-rw-r--r--src/test/ui/error-codes/E0403.stderr1
-rw-r--r--src/test/ui/error-codes/E0404.stderr1
-rw-r--r--src/test/ui/error-codes/E0405.stderr1
-rw-r--r--src/test/ui/error-codes/E0407.stderr1
-rw-r--r--src/test/ui/error-codes/E0408.stderr1
-rw-r--r--src/test/ui/error-codes/E0411.stderr1
-rw-r--r--src/test/ui/error-codes/E0412.stderr1
-rw-r--r--src/test/ui/error-codes/E0415.stderr1
-rw-r--r--src/test/ui/error-codes/E0416.stderr1
-rw-r--r--src/test/ui/error-codes/E0423.stderr1
-rw-r--r--src/test/ui/error-codes/E0424.stderr1
-rw-r--r--src/test/ui/error-codes/E0425.stderr1
-rw-r--r--src/test/ui/error-codes/E0426.stderr1
-rw-r--r--src/test/ui/error-codes/E0428.stderr1
-rw-r--r--src/test/ui/error-codes/E0429.stderr1
-rw-r--r--src/test/ui/error-codes/E0430.stderr2
-rw-r--r--src/test/ui/error-codes/E0431.stderr1
-rw-r--r--src/test/ui/error-codes/E0432.stderr1
-rw-r--r--src/test/ui/error-codes/E0433.stderr1
-rw-r--r--src/test/ui/error-codes/E0434.stderr1
-rw-r--r--src/test/ui/error-codes/E0435.stderr1
-rw-r--r--src/test/ui/error-codes/E0437.stderr1
-rw-r--r--src/test/ui/error-codes/E0438.stderr1
-rw-r--r--src/test/ui/error-codes/E0439.stderr1
-rw-r--r--src/test/ui/error-codes/E0440.stderr1
-rw-r--r--src/test/ui/error-codes/E0441.stderr1
-rw-r--r--src/test/ui/error-codes/E0442.stderr1
-rw-r--r--src/test/ui/error-codes/E0443.stderr1
-rw-r--r--src/test/ui/error-codes/E0444.stderr1
-rw-r--r--src/test/ui/error-codes/E0445.stderr1
-rw-r--r--src/test/ui/error-codes/E0446.stderr1
-rw-r--r--src/test/ui/error-codes/E0449.stderr1
-rw-r--r--src/test/ui/error-codes/E0451.stderr1
-rw-r--r--src/test/ui/error-codes/E0452.stderr1
-rw-r--r--src/test/ui/error-codes/E0453.stderr1
-rw-r--r--src/test/ui/error-codes/E0454.stderr1
-rw-r--r--src/test/ui/error-codes/E0458.stderr2
-rw-r--r--src/test/ui/error-codes/E0459.stderr1
-rw-r--r--src/test/ui/error-codes/E0463.stderr1
-rw-r--r--src/test/ui/error-codes/E0478.stderr1
-rw-r--r--src/test/ui/error-codes/E0492.stderr1
-rw-r--r--src/test/ui/error-codes/E0494.stderr1
-rw-r--r--src/test/ui/error-codes/E0496.stderr1
-rw-r--r--src/test/ui/error-codes/E0499.stderr1
-rw-r--r--src/test/ui/error-codes/E0502.stderr1
-rw-r--r--src/test/ui/error-codes/E0503.stderr1
-rw-r--r--src/test/ui/error-codes/E0504.stderr1
-rw-r--r--src/test/ui/error-codes/E0505.stderr1
-rw-r--r--src/test/ui/error-codes/E0507.stderr1
-rw-r--r--src/test/ui/error-codes/E0509.stderr1
-rw-r--r--src/test/ui/error-codes/E0511.stderr1
-rw-r--r--src/test/ui/error-codes/E0512.stderr1
-rw-r--r--src/test/ui/error-codes/E0516.stderr1
-rw-r--r--src/test/ui/error-codes/E0517.stderr1
-rw-r--r--src/test/ui/error-codes/E0518.stderr1
-rw-r--r--src/test/ui/error-codes/E0520.stderr1
-rw-r--r--src/test/ui/error-codes/E0522.stderr2
-rw-r--r--src/test/ui/error-codes/E0527.stderr1
-rw-r--r--src/test/ui/error-codes/E0528.stderr1
-rw-r--r--src/test/ui/error-codes/E0529.stderr1
-rw-r--r--src/test/ui/error-codes/E0530.stderr1
-rw-r--r--src/test/ui/error-codes/E0532.stderr1
-rw-r--r--src/test/ui/error-codes/E0534.stderr1
-rw-r--r--src/test/ui/error-codes/E0558.stderr1
-rw-r--r--src/test/ui/error-codes/E0559.stderr1
-rw-r--r--src/test/ui/error-codes/E0560.stderr1
-rw-r--r--src/test/ui/error-codes/E0565-1.stderr1
-rw-r--r--src/test/ui/error-codes/E0565.stderr1
-rw-r--r--src/test/ui/error-codes/E0572.stderr1
-rw-r--r--src/test/ui/error-codes/E0582.stderr1
-rw-r--r--src/test/ui/error-codes/E0585.stderr1
-rw-r--r--src/test/ui/error-codes/E0586.stderr1
-rw-r--r--src/test/ui/error-codes/E0597.stderr1
-rw-r--r--src/test/ui/error-codes/E0599.stderr1
-rw-r--r--src/test/ui/error-codes/E0600.stderr1
-rw-r--r--src/test/ui/error-codes/E0602.stderr1
-rw-r--r--src/test/ui/error-codes/E0603.stderr1
-rw-r--r--src/test/ui/error-codes/E0604.stderr1
-rw-r--r--src/test/ui/error-codes/E0605.stderr1
-rw-r--r--src/test/ui/error-codes/E0606.stderr1
-rw-r--r--src/test/ui/error-codes/E0607.stderr1
-rw-r--r--src/test/ui/error-codes/E0608.stderr1
-rw-r--r--src/test/ui/error-codes/E0609.stderr1
-rw-r--r--src/test/ui/error-codes/E0610.stderr1
-rw-r--r--src/test/ui/error-codes/E0611.stderr1
-rw-r--r--src/test/ui/error-codes/E0612.stderr1
-rw-r--r--src/test/ui/error-codes/E0614.stderr1
-rw-r--r--src/test/ui/error-codes/E0615.stderr1
-rw-r--r--src/test/ui/error-codes/E0616.stderr1
-rw-r--r--src/test/ui/error-codes/E0617.stderr1
-rw-r--r--src/test/ui/error-codes/E0618.stderr1
-rw-r--r--src/test/ui/error-codes/E0620.stderr1
-rw-r--r--src/test/ui/error-codes/E0621-does-not-trigger-for-closures.stderr1
-rw-r--r--src/test/ui/error-codes/E0622.stderr1
-rw-r--r--src/test/ui/error-codes/E0624.stderr1
-rw-r--r--src/test/ui/error-codes/E0637.stderr1
-rw-r--r--src/test/ui/error-codes/E0657.stderr1
-rw-r--r--src/test/ui/error-codes/E0658.stderr1
-rw-r--r--src/test/ui/error-codes/E0659.stderr1
-rw-r--r--src/test/ui/error-festival.rs53
-rw-r--r--src/test/ui/error-festival.stderr76
-rw-r--r--src/test/ui/fat-ptr-cast.stderr2
-rw-r--r--src/test/ui/feature-gate-abi-msp430-interrupt.stderr1
-rw-r--r--src/test/ui/feature-gate-abi.stderr1
-rw-r--r--src/test/ui/feature-gate-abi_unadjusted.stderr1
-rw-r--r--src/test/ui/feature-gate-advanced-slice-features.stderr1
-rw-r--r--src/test/ui/feature-gate-allocator_internals.stderr1
-rw-r--r--src/test/ui/feature-gate-allow-internal-unsafe-nested-macro.stderr1
-rw-r--r--src/test/ui/feature-gate-allow-internal-unstable-nested-macro.stderr1
-rw-r--r--src/test/ui/feature-gate-allow-internal-unstable-struct.stderr1
-rw-r--r--src/test/ui/feature-gate-allow-internal-unstable.stderr1
-rw-r--r--src/test/ui/feature-gate-allow_fail.stderr1
-rw-r--r--src/test/ui/feature-gate-arbitrary-self-types.stderr1
-rw-r--r--src/test/ui/feature-gate-arbitrary_self_types-raw-pointer.stderr1
-rw-r--r--src/test/ui/feature-gate-asm.stderr1
-rw-r--r--src/test/ui/feature-gate-asm2.stderr1
-rw-r--r--src/test/ui/feature-gate-assoc-type-defaults.stderr1
-rw-r--r--src/test/ui/feature-gate-box-expr.stderr1
-rw-r--r--src/test/ui/feature-gate-box_patterns.stderr1
-rw-r--r--src/test/ui/feature-gate-box_syntax.stderr1
-rw-r--r--src/test/ui/feature-gate-catch_expr.stderr1
-rw-r--r--src/test/ui/feature-gate-cfg-target-feature.stderr1
-rw-r--r--src/test/ui/feature-gate-cfg-target-has-atomic.stderr1
-rw-r--r--src/test/ui/feature-gate-cfg-target-thread-local.stderr1
-rw-r--r--src/test/ui/feature-gate-cfg-target-vendor.stderr1
-rw-r--r--src/test/ui/feature-gate-clone-closures.stderr1
-rw-r--r--src/test/ui/feature-gate-compiler-builtins.stderr1
-rw-r--r--src/test/ui/feature-gate-concat_idents.stderr1
-rw-r--r--src/test/ui/feature-gate-concat_idents2.stderr1
-rw-r--r--src/test/ui/feature-gate-concat_idents3.stderr1
-rw-r--r--src/test/ui/feature-gate-conservative_impl_trait.stderr1
-rw-r--r--src/test/ui/feature-gate-const-indexing.stderr1
-rw-r--r--src/test/ui/feature-gate-const_fn.stderr2
-rw-r--r--src/test/ui/feature-gate-copy-closures.stderr1
-rw-r--r--src/test/ui/feature-gate-crate_in_paths.stderr1
-rw-r--r--src/test/ui/feature-gate-crate_visibility_modifier.stderr1
-rw-r--r--src/test/ui/feature-gate-custom_attribute.stderr1
-rw-r--r--src/test/ui/feature-gate-custom_attribute2.stderr1
-rw-r--r--src/test/ui/feature-gate-custom_derive.stderr1
-rw-r--r--src/test/ui/feature-gate-decl_macro.stderr1
-rw-r--r--src/test/ui/feature-gate-doc_cfg.stderr1
-rw-r--r--src/test/ui/feature-gate-doc_masked.stderr1
-rw-r--r--src/test/ui/feature-gate-doc_spotlight.stderr1
-rw-r--r--src/test/ui/feature-gate-dotdoteq_in_patterns.stderr1
-rw-r--r--src/test/ui/feature-gate-dropck-ugeh.stderr1
-rw-r--r--src/test/ui/feature-gate-dyn-trait.stderr1
-rw-r--r--src/test/ui/feature-gate-exclusive-range-pattern.stderr1
-rw-r--r--src/test/ui/feature-gate-extern_absolute_paths.stderr2
-rw-r--r--src/test/ui/feature-gate-extern_in_paths.stderr1
-rw-r--r--src/test/ui/feature-gate-extern_types.stderr1
-rw-r--r--src/test/ui/feature-gate-external_doc.stderr1
-rw-r--r--src/test/ui/feature-gate-fundamental.stderr1
-rw-r--r--src/test/ui/feature-gate-generators.stderr1
-rw-r--r--src/test/ui/feature-gate-generic_associated_types.stderr1
-rw-r--r--src/test/ui/feature-gate-generic_param_attrs.stderr1
-rw-r--r--src/test/ui/feature-gate-global_allocator.stderr1
-rw-r--r--src/test/ui/feature-gate-global_asm.stderr1
-rw-r--r--src/test/ui/feature-gate-i128_type.stderr1
-rw-r--r--src/test/ui/feature-gate-i128_type2.stderr2
-rw-r--r--src/test/ui/feature-gate-if_while_or_patterns.stderr1
-rw-r--r--src/test/ui/feature-gate-in_band_lifetimes.stderr1
-rw-r--r--src/test/ui/feature-gate-intrinsics.stderr1
-rw-r--r--src/test/ui/feature-gate-lang-items.stderr1
-rw-r--r--src/test/ui/feature-gate-link_args.stderr1
-rw-r--r--src/test/ui/feature-gate-link_cfg.stderr1
-rw-r--r--src/test/ui/feature-gate-link_llvm_intrinsics.stderr1
-rw-r--r--src/test/ui/feature-gate-linkage.stderr1
-rw-r--r--src/test/ui/feature-gate-linker-flavor.stderr1
-rw-r--r--src/test/ui/feature-gate-log_syntax.stderr1
-rw-r--r--src/test/ui/feature-gate-log_syntax2.stderr1
-rw-r--r--src/test/ui/feature-gate-macro-lifetime-matcher.stderr1
-rw-r--r--src/test/ui/feature-gate-macro-vis-matcher.stderr1
-rw-r--r--src/test/ui/feature-gate-macro_at_most_once_rep.stderr1
-rw-r--r--src/test/ui/feature-gate-main.stderr1
-rw-r--r--src/test/ui/feature-gate-match_default_bindings.stderr1
-rw-r--r--src/test/ui/feature-gate-may-dangle.stderr1
-rw-r--r--src/test/ui/feature-gate-naked_functions.stderr1
-rw-r--r--src/test/ui/feature-gate-needs-allocator.stderr1
-rw-r--r--src/test/ui/feature-gate-negate-unsigned.stderr1
-rw-r--r--src/test/ui/feature-gate-never_type.stderr1
-rw-r--r--src/test/ui/feature-gate-nll.stderr1
-rw-r--r--src/test/ui/feature-gate-no-debug.stderr1
-rw-r--r--src/test/ui/feature-gate-no_core.stderr1
-rw-r--r--src/test/ui/feature-gate-non_ascii_idents.stderr1
-rw-r--r--src/test/ui/feature-gate-non_exhaustive.stderr1
-rw-r--r--src/test/ui/feature-gate-omit-gdb-pretty-printer-section.stderr1
-rw-r--r--src/test/ui/feature-gate-on-unimplemented.stderr1
-rw-r--r--src/test/ui/feature-gate-optin-builtin-traits.stderr1
-rw-r--r--src/test/ui/feature-gate-overlapping_marker_traits.stderr1
-rw-r--r--src/test/ui/feature-gate-placement-expr.stderr1
-rw-r--r--src/test/ui/feature-gate-plugin.stderr1
-rw-r--r--src/test/ui/feature-gate-plugin_registrar.stderr1
-rw-r--r--src/test/ui/feature-gate-prelude_import.stderr1
-rw-r--r--src/test/ui/feature-gate-profiler-runtime.stderr1
-rw-r--r--src/test/ui/feature-gate-repr-simd.stderr1
-rw-r--r--src/test/ui/feature-gate-repr128.stderr1
-rw-r--r--src/test/ui/feature-gate-repr_transparent.stderr1
-rw-r--r--src/test/ui/feature-gate-rustc-attrs.stderr1
-rw-r--r--src/test/ui/feature-gate-rustc_const_unstable.stderr1
-rw-r--r--src/test/ui/feature-gate-sanitizer-runtime.stderr1
-rw-r--r--src/test/ui/feature-gate-simd.stderr1
-rw-r--r--src/test/ui/feature-gate-slice-patterns.stderr1
-rw-r--r--src/test/ui/feature-gate-start.stderr1
-rw-r--r--src/test/ui/feature-gate-static-nobundle.stderr1
-rw-r--r--src/test/ui/feature-gate-stmt_expr_attributes.stderr1
-rw-r--r--src/test/ui/feature-gate-target_feature.stderr1
-rw-r--r--src/test/ui/feature-gate-thread_local.stderr1
-rw-r--r--src/test/ui/feature-gate-trace_macros.stderr1
-rw-r--r--src/test/ui/feature-gate-type_ascription.stderr1
-rw-r--r--src/test/ui/feature-gate-unboxed-closures-manual-impls.stderr1
-rw-r--r--src/test/ui/feature-gate-unboxed-closures-method-calls.stderr1
-rw-r--r--src/test/ui/feature-gate-unboxed-closures-ufcs-calls.stderr1
-rw-r--r--src/test/ui/feature-gate-unboxed-closures.stderr1
-rw-r--r--src/test/ui/feature-gate-underscore-lifetimes.stderr1
-rw-r--r--src/test/ui/feature-gate-universal.stderr1
-rw-r--r--src/test/ui/feature-gate-unsized_tuple_coercion.stderr1
-rw-r--r--src/test/ui/feature-gate-untagged_unions.stderr1
-rw-r--r--src/test/ui/feature-gate-unwind-attributes.stderr1
-rw-r--r--src/test/ui/feature-gate-used.stderr1
-rw-r--r--src/test/ui/feature-gate-wasm_import_memory.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-bench.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-inline.stderr2
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-macro_escape.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-proc_macro_derive.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-stable.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-test.stderr1
-rw-r--r--src/test/ui/feature-gate/issue-43106-gating-of-unstable.stderr1
-rw-r--r--src/test/ui/fmt/send-sync.stderr1
-rw-r--r--src/test/ui/generator/auto-trait-regions.stderr2
-rw-r--r--src/test/ui/generator/borrowing.stderr1
-rw-r--r--src/test/ui/generator/dropck.stderr1
-rw-r--r--src/test/ui/generator/generator-with-nll.stderr1
-rw-r--r--src/test/ui/generator/issue-48048.stderr1
-rw-r--r--src/test/ui/generator/no-arguments-on-generators.stderr1
-rw-r--r--src/test/ui/generator/not-send-sync.stderr1
-rw-r--r--src/test/ui/generator/pattern-borrow.stderr1
-rw-r--r--src/test/ui/generator/ref-escapes-but-not-over-yield.stderr1
-rw-r--r--src/test/ui/generator/sized-yield.stderr1
-rw-r--r--src/test/ui/generator/unsafe-immovable.stderr1
-rw-r--r--src/test/ui/generator/yield-in-args.stderr1
-rw-r--r--src/test/ui/generator/yield-in-const.stderr2
-rw-r--r--src/test/ui/generator/yield-in-function.stderr1
-rw-r--r--src/test/ui/generator/yield-in-static.stderr2
-rw-r--r--src/test/ui/generator/yield-while-iterating.stderr2
-rw-r--r--src/test/ui/generator/yield-while-local-borrowed.stderr1
-rw-r--r--src/test/ui/generator/yield-while-ref-reborrowed.stderr1
-rw-r--r--src/test/ui/generic-type-less-params-with-defaults.stderr1
-rw-r--r--src/test/ui/generic-type-more-params-with-defaults.stderr1
-rw-r--r--src/test/ui/if-let-arm-types.stderr1
-rw-r--r--src/test/ui/impl-duplicate-methods.stderr1
-rw-r--r--src/test/ui/impl-trait/auto-trait-leak.stderr2
-rw-r--r--src/test/ui/impl-trait/equality.stderr2
-rw-r--r--src/test/ui/impl-trait/impl-trait-plus-priority.stderr1
-rw-r--r--src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr1
-rw-r--r--src/test/ui/impl-trait/method-suggestion-no-duplication.stderr1
-rw-r--r--src/test/ui/impl-trait/no-method-suggested-traits.stderr1
-rw-r--r--src/test/ui/impl-trait/trait_type.stderr2
-rw-r--r--src/test/ui/impl-trait/universal-mismatched-type.stderr1
-rw-r--r--src/test/ui/impl-trait/universal-two-impl-traits.stderr1
-rw-r--r--src/test/ui/impl-trait/universal_wrong_bounds.stderr2
-rw-r--r--src/test/ui/impl-unused-rps-in-assoc-type.stderr1
-rw-r--r--src/test/ui/impl_trait_projections.stderr2
-rw-r--r--src/test/ui/imports/duplicate.stderr2
-rw-r--r--src/test/ui/imports/macro-paths.stderr2
-rw-r--r--src/test/ui/imports/macros.stderr2
-rw-r--r--src/test/ui/imports/shadow_builtin_macros.stderr1
-rw-r--r--src/test/ui/impossible_range.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/E0687.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/E0687_where.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/E0688.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/mismatched.stderr2
-rw-r--r--src/test/ui/in-band-lifetimes/mismatched_trait.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/mismatched_trait_impl-2.stderr2
-rw-r--r--src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/mut_while_borrow.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/no_in_band_in_struct.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/no_introducing_in_band_in_locals.stderr1
-rw-r--r--src/test/ui/in-band-lifetimes/shadow.stderr1
-rw-r--r--src/test/ui/index-help.stderr1
-rw-r--r--src/test/ui/interior-mutability/interior-mutability.stderr1
-rw-r--r--src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr1
-rw-r--r--src/test/ui/invalid-path-in-const.stderr1
-rw-r--r--src/test/ui/issue-10969.stderr1
-rw-r--r--src/test/ui/issue-11004.stderr1
-rw-r--r--src/test/ui/issue-11319.stderr1
-rw-r--r--src/test/ui/issue-12187-1.stderr1
-rw-r--r--src/test/ui/issue-12187-2.stderr1
-rw-r--r--src/test/ui/issue-12511.stderr1
-rw-r--r--src/test/ui/issue-13058.stderr2
-rw-r--r--src/test/ui/issue-14092.stderr1
-rw-r--r--src/test/ui/issue-15260.stderr1
-rw-r--r--src/test/ui/issue-15524.stderr1
-rw-r--r--src/test/ui/issue-17263.stderr2
-rw-r--r--src/test/ui/issue-17441.stderr1
-rw-r--r--src/test/ui/issue-18183.stderr1
-rw-r--r--src/test/ui/issue-18819.stderr1
-rw-r--r--src/test/ui/issue-19498.stderr1
-rw-r--r--src/test/ui/issue-19707.stderr1
-rw-r--r--src/test/ui/issue-19922.stderr1
-rw-r--r--src/test/ui/issue-20692.stderr1
-rw-r--r--src/test/ui/issue-21546.stderr1
-rw-r--r--src/test/ui/issue-21600.stderr1
-rw-r--r--src/test/ui/issue-21950.stderr2
-rw-r--r--src/test/ui/issue-22370.stderr1
-rw-r--r--src/test/ui/issue-22560.stderr2
-rw-r--r--src/test/ui/issue-22886.stderr1
-rw-r--r--src/test/ui/issue-22933-2.stderr1
-rw-r--r--src/test/ui/issue-23041.stderr1
-rw-r--r--src/test/ui/issue-23173.stderr1
-rw-r--r--src/test/ui/issue-23217.stderr1
-rw-r--r--src/test/ui/issue-23302-1.stderr1
-rw-r--r--src/test/ui/issue-23302-2.stderr1
-rw-r--r--src/test/ui/issue-23302-3.stderr1
-rw-r--r--src/test/ui/issue-23543.stderr1
-rw-r--r--src/test/ui/issue-23544.stderr1
-rw-r--r--src/test/ui/issue-23716.stderr1
-rw-r--r--src/test/ui/issue-24036.stderr1
-rw-r--r--src/test/ui/issue-24081.stderr1
-rw-r--r--src/test/ui/issue-24424.stderr1
-rw-r--r--src/test/ui/issue-25385.stderr1
-rw-r--r--src/test/ui/issue-25793.stderr1
-rw-r--r--src/test/ui/issue-25826.stderr1
-rw-r--r--src/test/ui/issue-26056.stderr1
-rw-r--r--src/test/ui/issue-26093.stderr1
-rw-r--r--src/test/ui/issue-26472.stderr1
-rw-r--r--src/test/ui/issue-26638.stderr1
-rw-r--r--src/test/ui/issue-26886.stderr1
-rw-r--r--src/test/ui/issue-27842.stderr1
-rw-r--r--src/test/ui/issue-27942.stderr1
-rw-r--r--src/test/ui/issue-2848.stderr1
-rw-r--r--src/test/ui/issue-28568.stderr1
-rw-r--r--src/test/ui/issue-28776.stderr1
-rw-r--r--src/test/ui/issue-28837.stderr1
-rw-r--r--src/test/ui/issue-28971.stderr1
-rw-r--r--src/test/ui/issue-29124.stderr1
-rw-r--r--src/test/ui/issue-29723.stderr1
-rw-r--r--src/test/ui/issue-3008-1.stderr1
-rw-r--r--src/test/ui/issue-3008-2.stderr1
-rw-r--r--src/test/ui/issue-30255.stderr1
-rw-r--r--src/test/ui/issue-3044.stderr1
-rw-r--r--src/test/ui/issue-32326.stderr1
-rw-r--r--src/test/ui/issue-33525.stderr2
-rw-r--r--src/test/ui/issue-33941.stderr1
-rw-r--r--src/test/ui/issue-34047.stderr1
-rw-r--r--src/test/ui/issue-34209.stderr1
-rw-r--r--src/test/ui/issue-35139.stderr1
-rw-r--r--src/test/ui/issue-35241.stderr1
-rw-r--r--src/test/ui/issue-35675.stderr2
-rw-r--r--src/test/ui/issue-35869.stderr1
-rw-r--r--src/test/ui/issue-36163.stderr1
-rw-r--r--src/test/ui/issue-36400.stderr1
-rw-r--r--src/test/ui/issue-36708.stderr1
-rw-r--r--src/test/ui/issue-3779.stderr1
-rw-r--r--src/test/ui/issue-37884.stderr1
-rw-r--r--src/test/ui/issue-38875/issue_38875.stderr1
-rw-r--r--src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr1
-rw-r--r--src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr1
-rw-r--r--src/test/ui/issue-41652/issue_41652.stderr1
-rw-r--r--src/test/ui/issue-42106.stderr1
-rw-r--r--src/test/ui/issue-4335.stderr2
-rw-r--r--src/test/ui/issue-44023.stderr1
-rw-r--r--src/test/ui/issue-45157.stderr1
-rw-r--r--src/test/ui/issue-45697-1.stderr2
-rw-r--r--src/test/ui/issue-45697.stderr2
-rw-r--r--src/test/ui/issue-45730.stderr1
-rw-r--r--src/test/ui/issue-46112.stderr1
-rw-r--r--src/test/ui/issue-46332.stderr1
-rw-r--r--src/test/ui/issue-46471-1.stderr1
-rw-r--r--src/test/ui/issue-46471.stderr1
-rw-r--r--src/test/ui/issue-46472.stderr1
-rw-r--r--src/test/ui/issue-46983.stderr1
-rw-r--r--src/test/ui/issue-47377.stderr1
-rw-r--r--src/test/ui/issue-47380.stderr1
-rw-r--r--src/test/ui/issue-47511.stderr1
-rw-r--r--src/test/ui/issue-47623.stderr1
-rw-r--r--src/test/ui/issue-47706-trait.stderr2
-rw-r--r--src/test/ui/issue-47706.stderr1
-rw-r--r--src/test/ui/issue-4935.stderr1
-rw-r--r--src/test/ui/issue-5239-1.stderr1
-rw-r--r--src/test/ui/issue-6458-3.stderr1
-rw-r--r--src/test/ui/issue-6458-4.stderr1
-rw-r--r--src/test/ui/issue-6458.stderr1
-rw-r--r--src/test/ui/issue-7813.stderr1
-rw-r--r--src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr1
-rw-r--r--src/test/ui/lifetime-errors/42701_one_named_and_one_anonymous.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2a-push-one-existing-name-early-bound.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-4.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr1
-rw-r--r--src/test/ui/lifetime-errors/ex3-both-anon-regions.stderr1
-rw-r--r--src/test/ui/lifetime-errors/liveness-assign-imm-local-notes.stderr1
-rw-r--r--src/test/ui/lifetimes/borrowck-let-suggestion.stderr1
-rw-r--r--src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr2
-rw-r--r--src/test/ui/lint-forbid-attr.stderr1
-rw-r--r--src/test/ui/lint/outer-forbid.stderr1
-rw-r--r--src/test/ui/lint/use_suggestion_json.stderr1
-rw-r--r--src/test/ui/liveness-return-last-stmt-semi.stderr1
-rw-r--r--src/test/ui/loop-break-value-no-repeat.stderr1
-rw-r--r--src/test/ui/lub-glb/old-lub-glb-hr.stderr1
-rw-r--r--src/test/ui/lub-glb/old-lub-glb-object.stderr1
-rw-r--r--src/test/ui/macros/macro-backtrace-invalid-internals.stderr2
-rw-r--r--src/test/ui/macros/macro-backtrace-nested.stderr1
-rw-r--r--src/test/ui/macros/macro_path_as_generic_bound.stderr1
-rw-r--r--src/test/ui/macros/span-covering-argument-1.stderr1
-rw-r--r--src/test/ui/main-wrong-location.stderr1
-rw-r--r--src/test/ui/method-call-err-msg.stderr2
-rw-r--r--src/test/ui/method-missing-call.stderr1
-rw-r--r--src/test/ui/mismatched_types/E0053.stderr1
-rw-r--r--src/test/ui/mismatched_types/E0409.stderr2
-rw-r--r--src/test/ui/mismatched_types/E0631.stderr1
-rw-r--r--src/test/ui/mismatched_types/abridged.stderr1
-rw-r--r--src/test/ui/mismatched_types/binops.stderr1
-rw-r--r--src/test/ui/mismatched_types/cast-rfc0401.stderr2
-rw-r--r--src/test/ui/mismatched_types/closure-arg-count-expected-type-issue-47244.stderr1
-rw-r--r--src/test/ui/mismatched_types/closure-arg-count.stderr1
-rw-r--r--src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr2
-rw-r--r--src/test/ui/mismatched_types/closure-mismatch.stderr2
-rw-r--r--src/test/ui/mismatched_types/const-fn-in-trait.stderr1
-rw-r--r--src/test/ui/mismatched_types/fn-variance-1.stderr1
-rw-r--r--src/test/ui/mismatched_types/for-loop-has-unit-body.stderr1
-rw-r--r--src/test/ui/mismatched_types/issue-19109.stderr1
-rw-r--r--src/test/ui/mismatched_types/issue-26480.stderr2
-rw-r--r--src/test/ui/mismatched_types/issue-35030.stderr1
-rw-r--r--src/test/ui/mismatched_types/issue-36053-2.stderr2
-rw-r--r--src/test/ui/mismatched_types/issue-38371.stderr2
-rw-r--r--src/test/ui/mismatched_types/main.stderr1
-rw-r--r--src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr1
-rw-r--r--src/test/ui/mismatched_types/overloaded-calls-bad.stderr2
-rw-r--r--src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr1
-rw-r--r--src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr1
-rw-r--r--src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr1
-rw-r--r--src/test/ui/missing-items/issue-40221.stderr1
-rw-r--r--src/test/ui/missing-items/m2.stderr2
-rw-r--r--src/test/ui/missing-items/missing-type-parameter.stderr1
-rw-r--r--src/test/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr1
-rw-r--r--src/test/ui/moves-based-on-type-block-bad.stderr1
-rw-r--r--src/test/ui/moves-based-on-type-match-bindings.stderr1
-rw-r--r--src/test/ui/moves-based-on-type-tuple.stderr1
-rw-r--r--src/test/ui/nested_impl_trait.stderr2
-rw-r--r--src/test/ui/nll/borrowed-match-issue-45045.stderr1
-rw-r--r--src/test/ui/nll/borrowed-referent-issue-38899.stderr1
-rw-r--r--src/test/ui/nll/capture-ref-in-struct.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/escape-argument.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-comparing-against-free.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/region-lbr-anon-does-not-outlive-static.stderr1
-rw-r--r--src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr1
-rw-r--r--src/test/ui/nll/drop-no-may-dangle.stderr1
-rw-r--r--src/test/ui/nll/get_default.stderr1
-rw-r--r--src/test/ui/nll/guarantor-issue-46974.stderr2
-rw-r--r--src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr1
-rw-r--r--src/test/ui/nll/maybe-initialized-drop-with-fragment.stderr1
-rw-r--r--src/test/ui/nll/maybe-initialized-drop-with-uninitialized-fragments.stderr1
-rw-r--r--src/test/ui/nll/maybe-initialized-drop.stderr1
-rw-r--r--src/test/ui/nll/return-ref-mut-issue-46557.stderr1
-rw-r--r--src/test/ui/nll/trait-associated-constant.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/impl-trait-captures.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/impl-trait-outlives.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/projection-implied-bounds.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/projection-no-regions-fn.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-fn-body-nll-feature.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-fn-body.stderr1
-rw-r--r--src/test/ui/nll/ty-outlives/ty-param-fn.stderr1
-rw-r--r--src/test/ui/no-patterns-in-args.stderr2
-rw-r--r--src/test/ui/non-constant-expr-for-arr-len.stderr1
-rw-r--r--src/test/ui/non-exhaustive-pattern-witness.stderr1
-rw-r--r--src/test/ui/non_modrs_mods/non_modrs_mods.stderr1
-rw-r--r--src/test/ui/not-enough-arguments.stderr1
-rw-r--r--src/test/ui/numeric-fields.stderr2
-rw-r--r--src/test/ui/object-safety-associated-consts.stderr1
-rw-r--r--src/test/ui/object-safety-generics.stderr1
-rw-r--r--src/test/ui/object-safety-mentions-Self.stderr1
-rw-r--r--src/test/ui/object-safety-sized.stderr1
-rw-r--r--src/test/ui/object-safety-supertrait-mentions-Self.stderr1
-rw-r--r--src/test/ui/on-unimplemented/bad-annotation.stderr2
-rw-r--r--src/test/ui/on-unimplemented/multiple-impls.stderr1
-rw-r--r--src/test/ui/on-unimplemented/no-debug.stderr1
-rw-r--r--src/test/ui/on-unimplemented/on-impl.stderr1
-rw-r--r--src/test/ui/on-unimplemented/on-trait.stderr1
-rw-r--r--src/test/ui/on-unimplemented/slice-index.stderr1
-rw-r--r--src/test/ui/partialeq_help.stderr1
-rw-r--r--src/test/ui/pat-slice-old-style.stderr1
-rw-r--r--src/test/ui/qualified-path-params-2.stderr2
-rw-r--r--src/test/ui/reachable/expr_unary.stderr1
-rw-r--r--src/test/ui/recursive-requirements.stderr1
-rw-r--r--src/test/ui/region-borrow-params-issue-29793-small.stderr2
-rw-r--r--src/test/ui/regions-fn-subtyping-return-static.stderr1
-rw-r--r--src/test/ui/regions-nested-fns-2.stderr1
-rw-r--r--src/test/ui/resolve-conflict-item-vs-import.stderr1
-rw-r--r--src/test/ui/resolve-inconsistent-names.stderr1
-rw-r--r--src/test/ui/resolve/enums-are-namespaced-xc.stderr2
-rw-r--r--src/test/ui/resolve/issue-14254.stderr2
-rw-r--r--src/test/ui/resolve/issue-16058.stderr1
-rw-r--r--src/test/ui/resolve/issue-17518.stderr1
-rw-r--r--src/test/ui/resolve/issue-18252.stderr1
-rw-r--r--src/test/ui/resolve/issue-19452.stderr1
-rw-r--r--src/test/ui/resolve/issue-21221-1.stderr2
-rw-r--r--src/test/ui/resolve/issue-21221-2.stderr2
-rw-r--r--src/test/ui/resolve/issue-21221-3.stderr1
-rw-r--r--src/test/ui/resolve/issue-21221-4.stderr1
-rw-r--r--src/test/ui/resolve/issue-23305.stderr1
-rw-r--r--src/test/ui/resolve/issue-2356.stderr2
-rw-r--r--src/test/ui/resolve/issue-24968.stderr1
-rw-r--r--src/test/ui/resolve/issue-33876.stderr1
-rw-r--r--src/test/ui/resolve/issue-3907-2.stderr1
-rw-r--r--src/test/ui/resolve/issue-3907.stderr1
-rw-r--r--src/test/ui/resolve/issue-39226.stderr1
-rw-r--r--src/test/ui/resolve/issue-5035-2.stderr1
-rw-r--r--src/test/ui/resolve/issue-5035.stderr2
-rw-r--r--src/test/ui/resolve/issue-6702.stderr1
-rw-r--r--src/test/ui/resolve/levenshtein.stderr2
-rw-r--r--src/test/ui/resolve/name-clash-nullary.stderr1
-rw-r--r--src/test/ui/resolve/privacy-enum-ctor.stderr2
-rw-r--r--src/test/ui/resolve/privacy-struct-ctor.stderr2
-rw-r--r--src/test/ui/resolve/resolve-assoc-suggestions.stderr2
-rw-r--r--src/test/ui/resolve/resolve-hint-macro.stderr1
-rw-r--r--src/test/ui/resolve/resolve-speculative-adjustment.stderr1
-rw-r--r--src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr2
-rw-r--r--src/test/ui/resolve/token-error-correct-2.stderr1
-rw-r--r--src/test/ui/resolve/token-error-correct-3.stderr2
-rw-r--r--src/test/ui/resolve/tuple-struct-alias.stderr2
-rw-r--r--src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr2
-rw-r--r--src/test/ui/resolve/unresolved_static_type_field.stderr1
-rw-r--r--src/test/ui/resolve/use_suggestion_placement.stderr2
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/const.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/enum.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/for.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/issue-44912-or.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/lit.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/no-double-error.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/slice.stderr1
-rw-r--r--src/test/ui/rfc-2005-default-binding-mode/suggestion.stderr1
-rw-r--r--src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr1
-rw-r--r--src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr2
-rw-r--r--src/test/ui/rfc1598-generic-associated-types/iterable.stderr1
-rw-r--r--src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr1
-rw-r--r--src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr1
-rw-r--r--src/test/ui/self-impl.stderr1
-rw-r--r--src/test/ui/shadowed-lifetime.stderr1
-rw-r--r--src/test/ui/shadowed-type-parameter.stderr1
-rw-r--r--src/test/ui/span/E0046.stderr1
-rw-r--r--src/test/ui/span/E0057.stderr1
-rw-r--r--src/test/ui/span/E0072.stderr1
-rw-r--r--src/test/ui/span/E0204.stderr1
-rw-r--r--src/test/ui/span/E0493.stderr1
-rw-r--r--src/test/ui/span/E0535.stderr1
-rw-r--r--src/test/ui/span/E0536.stderr1
-rw-r--r--src/test/ui/span/E0537.stderr1
-rw-r--r--src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr2
-rw-r--r--src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr1
-rw-r--r--src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr2
-rw-r--r--src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr1
-rw-r--r--src/test/ui/span/borrowck-fn-in-const-b.stderr1
-rw-r--r--src/test/ui/span/borrowck-let-suggestion-suffixes.stderr1
-rw-r--r--src/test/ui/span/borrowck-object-mutability.stderr1
-rw-r--r--src/test/ui/span/borrowck-ref-into-rvalue.stderr1
-rw-r--r--src/test/ui/span/coerce-suggestions.stderr1
-rw-r--r--src/test/ui/span/destructor-restrictions.stderr1
-rw-r--r--src/test/ui/span/dropck-object-cycle.stderr1
-rw-r--r--src/test/ui/span/dropck_arr_cycle_checked.stderr1
-rw-r--r--src/test/ui/span/dropck_direct_cycle_with_drop.stderr1
-rw-r--r--src/test/ui/span/dropck_misc_variants.stderr1
-rw-r--r--src/test/ui/span/dropck_vec_cycle_checked.stderr1
-rw-r--r--src/test/ui/span/gated-features-attr-spans.stderr1
-rw-r--r--src/test/ui/span/impl-wrong-item-for-trait.stderr2
-rw-r--r--src/test/ui/span/issue-11925.stderr1
-rw-r--r--src/test/ui/span/issue-15480.stderr1
-rw-r--r--src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr1
-rw-r--r--src/test/ui/span/issue-23729.stderr1
-rw-r--r--src/test/ui/span/issue-23827.stderr1
-rw-r--r--src/test/ui/span/issue-24356.stderr1
-rw-r--r--src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr1
-rw-r--r--src/test/ui/span/issue-24805-dropck-trait-has-items.stderr1
-rw-r--r--src/test/ui/span/issue-24895-copy-clone-dropck.stderr1
-rw-r--r--src/test/ui/span/issue-25199.stderr1
-rw-r--r--src/test/ui/span/issue-26656.stderr1
-rw-r--r--src/test/ui/span/issue-27522.stderr1
-rw-r--r--src/test/ui/span/issue-29106.stderr1
-rw-r--r--src/test/ui/span/issue-29595.stderr1
-rw-r--r--src/test/ui/span/issue-33884.stderr1
-rw-r--r--src/test/ui/span/issue-34264.stderr2
-rw-r--r--src/test/ui/span/issue-35987.stderr2
-rw-r--r--src/test/ui/span/issue-36530.stderr1
-rw-r--r--src/test/ui/span/issue-36537.stderr1
-rw-r--r--src/test/ui/span/issue-37767.stderr1
-rw-r--r--src/test/ui/span/issue-39018.stderr1
-rw-r--r--src/test/ui/span/issue-39698.stderr1
-rw-r--r--src/test/ui/span/issue-40157.stderr1
-rw-r--r--src/test/ui/span/issue-42234-unknown-receiver-type.stderr1
-rw-r--r--src/test/ui/span/issue-7575.stderr1
-rw-r--r--src/test/ui/span/issue28498-reject-ex1.stderr1
-rw-r--r--src/test/ui/span/issue28498-reject-lifetime-param.stderr1
-rw-r--r--src/test/ui/span/issue28498-reject-passed-to-fn.stderr1
-rw-r--r--src/test/ui/span/issue28498-reject-trait-bound.stderr1
-rw-r--r--src/test/ui/span/loan-extend.stderr1
-rw-r--r--src/test/ui/span/missing-unit-argument.stderr1
-rw-r--r--src/test/ui/span/move-closure.stderr1
-rw-r--r--src/test/ui/span/multiline-span-E0072.stderr1
-rw-r--r--src/test/ui/span/multiline-span-simple.stderr1
-rw-r--r--src/test/ui/span/mut-arg-hint.stderr1
-rw-r--r--src/test/ui/span/mut-ptr-cant-outlive-ref.stderr1
-rw-r--r--src/test/ui/span/non-existing-module-import.stderr1
-rw-r--r--src/test/ui/span/pub-struct-field.stderr1
-rw-r--r--src/test/ui/span/range-2.stderr1
-rw-r--r--src/test/ui/span/recursive-type-field.stderr1
-rw-r--r--src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr1
-rw-r--r--src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr1
-rw-r--r--src/test/ui/span/regions-close-over-type-parameter-2.stderr1
-rw-r--r--src/test/ui/span/regions-escape-loop-via-variable.stderr1
-rw-r--r--src/test/ui/span/regions-escape-loop-via-vec.stderr2
-rw-r--r--src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr1
-rw-r--r--src/test/ui/span/send-is-not-static-ensures-scoping.stderr1
-rw-r--r--src/test/ui/span/send-is-not-static-std-sync-2.stderr1
-rw-r--r--src/test/ui/span/send-is-not-static-std-sync.stderr2
-rw-r--r--src/test/ui/span/slice-borrow.stderr1
-rw-r--r--src/test/ui/span/suggestion-non-ascii.stderr1
-rw-r--r--src/test/ui/span/type-binding.stderr1
-rw-r--r--src/test/ui/span/typo-suggestion.stderr1
-rw-r--r--src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr1
-rw-r--r--src/test/ui/span/vec_refs_data_with_early_death.stderr1
-rw-r--r--src/test/ui/span/wf-method-late-bound-regions.stderr1
-rw-r--r--src/test/ui/specialization-feature-gate-default.stderr1
-rw-r--r--src/test/ui/specialization-feature-gate-overlap.stderr1
-rw-r--r--src/test/ui/static-lifetime.stderr1
-rw-r--r--src/test/ui/str-concat-on-double-ref.stderr1
-rw-r--r--src/test/ui/str-lit-type-mismatch.stderr1
-rw-r--r--src/test/ui/struct-fields-decl-dupe.stderr1
-rw-r--r--src/test/ui/struct-fields-hints-no-dupe.stderr1
-rw-r--r--src/test/ui/struct-fields-hints.stderr1
-rw-r--r--src/test/ui/struct-fields-too-many.stderr1
-rw-r--r--src/test/ui/struct-path-self-type-mismatch.stderr1
-rw-r--r--src/test/ui/suggest-private-fields.stderr1
-rw-r--r--src/test/ui/suggestions/closure-immutable-outer-variable.stderr1
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr1
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr1
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr1
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr1
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/private-field.stderr1
-rw-r--r--src/test/ui/suggestions/conversion-methods.stderr1
-rw-r--r--src/test/ui/suggestions/dont-suggest-dereference-on-arg.stderr1
-rw-r--r--src/test/ui/suggestions/dont-suggest-private-trait-method.stderr1
-rw-r--r--src/test/ui/suggestions/extern-crate-rename.stderr1
-rw-r--r--src/test/ui/suggestions/fn-closure-mutable-capture.stderr1
-rw-r--r--src/test/ui/suggestions/for-c-in-str.stderr1
-rw-r--r--src/test/ui/suggestions/issue-32354-suggest-import-rename.stderr1
-rw-r--r--src/test/ui/suggestions/issue-43420-no-over-suggest.stderr1
-rw-r--r--src/test/ui/suggestions/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr1
-rw-r--r--src/test/ui/suggestions/issue-46756-consider-borrowing-cast-or-binexpr.stderr1
-rw-r--r--src/test/ui/suggestions/method-on-ambiguous-numeric-type.stderr1
-rw-r--r--src/test/ui/suggestions/numeric-cast-2.stderr1
-rw-r--r--src/test/ui/suggestions/numeric-cast.stderr1
-rw-r--r--src/test/ui/suggestions/return-type.stderr1
-rw-r--r--src/test/ui/suggestions/str-array-assignment.stderr2
-rw-r--r--src/test/ui/suggestions/suggest-labels.stderr1
-rw-r--r--src/test/ui/suggestions/suggest-methods.stderr1
-rw-r--r--src/test/ui/suggestions/try-on-option.stderr1
-rw-r--r--src/test/ui/suggestions/try-operator-on-main.stderr1
-rw-r--r--src/test/ui/suggestions/type-ascription-instead-of-initializer.stderr1
-rw-r--r--src/test/ui/suggestions/type-ascription-with-fn-call.stderr1
-rw-r--r--src/test/ui/svh-change-lit.stderr1
-rw-r--r--src/test/ui/svh-change-significant-cfg.stderr1
-rw-r--r--src/test/ui/svh-change-trait-bound.stderr1
-rw-r--r--src/test/ui/svh-change-type-arg.stderr1
-rw-r--r--src/test/ui/svh-change-type-ret.stderr1
-rw-r--r--src/test/ui/svh-change-type-static.stderr1
-rw-r--r--src/test/ui/svh-use-trait.stderr1
-rw-r--r--src/test/ui/switched-expectations.stderr1
-rw-r--r--src/test/ui/token/issue-10636-2.stderr1
-rw-r--r--src/test/ui/token/issue-15980.stderr1
-rw-r--r--src/test/ui/token/issue-41155.stderr2
-rw-r--r--src/test/ui/trait-alias.stderr1
-rw-r--r--src/test/ui/trait-duplicate-methods.stderr1
-rw-r--r--src/test/ui/trait-method-private.stderr1
-rw-r--r--src/test/ui/trait-safety-fn-body.stderr1
-rw-r--r--src/test/ui/trait-suggest-where-clause.stderr1
-rw-r--r--src/test/ui/traits-multidispatch-convert-ambig-dest.stderr1
-rw-r--r--src/test/ui/transmute/main.stderr1
-rw-r--r--src/test/ui/transmute/transmute-from-fn-item-types-error.stderr2
-rw-r--r--src/test/ui/transmute/transmute-type-parameters.stderr1
-rw-r--r--src/test/ui/type-annotation-needed.stderr1
-rw-r--r--src/test/ui/type-check/assignment-in-if.stderr1
-rw-r--r--src/test/ui/type-check/cannot_infer_local_or_array.stderr1
-rw-r--r--src/test/ui/type-check/cannot_infer_local_or_vec.stderr1
-rw-r--r--src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr1
-rw-r--r--src/test/ui/type-check/issue-22897.stderr1
-rw-r--r--src/test/ui/type-check/issue-40294.stderr1
-rw-r--r--src/test/ui/type-check/issue-41314.stderr2
-rw-r--r--src/test/ui/type-check/missing_trait_impl.stderr1
-rw-r--r--src/test/ui/type-check/unknown_type_for_closure.stderr1
-rw-r--r--src/test/ui/type-recursive.stderr1
-rw-r--r--src/test/ui/typeck-builtin-bound-type-parameters.stderr2
-rw-r--r--src/test/ui/typeck_type_placeholder_item.stderr1
-rw-r--r--src/test/ui/typeck_type_placeholder_lifetime_1.stderr1
-rw-r--r--src/test/ui/typeck_type_placeholder_lifetime_2.stderr1
-rw-r--r--src/test/ui/unboxed-closure-no-cyclic-sig.stderr1
-rw-r--r--src/test/ui/unboxed-closure-sugar-wrong-trait.stderr2
-rw-r--r--src/test/ui/unboxed-closures-infer-fn-once-move-from-projection.stderr1
-rw-r--r--src/test/ui/unconstrained-none.stderr1
-rw-r--r--src/test/ui/unconstrained-ref.stderr1
-rw-r--r--src/test/ui/union/union-const-eval.stderr1
-rw-r--r--src/test/ui/union/union-derive-eq.stderr1
-rw-r--r--src/test/ui/union/union-fields-2.stderr2
-rw-r--r--src/test/ui/union/union-sized-field.stderr1
-rw-r--r--src/test/ui/union/union-suggest-field.stderr2
-rw-r--r--src/test/ui/unknown-language-item.stderr1
-rw-r--r--src/test/ui/unsafe-const-fn.stderr1
-rw-r--r--src/test/ui/unsized-enum2.stderr1
-rw-r--r--src/test/ui/use-mod.stderr2
-rw-r--r--src/test/ui/use-nested-groups-error.stderr1
-rw-r--r--src/test/ui/variadic-ffi-3.stderr2
-rw-r--r--src/test/ui/variance-unused-type-param.stderr1
-rw-r--r--src/test/ui/vector-no-ann.stderr1
-rw-r--r--src/tools/compiletest/src/json.rs19
-rw-r--r--src/tools/compiletest/src/runtest.rs40
1042 files changed, 1352 insertions, 45 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index a49284eb55a..86e77d404ff 100644
--- a/src/librustc_errors/emitter.rs
+++ b/src/librustc_errors/emitter.rs
@@ -21,7 +21,7 @@ use std::io::prelude::*;
 use std::io;
 use std::rc::Rc;
 use term;
-use std::collections::HashMap;
+use std::collections::{HashMap, HashSet};
 use std::cmp::min;
 use unicode_width;
 
@@ -107,6 +107,7 @@ pub struct EmitterWriter {
     cm: Option<Rc<CodeMapper>>,
     short_message: bool,
     teach: bool,
+    error_codes: HashSet<String>,
 }
 
 struct FileWithAnnotatedLines {
@@ -115,6 +116,33 @@ struct FileWithAnnotatedLines {
     multiline_depth: usize,
 }
 
+impl Drop for EmitterWriter {
+    fn drop(&mut self) {
+        if !self.short_message && !self.error_codes.is_empty() {
+            let mut error_codes = self.error_codes.clone().into_iter().collect::<Vec<_>>();
+            error_codes.sort();
+            if error_codes.len() > 1 {
+                let limit = if error_codes.len() > 9 { 9 } else { error_codes.len() };
+                writeln!(self.dst,
+                         "You've got a few errors: {}{}",
+                         error_codes[..limit].join(", "),
+                         if error_codes.len() > 9 { "..." } else { "" }
+                        ).expect("failed to give tips...");
+                writeln!(self.dst,
+                         "If you want more information on an error, try using \
+                          \"rustc --explain {}\"",
+                         &error_codes[0]).expect("failed to give tips...");
+            } else {
+                writeln!(self.dst,
+                         "If you want more information on this error, try using \
+                          \"rustc --explain {}\"",
+                         &error_codes[0]).expect("failed to give tips...");
+            }
+            self.dst.flush().expect("failed to emit errors");
+        }
+    }
+}
+
 impl EmitterWriter {
     pub fn stderr(color_config: ColorConfig,
                   code_map: Option<Rc<CodeMapper>>,
@@ -128,6 +156,7 @@ impl EmitterWriter {
                 cm: code_map,
                 short_message,
                 teach,
+                error_codes: HashSet::new(),
             }
         } else {
             EmitterWriter {
@@ -135,6 +164,7 @@ impl EmitterWriter {
                 cm: code_map,
                 short_message,
                 teach,
+                error_codes: HashSet::new(),
             }
         }
     }
@@ -149,6 +179,7 @@ impl EmitterWriter {
             cm: code_map,
             short_message,
             teach,
+            error_codes: HashSet::new(),
         }
     }
 
@@ -975,12 +1006,14 @@ impl EmitterWriter {
             if primary_span != &&DUMMY_SP {
                 (cm.lookup_char_pos(primary_span.lo()), cm)
             } else {
-                emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
+                emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message,
+                                    &mut self.error_codes)?;
                 return Ok(());
             }
         } else {
             // If we don't have span information, emit and exit
-            emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
+            emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message,
+                                &mut self.error_codes)?;
             return Ok(());
         };
         if let Ok(pos) =
@@ -1153,7 +1186,8 @@ impl EmitterWriter {
         }
 
         // final step: take our styled buffer, render it, then output it
-        emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
+        emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message,
+                            &mut self.error_codes)?;
 
         Ok(())
 
@@ -1241,7 +1275,8 @@ impl EmitterWriter {
                 let msg = format!("and {} other candidates", suggestions.len() - MAX_SUGGESTIONS);
                 buffer.puts(row_num, 0, &msg, Style::NoStyle);
             }
-            emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
+            emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message,
+                                &mut self.error_codes)?;
         }
         Ok(())
     }
@@ -1269,7 +1304,7 @@ impl EmitterWriter {
                         draw_col_separator_no_space(&mut buffer, 0, max_line_num_len + 1);
                     }
                     match emit_to_destination(&buffer.render(), level, &mut self.dst,
-                                              self.short_message) {
+                                              self.short_message, &mut self.error_codes) {
                         Ok(()) => (),
                         Err(e) => panic!("failed to emit error: {}", e)
                     }
@@ -1362,7 +1397,8 @@ fn overlaps(a1: &Annotation, a2: &Annotation, padding: usize) -> bool {
 fn emit_to_destination(rendered_buffer: &Vec<Vec<StyledString>>,
                        lvl: &Level,
                        dst: &mut Destination,
-                       short_message: bool)
+                       short_message: bool,
+                       error_codes: &mut HashSet<String>)
                        -> io::Result<()> {
     use lock;
 
@@ -1383,6 +1419,9 @@ fn emit_to_destination(rendered_buffer: &Vec<Vec<StyledString>>,
         for part in line {
             dst.apply_style(lvl.clone(), part.style)?;
             write!(dst, "{}", part.text)?;
+            if !short_message && part.text.len() == 12 && part.text.starts_with("error[E") {
+                error_codes.insert(part.text[6..11].to_owned());
+            }
             dst.reset_attrs()?;
         }
         if !short_message {
diff --git a/src/test/ui-fulldeps/lint-plugin-forbid-attrs.stderr b/src/test/ui-fulldeps/lint-plugin-forbid-attrs.stderr
index 459be9db578..b9d166589b0 100644
--- a/src/test/ui-fulldeps/lint-plugin-forbid-attrs.stderr
+++ b/src/test/ui-fulldeps/lint-plugin-forbid-attrs.stderr
@@ -21,3 +21,4 @@ error[E0453]: allow(test_lint) overruled by outer forbid(test_lint)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0453"
diff --git a/src/test/ui-fulldeps/proc-macro/signature.stderr b/src/test/ui-fulldeps/proc-macro/signature.stderr
index 2beb0aac862..b89f67d9069 100644
--- a/src/test/ui-fulldeps/proc-macro/signature.stderr
+++ b/src/test/ui-fulldeps/proc-macro/signature.stderr
@@ -12,3 +12,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/anonymous-higher-ranked-lifetime.stderr b/src/test/ui/anonymous-higher-ranked-lifetime.stderr
index 4bd3b684b7b..96ae2afe220 100644
--- a/src/test/ui/anonymous-higher-ranked-lifetime.stderr
+++ b/src/test/ui/anonymous-higher-ranked-lifetime.stderr
@@ -154,3 +154,4 @@ note: required by `h2`
 
 error: aborting due to 11 previous errors
 
+If you want more information on this error, try using "rustc --explain E0631"
diff --git a/src/test/ui/arbitrary-self-types-not-object-safe.stderr b/src/test/ui/arbitrary-self-types-not-object-safe.stderr
index f258488ee2f..fa8b82b8a9b 100644
--- a/src/test/ui/arbitrary-self-types-not-object-safe.stderr
+++ b/src/test/ui/arbitrary-self-types-not-object-safe.stderr
@@ -17,3 +17,4 @@ error[E0038]: the trait `Foo` cannot be made into an object
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/asm-out-assign-imm.stderr b/src/test/ui/asm-out-assign-imm.stderr
index cf5486fec5f..90104e64972 100644
--- a/src/test/ui/asm-out-assign-imm.stderr
+++ b/src/test/ui/asm-out-assign-imm.stderr
@@ -9,3 +9,4 @@ error[E0384]: cannot assign twice to immutable variable `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0384"
diff --git a/src/test/ui/associated-const-impl-wrong-lifetime.stderr b/src/test/ui/associated-const-impl-wrong-lifetime.stderr
index ab0e1003a9e..6ec274ac4f9 100644
--- a/src/test/ui/associated-const-impl-wrong-lifetime.stderr
+++ b/src/test/ui/associated-const-impl-wrong-lifetime.stderr
@@ -15,3 +15,4 @@ note: the lifetime 'a as defined on the impl at 17:1...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/associated-const-impl-wrong-type.stderr b/src/test/ui/associated-const-impl-wrong-type.stderr
index a2afe905cb5..e741aa742c1 100644
--- a/src/test/ui/associated-const-impl-wrong-type.stderr
+++ b/src/test/ui/associated-const-impl-wrong-type.stderr
@@ -9,3 +9,4 @@ error[E0326]: implemented const `BAR` has an incompatible type for trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0326"
diff --git a/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr b/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr
index 6215c1dc089..b924fbaeb39 100644
--- a/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr
+++ b/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr
@@ -42,3 +42,5 @@ error[E0221]: ambiguous associated type `Color` in bounds of `C`
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0191, E0221
+If you want more information on an error, try using "rustc --explain E0191"
diff --git a/src/test/ui/associated-types-ICE-when-projecting-out-of-err.stderr b/src/test/ui/associated-types-ICE-when-projecting-out-of-err.stderr
index 1a49cc7a283..b1819961127 100644
--- a/src/test/ui/associated-types-ICE-when-projecting-out-of-err.stderr
+++ b/src/test/ui/associated-types-ICE-when-projecting-out-of-err.stderr
@@ -6,3 +6,4 @@ error[E0277]: the trait bound `(): Add<A>` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/associated-types-in-ambiguous-context.stderr b/src/test/ui/associated-types-in-ambiguous-context.stderr
index b0196234bda..33b83b787ad 100644
--- a/src/test/ui/associated-types-in-ambiguous-context.stderr
+++ b/src/test/ui/associated-types-in-ambiguous-context.stderr
@@ -24,3 +24,4 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0223"
diff --git a/src/test/ui/attr-usage-repr.stderr b/src/test/ui/attr-usage-repr.stderr
index b9c012630e9..6ab0e0029c9 100644
--- a/src/test/ui/attr-usage-repr.stderr
+++ b/src/test/ui/attr-usage-repr.stderr
@@ -40,3 +40,4 @@ error[E0517]: attribute should be applied to struct
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0517"
diff --git a/src/test/ui/augmented-assignments.stderr b/src/test/ui/augmented-assignments.stderr
index 0367270d166..d3d3e0b6dd3 100644
--- a/src/test/ui/augmented-assignments.stderr
+++ b/src/test/ui/augmented-assignments.stderr
@@ -20,3 +20,5 @@ error[E0382]: use of moved value: `x`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0382, E0596
+If you want more information on an error, try using "rustc --explain E0382"
diff --git a/src/test/ui/binary-op-on-double-ref.stderr b/src/test/ui/binary-op-on-double-ref.stderr
index 4a2490bac91..64897fadaa6 100644
--- a/src/test/ui/binary-op-on-double-ref.stderr
+++ b/src/test/ui/binary-op-on-double-ref.stderr
@@ -9,3 +9,4 @@ error[E0369]: binary operation `%` cannot be applied to type `&&{integer}`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/blind-item-item-shadow.stderr b/src/test/ui/blind-item-item-shadow.stderr
index d3588be2669..227e157cf9f 100644
--- a/src/test/ui/blind-item-item-shadow.stderr
+++ b/src/test/ui/blind-item-item-shadow.stderr
@@ -15,3 +15,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0255"
diff --git a/src/test/ui/block-result/block-must-not-have-result-do.stderr b/src/test/ui/block-result/block-must-not-have-result-do.stderr
index d4024f41c26..8c8e30a7262 100644
--- a/src/test/ui/block-result/block-must-not-have-result-do.stderr
+++ b/src/test/ui/block-result/block-must-not-have-result-do.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/block-must-not-have-result-res.stderr b/src/test/ui/block-result/block-must-not-have-result-res.stderr
index 20c7dc416f3..b64a0c62a1a 100644
--- a/src/test/ui/block-result/block-must-not-have-result-res.stderr
+++ b/src/test/ui/block-result/block-must-not-have-result-res.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/block-must-not-have-result-while.stderr b/src/test/ui/block-result/block-must-not-have-result-while.stderr
index 888a64c1bb1..4b0c4bb776c 100644
--- a/src/test/ui/block-result/block-must-not-have-result-while.stderr
+++ b/src/test/ui/block-result/block-must-not-have-result-while.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/consider-removing-last-semi.stderr b/src/test/ui/block-result/consider-removing-last-semi.stderr
index 453f3879f4b..3e434a0ca3f 100644
--- a/src/test/ui/block-result/consider-removing-last-semi.stderr
+++ b/src/test/ui/block-result/consider-removing-last-semi.stderr
@@ -28,3 +28,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/issue-11714.stderr b/src/test/ui/block-result/issue-11714.stderr
index 946d1804894..3b6fd336583 100644
--- a/src/test/ui/block-result/issue-11714.stderr
+++ b/src/test/ui/block-result/issue-11714.stderr
@@ -15,3 +15,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/issue-13428.stderr b/src/test/ui/block-result/issue-13428.stderr
index 22bbb2aadf6..fbf3c6bd40a 100644
--- a/src/test/ui/block-result/issue-13428.stderr
+++ b/src/test/ui/block-result/issue-13428.stderr
@@ -31,3 +31,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/issue-13624.stderr b/src/test/ui/block-result/issue-13624.stderr
index cd8c28cd2cf..e6e1cfdc3ab 100644
--- a/src/test/ui/block-result/issue-13624.stderr
+++ b/src/test/ui/block-result/issue-13624.stderr
@@ -20,3 +20,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/issue-20862.stderr b/src/test/ui/block-result/issue-20862.stderr
index 3b4f514de7d..f2d98a1bb74 100644
--- a/src/test/ui/block-result/issue-20862.stderr
+++ b/src/test/ui/block-result/issue-20862.stderr
@@ -17,3 +17,5 @@ error[E0618]: expected function, found `()`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0308, E0618
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/issue-22645.stderr b/src/test/ui/block-result/issue-22645.stderr
index c6113ae0c9f..57e500dba82 100644
--- a/src/test/ui/block-result/issue-22645.stderr
+++ b/src/test/ui/block-result/issue-22645.stderr
@@ -22,3 +22,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0277, E0308
+If you want more information on an error, try using "rustc --explain E0277"
diff --git a/src/test/ui/block-result/issue-3563.stderr b/src/test/ui/block-result/issue-3563.stderr
index c3d5f21b0a5..6b9fef6cba6 100644
--- a/src/test/ui/block-result/issue-3563.stderr
+++ b/src/test/ui/block-result/issue-3563.stderr
@@ -8,3 +8,4 @@ error[E0599]: no method named `b` found for type `&Self` in the current scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/block-result/issue-5500.stderr b/src/test/ui/block-result/issue-5500.stderr
index 29dbd5a8cf5..bbe0e883cc7 100644
--- a/src/test/ui/block-result/issue-5500.stderr
+++ b/src/test/ui/block-result/issue-5500.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/block-result/unexpected-return-on-unit.stderr b/src/test/ui/block-result/unexpected-return-on-unit.stderr
index 3881bb46258..39d55aced3a 100644
--- a/src/test/ui/block-result/unexpected-return-on-unit.stderr
+++ b/src/test/ui/block-result/unexpected-return-on-unit.stderr
@@ -17,3 +17,4 @@ help: try adding a return type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/bogus-tag.stderr b/src/test/ui/bogus-tag.stderr
index 49dedcd0742..d57c5cbde5f 100644
--- a/src/test/ui/bogus-tag.stderr
+++ b/src/test/ui/bogus-tag.stderr
@@ -9,3 +9,4 @@ error[E0599]: no variant named `hsl` found for type `color` in the current scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/borrowck/borrowck-box-insensitivity.stderr b/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
index 88e8490843d..1df7be00a78 100644
--- a/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
+++ b/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
@@ -161,3 +161,5 @@ error[E0502]: cannot borrow `a.y` as mutable because `a.x.x` is also borrowed as
 
 error: aborting due to 16 previous errors
 
+You've got a few errors: E0382, E0502, E0503, E0505
+If you want more information on an error, try using "rustc --explain E0382"
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr b/src/test/ui/borrowck/borrowck-closures-two-mut.stderr
index 0ec744f4a07..a9d585e332e 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr
+++ b/src/test/ui/borrowck/borrowck-closures-two-mut.stderr
@@ -150,3 +150,4 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
 
 error: aborting due to 10 previous errors
 
+If you want more information on this error, try using "rustc --explain E0499"
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr
index cc0bd15c489..9dca165c022 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr
+++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr
@@ -12,3 +12,4 @@ help: to force the closure to take ownership of `books` (and any other reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0373"
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr
index f8963c175c8..6becf90214f 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr
+++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr
@@ -12,3 +12,4 @@ help: to force the closure to take ownership of `books` (and any other reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0373"
diff --git a/src/test/ui/borrowck/borrowck-in-static.stderr b/src/test/ui/borrowck/borrowck-in-static.stderr
index 6e47c46cdec..cafc608d794 100644
--- a/src/test/ui/borrowck/borrowck-in-static.stderr
+++ b/src/test/ui/borrowck/borrowck-in-static.stderr
@@ -8,3 +8,4 @@ error[E0507]: cannot move out of captured outer variable in an `Fn` closure
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "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 c16c80345d5..b4edd80bfe7 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
+++ b/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
@@ -34,3 +34,5 @@ error[E0507]: cannot move out of borrowed content
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0507, E0509
+If you want more information on an error, try using "rustc --explain E0507"
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr b/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
index f99bbb20ccd..2199c3ca45c 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
+++ b/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
@@ -15,3 +15,4 @@ error[E0508]: cannot move out of type `[Foo]`, a non-copy slice
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0508"
diff --git a/src/test/ui/borrowck/borrowck-reinit.stderr b/src/test/ui/borrowck/borrowck-reinit.stderr
index f36ed050515..4f212e7d79e 100644
--- a/src/test/ui/borrowck/borrowck-reinit.stderr
+++ b/src/test/ui/borrowck/borrowck-reinit.stderr
@@ -20,3 +20,4 @@ error[E0382]: use of moved value: `x` (Mir)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0382"
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 fb6917141fc..27e34fde244 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
+++ b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
@@ -36,3 +36,5 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0499, E0502
+If you want more information on an error, try using "rustc --explain E0499"
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
index 899ffb446b9..2c3509e9902 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
@@ -80,3 +80,5 @@ error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy sli
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0506, E0508
+If you want more information on an error, try using "rustc --explain E0506"
diff --git a/src/test/ui/borrowck/immutable-arg.stderr b/src/test/ui/borrowck/immutable-arg.stderr
index 40e1878f732..68aeae30e71 100644
--- a/src/test/ui/borrowck/immutable-arg.stderr
+++ b/src/test/ui/borrowck/immutable-arg.stderr
@@ -16,3 +16,4 @@ error[E0384]: cannot assign to immutable argument `_x` (Mir)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0384"
diff --git a/src/test/ui/borrowck/issue-41962.stderr b/src/test/ui/borrowck/issue-41962.stderr
index 13305fd9656..377171510c9 100644
--- a/src/test/ui/borrowck/issue-41962.stderr
+++ b/src/test/ui/borrowck/issue-41962.stderr
@@ -54,3 +54,4 @@ error[E0382]: use of moved value: `maybe.0` (Mir)
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop.stderr b/src/test/ui/borrowck/mut-borrow-in-loop.stderr
index 2b614561d82..755765a0383 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop.stderr
+++ b/src/test/ui/borrowck/mut-borrow-in-loop.stderr
@@ -27,3 +27,4 @@ error[E0499]: cannot borrow `*arg` as mutable more than once at a time
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0499"
diff --git a/src/test/ui/borrowck/mut-borrow-outside-loop.stderr b/src/test/ui/borrowck/mut-borrow-outside-loop.stderr
index 716edd21982..2064129ab74 100644
--- a/src/test/ui/borrowck/mut-borrow-outside-loop.stderr
+++ b/src/test/ui/borrowck/mut-borrow-outside-loop.stderr
@@ -21,3 +21,4 @@ error[E0499]: cannot borrow `inner_void` as mutable more than once at a time
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0499"
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 e8323247af9..435640769dd 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
@@ -46,3 +46,5 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0195, E0276, E0308
+If you want more information on an error, try using "rustc --explain E0195"
diff --git a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr b/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
index 6aa0846f53e..69f4742424b 100644
--- a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
+++ b/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
@@ -9,3 +9,4 @@ error[E0507]: cannot move out of captured outer variable in an `Fn` closure
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0507"
diff --git a/src/test/ui/cast-as-bool.stderr b/src/test/ui/cast-as-bool.stderr
index 346ebf07fc3..cdf4d30ee4c 100644
--- a/src/test/ui/cast-as-bool.stderr
+++ b/src/test/ui/cast-as-bool.stderr
@@ -8,3 +8,4 @@ error[E0054]: cannot cast as `bool`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0054"
diff --git a/src/test/ui/cast-errors-issue-43825.stderr b/src/test/ui/cast-errors-issue-43825.stderr
index db0a33e927f..0f0a5054b51 100644
--- a/src/test/ui/cast-errors-issue-43825.stderr
+++ b/src/test/ui/cast-errors-issue-43825.stderr
@@ -6,3 +6,4 @@ error[E0425]: cannot find value `error` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/cast-rfc0401-2.stderr b/src/test/ui/cast-rfc0401-2.stderr
index 1febe6a618f..2262ae8338b 100644
--- a/src/test/ui/cast-rfc0401-2.stderr
+++ b/src/test/ui/cast-rfc0401-2.stderr
@@ -8,3 +8,4 @@ error[E0054]: cannot cast as `bool`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0054"
diff --git a/src/test/ui/cast-to-unsized-trait-object-suggestion.stderr b/src/test/ui/cast-to-unsized-trait-object-suggestion.stderr
index 55d41848b17..b2a73a86bb1 100644
--- a/src/test/ui/cast-to-unsized-trait-object-suggestion.stderr
+++ b/src/test/ui/cast-to-unsized-trait-object-suggestion.stderr
@@ -16,3 +16,4 @@ error[E0620]: cast to unsized type: `std::boxed::Box<{integer}>` as `std::marker
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0620"
diff --git a/src/test/ui/casts-differing-anon.stderr b/src/test/ui/casts-differing-anon.stderr
index 8db6854dba9..ccaa6e845b8 100644
--- a/src/test/ui/casts-differing-anon.stderr
+++ b/src/test/ui/casts-differing-anon.stderr
@@ -8,3 +8,4 @@ error[E0606]: casting `*mut impl std::fmt::Debug+?Sized` as `*mut impl std::fmt:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0606"
diff --git a/src/test/ui/casts-issue-46365.stderr b/src/test/ui/casts-issue-46365.stderr
index ce3c8593a97..1b24d82be2d 100644
--- a/src/test/ui/casts-issue-46365.stderr
+++ b/src/test/ui/casts-issue-46365.stderr
@@ -6,3 +6,4 @@ error[E0412]: cannot find type `Ipsum` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0412"
diff --git a/src/test/ui/changing-crates.stderr b/src/test/ui/changing-crates.stderr
index 50287fa3fde..ba93d78a970 100644
--- a/src/test/ui/changing-crates.stderr
+++ b/src/test/ui/changing-crates.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/check_match/issue-35609.stderr b/src/test/ui/check_match/issue-35609.stderr
index 1fc1d05636e..018d35b7c71 100644
--- a/src/test/ui/check_match/issue-35609.stderr
+++ b/src/test/ui/check_match/issue-35609.stderr
@@ -48,3 +48,4 @@ error[E0004]: non-exhaustive patterns: `Some(B)`, `Some(C)`, `Some(D)` and 2 mor
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/closure-expected-type/expect-region-supply-region.stderr b/src/test/ui/closure-expected-type/expect-region-supply-region.stderr
index 5c612522d9a..876e7b488a4 100644
--- a/src/test/ui/closure-expected-type/expect-region-supply-region.stderr
+++ b/src/test/ui/closure-expected-type/expect-region-supply-region.stderr
@@ -84,3 +84,4 @@ error: borrowed data cannot be stored outside of its closure
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/closure_context/issue-26046-fn-mut.stderr b/src/test/ui/closure_context/issue-26046-fn-mut.stderr
index 77ce1176b5c..791cdb46231 100644
--- a/src/test/ui/closure_context/issue-26046-fn-mut.stderr
+++ b/src/test/ui/closure_context/issue-26046-fn-mut.stderr
@@ -11,3 +11,4 @@ error[E0525]: expected a closure that implements the `Fn` trait, but this closur
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0525"
diff --git a/src/test/ui/closure_context/issue-26046-fn-once.stderr b/src/test/ui/closure_context/issue-26046-fn-once.stderr
index 4eed4461eba..98579a28217 100644
--- a/src/test/ui/closure_context/issue-26046-fn-once.stderr
+++ b/src/test/ui/closure_context/issue-26046-fn-once.stderr
@@ -11,3 +11,4 @@ error[E0525]: expected a closure that implements the `Fn` trait, but this closur
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0525"
diff --git a/src/test/ui/closure_context/issue-42065.stderr b/src/test/ui/closure_context/issue-42065.stderr
index c195940ade6..05abf485378 100644
--- a/src/test/ui/closure_context/issue-42065.stderr
+++ b/src/test/ui/closure_context/issue-42065.stderr
@@ -14,3 +14,4 @@ note: closure cannot be invoked more than once because it moves the variable `di
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0382"
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 a7d52301476..168aebf13dd 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,3 +8,4 @@ error[E0592]: duplicate definitions with name `f`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0592"
diff --git a/src/test/ui/codemap_tests/empty_span.stderr b/src/test/ui/codemap_tests/empty_span.stderr
index 3474803b00d..0d9654c8697 100644
--- a/src/test/ui/codemap_tests/empty_span.stderr
+++ b/src/test/ui/codemap_tests/empty_span.stderr
@@ -6,3 +6,4 @@ error[E0321]: cross-crate traits with a default impl, like `std::marker::Send`,
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0321"
diff --git a/src/test/ui/codemap_tests/huge_multispan_highlight.stderr b/src/test/ui/codemap_tests/huge_multispan_highlight.stderr
index bc333bde93c..f7bcaa64fdd 100644
--- a/src/test/ui/codemap_tests/huge_multispan_highlight.stderr
+++ b/src/test/ui/codemap_tests/huge_multispan_highlight.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow immutable local variable `x` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/codemap_tests/issue-11715.stderr b/src/test/ui/codemap_tests/issue-11715.stderr
index bd8ffba00d4..c7fc7d4271a 100644
--- a/src/test/ui/codemap_tests/issue-11715.stderr
+++ b/src/test/ui/codemap_tests/issue-11715.stderr
@@ -10,3 +10,4 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0499"
diff --git a/src/test/ui/codemap_tests/issue-28308.stderr b/src/test/ui/codemap_tests/issue-28308.stderr
index c5afa5ec1a4..87b8f04ad1f 100644
--- a/src/test/ui/codemap_tests/issue-28308.stderr
+++ b/src/test/ui/codemap_tests/issue-28308.stderr
@@ -8,3 +8,4 @@ error[E0600]: cannot apply unary operator `!` to type `&'static str`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0600"
diff --git a/src/test/ui/codemap_tests/one_line.stderr b/src/test/ui/codemap_tests/one_line.stderr
index cfe3d527136..73ef9219e7e 100644
--- a/src/test/ui/codemap_tests/one_line.stderr
+++ b/src/test/ui/codemap_tests/one_line.stderr
@@ -9,3 +9,4 @@ error[E0499]: cannot borrow `v` as mutable more than once at a time
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0499"
diff --git a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
index 0ccdd207651..858e3e53349 100644
--- a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
+++ b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
@@ -29,3 +29,4 @@ error[E0592]: duplicate definitions with name `baz`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0592"
diff --git a/src/test/ui/codemap_tests/overlapping_spans.stderr b/src/test/ui/codemap_tests/overlapping_spans.stderr
index dc801b20dfb..edb970ffdff 100644
--- a/src/test/ui/codemap_tests/overlapping_spans.stderr
+++ b/src/test/ui/codemap_tests/overlapping_spans.stderr
@@ -9,3 +9,4 @@ error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0509"
diff --git a/src/test/ui/codemap_tests/tab.stderr b/src/test/ui/codemap_tests/tab.stderr
index c887821c6d1..cd52f414f64 100644
--- a/src/test/ui/codemap_tests/tab.stderr
+++ b/src/test/ui/codemap_tests/tab.stderr
@@ -17,3 +17,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0308, E0425
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/codemap_tests/tab_3.stderr b/src/test/ui/codemap_tests/tab_3.stderr
index 32202062663..0435aed7c8a 100644
--- a/src/test/ui/codemap_tests/tab_3.stderr
+++ b/src/test/ui/codemap_tests/tab_3.stderr
@@ -11,3 +11,4 @@ error[E0382]: use of moved value: `some_vec`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/codemap_tests/two_files.stderr b/src/test/ui/codemap_tests/two_files.stderr
index c0cfeef194d..8798081ad6d 100644
--- a/src/test/ui/codemap_tests/two_files.stderr
+++ b/src/test/ui/codemap_tests/two_files.stderr
@@ -6,3 +6,4 @@ error[E0404]: expected trait, found type alias `Bar`
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0404"
diff --git a/src/test/ui/codemap_tests/unicode_2.stderr b/src/test/ui/codemap_tests/unicode_2.stderr
index 9ffd08ca06f..879553740f3 100644
--- a/src/test/ui/codemap_tests/unicode_2.stderr
+++ b/src/test/ui/codemap_tests/unicode_2.stderr
@@ -22,3 +22,4 @@ error[E0425]: cannot find value `a̐é` in this scope
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/coercion-missing-tail-expected-type.stderr b/src/test/ui/coercion-missing-tail-expected-type.stderr
index 93f57216ca0..1e327a614a5 100644
--- a/src/test/ui/coercion-missing-tail-expected-type.stderr
+++ b/src/test/ui/coercion-missing-tail-expected-type.stderr
@@ -26,3 +26,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/coherence-error-suppression.stderr b/src/test/ui/coherence-error-suppression.stderr
index 57b746f19e8..ba8ad78ed40 100644
--- a/src/test/ui/coherence-error-suppression.stderr
+++ b/src/test/ui/coherence-error-suppression.stderr
@@ -6,3 +6,4 @@ error[E0412]: cannot find type `DoesNotExist` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0412"
diff --git a/src/test/ui/coherence-impls-copy.stderr b/src/test/ui/coherence-impls-copy.stderr
index e5e91df771f..e77771b43dd 100644
--- a/src/test/ui/coherence-impls-copy.stderr
+++ b/src/test/ui/coherence-impls-copy.stderr
@@ -57,3 +57,5 @@ error[E0117]: only traits defined in the current crate can be implemented for ar
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0117, E0206
+If you want more information on an error, try using "rustc --explain E0117"
diff --git a/src/test/ui/coherence-overlap-downstream-inherent.stderr b/src/test/ui/coherence-overlap-downstream-inherent.stderr
index aca6800deb5..45a2bef9dc2 100644
--- a/src/test/ui/coherence-overlap-downstream-inherent.stderr
+++ b/src/test/ui/coherence-overlap-downstream-inherent.stderr
@@ -20,3 +20,4 @@ error[E0592]: duplicate definitions with name `f`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0592"
diff --git a/src/test/ui/coherence-overlap-downstream.stderr b/src/test/ui/coherence-overlap-downstream.stderr
index c94ffd60d26..884afe72d04 100644
--- a/src/test/ui/coherence-overlap-downstream.stderr
+++ b/src/test/ui/coherence-overlap-downstream.stderr
@@ -18,3 +18,4 @@ error[E0119]: conflicting implementations of trait `Foo<_>` for type `i32`:
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/coherence-overlap-issue-23516-inherent.stderr b/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
index 24d9b26fe9d..95a034ac877 100644
--- a/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
+++ b/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
@@ -11,3 +11,4 @@ error[E0592]: duplicate definitions with name `dummy`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0592"
diff --git a/src/test/ui/coherence-overlap-issue-23516.stderr b/src/test/ui/coherence-overlap-issue-23516.stderr
index c27e1ad7620..33849086280 100644
--- a/src/test/ui/coherence-overlap-issue-23516.stderr
+++ b/src/test/ui/coherence-overlap-issue-23516.stderr
@@ -10,3 +10,4 @@ error[E0119]: conflicting implementations of trait `Sweet` for type `std::boxed:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/coherence-overlap-upstream-inherent.stderr b/src/test/ui/coherence-overlap-upstream-inherent.stderr
index db32bcb81c6..0e398eed792 100644
--- a/src/test/ui/coherence-overlap-upstream-inherent.stderr
+++ b/src/test/ui/coherence-overlap-upstream-inherent.stderr
@@ -11,3 +11,4 @@ error[E0592]: duplicate definitions with name `dummy`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0592"
diff --git a/src/test/ui/coherence-overlap-upstream.stderr b/src/test/ui/coherence-overlap-upstream.stderr
index 9b5b67fe9c7..c784dbecb9c 100644
--- a/src/test/ui/coherence-overlap-upstream.stderr
+++ b/src/test/ui/coherence-overlap-upstream.stderr
@@ -10,3 +10,4 @@ error[E0119]: conflicting implementations of trait `Foo` for type `i16`:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/command-line-diagnostics.stderr b/src/test/ui/command-line-diagnostics.stderr
index 48ca45914c6..fd7f98ea563 100644
--- a/src/test/ui/command-line-diagnostics.stderr
+++ b/src/test/ui/command-line-diagnostics.stderr
@@ -8,3 +8,4 @@ error[E0384]: cannot assign twice to immutable variable `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0384"
diff --git a/src/test/ui/compare-method/proj-outlives-region.stderr b/src/test/ui/compare-method/proj-outlives-region.stderr
index e6e93d14b3c..f695aa75906 100644
--- a/src/test/ui/compare-method/proj-outlives-region.stderr
+++ b/src/test/ui/compare-method/proj-outlives-region.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/region-extra-2.stderr b/src/test/ui/compare-method/region-extra-2.stderr
index 2b8a268fdcc..59af795be57 100644
--- a/src/test/ui/compare-method/region-extra-2.stderr
+++ b/src/test/ui/compare-method/region-extra-2.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/region-extra.stderr b/src/test/ui/compare-method/region-extra.stderr
index d89b3a921b9..8941abb6f16 100644
--- a/src/test/ui/compare-method/region-extra.stderr
+++ b/src/test/ui/compare-method/region-extra.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/region-unrelated.stderr b/src/test/ui/compare-method/region-unrelated.stderr
index 156143cd54c..c5e7cad7cfd 100644
--- a/src/test/ui/compare-method/region-unrelated.stderr
+++ b/src/test/ui/compare-method/region-unrelated.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/reordered-type-param.stderr b/src/test/ui/compare-method/reordered-type-param.stderr
index 4620248e2ef..9a5cb6267c3 100644
--- a/src/test/ui/compare-method/reordered-type-param.stderr
+++ b/src/test/ui/compare-method/reordered-type-param.stderr
@@ -12,3 +12,4 @@ error[E0053]: method `b` has an incompatible type for trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0053"
diff --git a/src/test/ui/compare-method/trait-bound-on-type-parameter.stderr b/src/test/ui/compare-method/trait-bound-on-type-parameter.stderr
index e3a1eb9ee66..84460922b67 100644
--- a/src/test/ui/compare-method/trait-bound-on-type-parameter.stderr
+++ b/src/test/ui/compare-method/trait-bound-on-type-parameter.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/traits-misc-mismatch-1.stderr b/src/test/ui/compare-method/traits-misc-mismatch-1.stderr
index ba5284eb653..74b529aab03 100644
--- a/src/test/ui/compare-method/traits-misc-mismatch-1.stderr
+++ b/src/test/ui/compare-method/traits-misc-mismatch-1.stderr
@@ -63,3 +63,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to 7 previous errors
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/compare-method/traits-misc-mismatch-2.stderr b/src/test/ui/compare-method/traits-misc-mismatch-2.stderr
index 983d87d5b88..97f96c7a6a5 100644
--- a/src/test/ui/compare-method/traits-misc-mismatch-2.stderr
+++ b/src/test/ui/compare-method/traits-misc-mismatch-2.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/const-deref-ptr.stderr b/src/test/ui/const-deref-ptr.stderr
index 60f9a3a37ba..d702d942107 100644
--- a/src/test/ui/const-deref-ptr.stderr
+++ b/src/test/ui/const-deref-ptr.stderr
@@ -6,3 +6,4 @@ error[E0396]: raw pointers cannot be dereferenced in statics
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0396"
diff --git a/src/test/ui/const-eval-overflow-2.stderr b/src/test/ui/const-eval-overflow-2.stderr
index a9d29d01071..fa8ddaaf43d 100644
--- a/src/test/ui/const-eval-overflow-2.stderr
+++ b/src/test/ui/const-eval-overflow-2.stderr
@@ -12,3 +12,4 @@ note: for pattern here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-eval-overflow-4.stderr b/src/test/ui/const-eval-overflow-4.stderr
index 98c6ae1b9bc..a02a587d0fd 100644
--- a/src/test/ui/const-eval-overflow-4.stderr
+++ b/src/test/ui/const-eval-overflow-4.stderr
@@ -14,3 +14,4 @@ error[E0080]: constant evaluation error
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-eval-span.stderr b/src/test/ui/const-eval-span.stderr
index e64af57a186..0caa87d22a2 100644
--- a/src/test/ui/const-eval-span.stderr
+++ b/src/test/ui/const-eval-span.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/const-eval/issue-43197.stderr b/src/test/ui/const-eval/issue-43197.stderr
index 82baab620ff..c2fe2ff367e 100644
--- a/src/test/ui/const-eval/issue-43197.stderr
+++ b/src/test/ui/const-eval/issue-43197.stderr
@@ -26,3 +26,4 @@ error[E0080]: constant evaluation error
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-expr-addr-operator.stderr b/src/test/ui/const-expr-addr-operator.stderr
index f6587c703bd..b501a552a2e 100644
--- a/src/test/ui/const-expr-addr-operator.stderr
+++ b/src/test/ui/const-expr-addr-operator.stderr
@@ -12,3 +12,4 @@ note: for pattern here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-fn-error.stderr b/src/test/ui/const-fn-error.stderr
index 4f4f8b5ad00..a66453c4e62 100644
--- a/src/test/ui/const-fn-error.stderr
+++ b/src/test/ui/const-fn-error.stderr
@@ -38,3 +38,5 @@ note: for constant expression here
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0015, E0016, E0019, E0080
+If you want more information on an error, try using "rustc --explain E0015"
diff --git a/src/test/ui/const-fn-mismatch.stderr b/src/test/ui/const-fn-mismatch.stderr
index 4f6a98fb8eb..17872f90bb8 100644
--- a/src/test/ui/const-fn-mismatch.stderr
+++ b/src/test/ui/const-fn-mismatch.stderr
@@ -6,3 +6,4 @@ error[E0379]: trait fns cannot be declared const
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0379"
diff --git a/src/test/ui/const-fn-not-in-trait.stderr b/src/test/ui/const-fn-not-in-trait.stderr
index d23bf3b411b..2246e01711e 100644
--- a/src/test/ui/const-fn-not-in-trait.stderr
+++ b/src/test/ui/const-fn-not-in-trait.stderr
@@ -12,3 +12,4 @@ error[E0379]: trait fns cannot be declared const
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0379"
diff --git a/src/test/ui/const-len-underflow-separate-spans.stderr b/src/test/ui/const-len-underflow-separate-spans.stderr
index 6e6c2130e1c..8678bc48d4b 100644
--- a/src/test/ui/const-len-underflow-separate-spans.stderr
+++ b/src/test/ui/const-len-underflow-separate-spans.stderr
@@ -20,3 +20,4 @@ note: for constant expression here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-pattern-irrefutable.stderr b/src/test/ui/const-pattern-irrefutable.stderr
index af48b773638..d2bba1ca29f 100644
--- a/src/test/ui/const-pattern-irrefutable.stderr
+++ b/src/test/ui/const-pattern-irrefutable.stderr
@@ -18,3 +18,4 @@ error[E0005]: refutable pattern in local binding: `_` not covered
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0005"
diff --git a/src/test/ui/const-pattern-not-const-evaluable.stderr b/src/test/ui/const-pattern-not-const-evaluable.stderr
index 5441937e4dd..9dccf4af6f4 100644
--- a/src/test/ui/const-pattern-not-const-evaluable.stderr
+++ b/src/test/ui/const-pattern-not-const-evaluable.stderr
@@ -12,3 +12,4 @@ note: for pattern here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/const-unsized.stderr b/src/test/ui/const-unsized.stderr
index ba948643a37..5946f94f700 100644
--- a/src/test/ui/const-unsized.stderr
+++ b/src/test/ui/const-unsized.stderr
@@ -36,3 +36,4 @@ error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/cycle-trait-supertrait-indirect.stderr b/src/test/ui/cycle-trait-supertrait-indirect.stderr
index a0156554646..7bc6dd51244 100644
--- a/src/test/ui/cycle-trait-supertrait-indirect.stderr
+++ b/src/test/ui/cycle-trait-supertrait-indirect.stderr
@@ -18,3 +18,4 @@ note: ...which then requires computing the supertraits of `C`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/deref-suggestion.stderr b/src/test/ui/deref-suggestion.stderr
index 4c2896e2207..3b91929ba3b 100644
--- a/src/test/ui/deref-suggestion.stderr
+++ b/src/test/ui/deref-suggestion.stderr
@@ -60,3 +60,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/derived-errors/issue-31997-1.stderr b/src/test/ui/derived-errors/issue-31997-1.stderr
index 732cf9bacbc..2a0a4c8838d 100644
--- a/src/test/ui/derived-errors/issue-31997-1.stderr
+++ b/src/test/ui/derived-errors/issue-31997-1.stderr
@@ -6,3 +6,4 @@ error[E0433]: failed to resolve. Use of undeclared type or module `HashMap`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0433"
diff --git a/src/test/ui/did_you_mean/E0178.stderr b/src/test/ui/did_you_mean/E0178.stderr
index 4fe8849feef..29571a8f704 100644
--- a/src/test/ui/did_you_mean/E0178.stderr
+++ b/src/test/ui/did_you_mean/E0178.stderr
@@ -24,3 +24,4 @@ error[E0178]: expected a path on the left-hand side of `+`, not `fn() -> Foo`
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0178"
diff --git a/src/test/ui/did_you_mean/bad-assoc-pat.stderr b/src/test/ui/did_you_mean/bad-assoc-pat.stderr
index 1ca4576d88f..8ab3bafa620 100644
--- a/src/test/ui/did_you_mean/bad-assoc-pat.stderr
+++ b/src/test/ui/did_you_mean/bad-assoc-pat.stderr
@@ -48,3 +48,4 @@ error[E0599]: no associated item named `AssocItem` found for type `(u8,)` in the
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
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 c44dc5a0468..9aa6421d47e 100644
--- a/src/test/ui/did_you_mean/bad-assoc-ty.stderr
+++ b/src/test/ui/did_you_mean/bad-assoc-ty.stderr
@@ -104,3 +104,5 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to 15 previous errors
 
+You've got a few errors: E0121, E0223
+If you want more information on an error, try using "rustc --explain E0121"
diff --git a/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr b/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr
index 9010de081da..b1dac9b64b7 100644
--- a/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr
+++ b/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr
@@ -10,3 +10,4 @@ error[E0277]: the trait bound `Bar: Foo<usize>` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr b/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr
index e9591a64784..f574ae0fa84 100644
--- a/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr
+++ b/src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr
@@ -13,3 +13,4 @@ error[E0277]: the trait bound `Bar: Foo<usize>` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/did_you_mean/issue-31424.stderr b/src/test/ui/did_you_mean/issue-31424.stderr
index cd96d28ac98..725ede6d37b 100644
--- a/src/test/ui/did_you_mean/issue-31424.stderr
+++ b/src/test/ui/did_you_mean/issue-31424.stderr
@@ -17,3 +17,4 @@ error[E0596]: cannot borrow immutable argument `self` as mutable
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/did_you_mean/issue-34126.stderr b/src/test/ui/did_you_mean/issue-34126.stderr
index a4921046c78..9b290ae99f7 100644
--- a/src/test/ui/did_you_mean/issue-34126.stderr
+++ b/src/test/ui/did_you_mean/issue-34126.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow immutable argument `self` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/did_you_mean/issue-34337.stderr b/src/test/ui/did_you_mean/issue-34337.stderr
index a53d3d7277a..135d3ad945c 100644
--- a/src/test/ui/did_you_mean/issue-34337.stderr
+++ b/src/test/ui/did_you_mean/issue-34337.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow immutable local variable `key` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "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 cfaff973170..2a7ffeab737 100644
--- a/src/test/ui/did_you_mean/issue-35937.stderr
+++ b/src/test/ui/did_you_mean/issue-35937.stderr
@@ -24,3 +24,5 @@ error[E0594]: cannot assign to field `s.x` of immutable binding
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0594, E0596
+If you want more information on an error, try using "rustc --explain E0594"
diff --git a/src/test/ui/did_you_mean/issue-36798.stderr b/src/test/ui/did_you_mean/issue-36798.stderr
index 73319d567bd..03f71fbb183 100644
--- a/src/test/ui/did_you_mean/issue-36798.stderr
+++ b/src/test/ui/did_you_mean/issue-36798.stderr
@@ -6,3 +6,4 @@ error[E0609]: no field `baz` on type `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0609"
diff --git a/src/test/ui/did_you_mean/issue-36798_unknown_field.stderr b/src/test/ui/did_you_mean/issue-36798_unknown_field.stderr
index f17672b234f..f866887433b 100644
--- a/src/test/ui/did_you_mean/issue-36798_unknown_field.stderr
+++ b/src/test/ui/did_you_mean/issue-36798_unknown_field.stderr
@@ -8,3 +8,4 @@ error[E0609]: no field `zz` on type `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0609"
diff --git a/src/test/ui/did_you_mean/issue-37139.stderr b/src/test/ui/did_you_mean/issue-37139.stderr
index 65de724616d..a5269c4e1a8 100644
--- a/src/test/ui/did_you_mean/issue-37139.stderr
+++ b/src/test/ui/did_you_mean/issue-37139.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow immutable local variable `x` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr b/src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr
index c58958c7f5e..086ed136ce1 100644
--- a/src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr
+++ b/src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr
@@ -12,3 +12,4 @@ error[E0432]: unresolved import `Foo1`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0432"
diff --git a/src/test/ui/did_you_mean/issue-38147-1.stderr b/src/test/ui/did_you_mean/issue-38147-1.stderr
index 6a262b31026..aab6427c144 100644
--- a/src/test/ui/did_you_mean/issue-38147-1.stderr
+++ b/src/test/ui/did_you_mean/issue-38147-1.stderr
@@ -8,3 +8,4 @@ error[E0389]: cannot borrow data mutably in a `&` reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0389"
diff --git a/src/test/ui/did_you_mean/issue-38147-2.stderr b/src/test/ui/did_you_mean/issue-38147-2.stderr
index 569bfa11803..cc52f2a7830 100644
--- a/src/test/ui/did_you_mean/issue-38147-2.stderr
+++ b/src/test/ui/did_you_mean/issue-38147-2.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow borrowed content `*self.s` of immutable binding as m
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/did_you_mean/issue-38147-3.stderr b/src/test/ui/did_you_mean/issue-38147-3.stderr
index 75d904d394a..12282b2fdee 100644
--- a/src/test/ui/did_you_mean/issue-38147-3.stderr
+++ b/src/test/ui/did_you_mean/issue-38147-3.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow borrowed content `*self.s` of immutable binding as m
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/did_you_mean/issue-38147-4.stderr b/src/test/ui/did_you_mean/issue-38147-4.stderr
index 33bf2e1160c..3bc94dfbd63 100644
--- a/src/test/ui/did_you_mean/issue-38147-4.stderr
+++ b/src/test/ui/did_you_mean/issue-38147-4.stderr
@@ -8,3 +8,4 @@ error[E0389]: cannot borrow data mutably in a `&` reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0389"
diff --git a/src/test/ui/did_you_mean/issue-39544.stderr b/src/test/ui/did_you_mean/issue-39544.stderr
index d8c089806cd..47b11f707d2 100644
--- a/src/test/ui/did_you_mean/issue-39544.stderr
+++ b/src/test/ui/did_you_mean/issue-39544.stderr
@@ -98,3 +98,5 @@ error[E0594]: cannot assign to borrowed content `*x.0` of immutable binding
 
 error: aborting due to 12 previous errors
 
+You've got a few errors: E0594, E0596
+If you want more information on an error, try using "rustc --explain E0594"
diff --git a/src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr b/src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr
index 7ca3e8728fd..b861064399e 100644
--- a/src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr
+++ b/src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr
@@ -53,3 +53,4 @@ note: required by `Foo::bar`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/did_you_mean/issue-40006.stderr b/src/test/ui/did_you_mean/issue-40006.stderr
index 88d63cdbb5d..cc4886f3b0f 100644
--- a/src/test/ui/did_you_mean/issue-40006.stderr
+++ b/src/test/ui/did_you_mean/issue-40006.stderr
@@ -66,3 +66,4 @@ error[E0038]: the trait `X` cannot be made into an object
 
 error: aborting due to 9 previous errors
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/did_you_mean/issue-40823.stderr b/src/test/ui/did_you_mean/issue-40823.stderr
index 0b71fc1d306..e11ed5d4c4f 100644
--- a/src/test/ui/did_you_mean/issue-40823.stderr
+++ b/src/test/ui/did_you_mean/issue-40823.stderr
@@ -6,3 +6,4 @@ error[E0596]: cannot borrow immutable borrowed content `*buf` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
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 2c7701e9965..2891c771a36 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,3 +28,5 @@ error[E0609]: no field `egregiously_nonexistent_field` on type `submodule::Demo`
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0560, E0609
+If you want more information on an error, try using "rustc --explain E0560"
diff --git a/src/test/ui/did_you_mean/issue-42764.stderr b/src/test/ui/did_you_mean/issue-42764.stderr
index 0cc157aa5bb..748b7165e51 100644
--- a/src/test/ui/did_you_mean/issue-42764.stderr
+++ b/src/test/ui/did_you_mean/issue-42764.stderr
@@ -15,3 +15,4 @@ help: try using a variant of the expected type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
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 5390e541fb7..e10abdbb4f9 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
@@ -30,3 +30,5 @@ error[E0532]: expected tuple struct/variant, found enum `Example`
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0423, E0532
+If you want more information on an error, try using "rustc --explain E0423"
diff --git a/src/test/ui/did_you_mean/recursion_limit.stderr b/src/test/ui/did_you_mean/recursion_limit.stderr
index 2bc7e9e46e7..529c8c11f32 100644
--- a/src/test/ui/did_you_mean/recursion_limit.stderr
+++ b/src/test/ui/did_you_mean/recursion_limit.stderr
@@ -23,3 +23,4 @@ note: required by `is_send`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0275"
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 860c6bb5b90..f78fa4c48b2 100644
--- a/src/test/ui/did_you_mean/recursion_limit_deref.stderr
+++ b/src/test/ui/did_you_mean/recursion_limit_deref.stderr
@@ -21,3 +21,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0055, E0308
+If you want more information on an error, try using "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 325a19eee14..2923d6f760a 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,3 +20,5 @@ error[E0038]: the trait `std::marker::Copy` cannot be made into an object
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0038, E0178
+If you want more information on an error, try using "rustc --explain E0038"
diff --git a/src/test/ui/discrim-overflow-2.stderr b/src/test/ui/discrim-overflow-2.stderr
index 660110cd737..c8c649fd597 100644
--- a/src/test/ui/discrim-overflow-2.stderr
+++ b/src/test/ui/discrim-overflow-2.stderr
@@ -64,3 +64,4 @@ error[E0370]: enum discriminant overflowed
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0370"
diff --git a/src/test/ui/discrim-overflow.stderr b/src/test/ui/discrim-overflow.stderr
index 733810006d7..be844013ba1 100644
--- a/src/test/ui/discrim-overflow.stderr
+++ b/src/test/ui/discrim-overflow.stderr
@@ -64,3 +64,4 @@ error[E0370]: enum discriminant overflowed
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0370"
diff --git a/src/test/ui/double-import.stderr b/src/test/ui/double-import.stderr
index 2a0f9ee34f2..33fad022116 100644
--- a/src/test/ui/double-import.stderr
+++ b/src/test/ui/double-import.stderr
@@ -14,3 +14,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0252"
diff --git a/src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr b/src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr
index 8aa4fba7085..bd7580ca751 100644
--- a/src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr
+++ b/src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr
@@ -44,3 +44,4 @@ error[E0597]: `c` does not live long enough
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr b/src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr
index 2c788e952ed..cb4f3d21398 100644
--- a/src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr
+++ b/src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr
@@ -22,3 +22,4 @@ error[E0569]: requires an `unsafe impl` declaration due to `#[may_dangle]` attri
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0569"
diff --git a/src/test/ui/dropck/dropck-eyepatch-reorder.stderr b/src/test/ui/dropck/dropck-eyepatch-reorder.stderr
index 4fa188908fd..0fdedfb7cf5 100644
--- a/src/test/ui/dropck/dropck-eyepatch-reorder.stderr
+++ b/src/test/ui/dropck/dropck-eyepatch-reorder.stderr
@@ -44,3 +44,4 @@ error[E0597]: `c` does not live long enough
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/dropck/dropck-eyepatch.stderr b/src/test/ui/dropck/dropck-eyepatch.stderr
index 79fb9222d5c..ce3ffc034c5 100644
--- a/src/test/ui/dropck/dropck-eyepatch.stderr
+++ b/src/test/ui/dropck/dropck-eyepatch.stderr
@@ -44,3 +44,4 @@ error[E0597]: `c` does not live long enough
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/e0119/complex-impl.stderr b/src/test/ui/e0119/complex-impl.stderr
index 926dac3f9b1..00953ef2eee 100644
--- a/src/test/ui/e0119/complex-impl.stderr
+++ b/src/test/ui/e0119/complex-impl.stderr
@@ -16,3 +16,5 @@ error[E0210]: type parameter `R` must be used as the type parameter for some loc
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0119, E0210
+If you want more information on an error, try using "rustc --explain E0119"
diff --git a/src/test/ui/e0119/conflict-with-std.stderr b/src/test/ui/e0119/conflict-with-std.stderr
index 4c1f9405fb9..cebd6e20453 100644
--- a/src/test/ui/e0119/conflict-with-std.stderr
+++ b/src/test/ui/e0119/conflict-with-std.stderr
@@ -29,3 +29,4 @@ error[E0119]: conflicting implementations of trait `std::convert::TryFrom<X>` fo
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/e0119/issue-23563.stderr b/src/test/ui/e0119/issue-23563.stderr
index 8bbae56d843..47489fecd6c 100644
--- a/src/test/ui/e0119/issue-23563.stderr
+++ b/src/test/ui/e0119/issue-23563.stderr
@@ -10,3 +10,4 @@ error[E0119]: conflicting implementations of trait `a::LolFrom<&[_]>` for type `
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/e0119/issue-27403.stderr b/src/test/ui/e0119/issue-27403.stderr
index 4417ea9099f..a2d340fa211 100644
--- a/src/test/ui/e0119/issue-27403.stderr
+++ b/src/test/ui/e0119/issue-27403.stderr
@@ -10,3 +10,4 @@ error[E0119]: conflicting implementations of trait `std::convert::Into<_>` for t
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/e0119/issue-28981.stderr b/src/test/ui/e0119/issue-28981.stderr
index 3ea1c9adc9b..df5978100d7 100644
--- a/src/test/ui/e0119/issue-28981.stderr
+++ b/src/test/ui/e0119/issue-28981.stderr
@@ -16,3 +16,5 @@ error[E0210]: type parameter `Foo` must be used as the type parameter for some l
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0119, E0210
+If you want more information on an error, try using "rustc --explain E0119"
diff --git a/src/test/ui/e0119/so-37347311.stderr b/src/test/ui/e0119/so-37347311.stderr
index 84fb049df35..d62c37f5aae 100644
--- a/src/test/ui/e0119/so-37347311.stderr
+++ b/src/test/ui/e0119/so-37347311.stderr
@@ -9,3 +9,4 @@ error[E0119]: conflicting implementations of trait `std::convert::From<MyError<_
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/empty-struct-unit-expr.stderr b/src/test/ui/empty-struct-unit-expr.stderr
index aa242a530d0..e8e994094f4 100644
--- a/src/test/ui/empty-struct-unit-expr.stderr
+++ b/src/test/ui/empty-struct-unit-expr.stderr
@@ -38,3 +38,4 @@ help: `XE::XEmpty4` is a unit variant, you need to write it without the parenthe
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0618"
diff --git a/src/test/ui/enum-and-module-in-same-scope.stderr b/src/test/ui/enum-and-module-in-same-scope.stderr
index ddbee0655e4..f17e0587e48 100644
--- a/src/test/ui/enum-and-module-in-same-scope.stderr
+++ b/src/test/ui/enum-and-module-in-same-scope.stderr
@@ -11,3 +11,4 @@ error[E0428]: the name `Foo` is defined multiple times
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0428"
diff --git a/src/test/ui/error-codes/E0004-2.stderr b/src/test/ui/error-codes/E0004-2.stderr
index 2f4d26e2f32..a1ad127aac7 100644
--- a/src/test/ui/error-codes/E0004-2.stderr
+++ b/src/test/ui/error-codes/E0004-2.stderr
@@ -12,3 +12,4 @@ help: Please ensure that all possible cases are being handled; possibly adding w
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/error-codes/E0004.stderr b/src/test/ui/error-codes/E0004.stderr
index 836afaf05ba..204f240d27c 100644
--- a/src/test/ui/error-codes/E0004.stderr
+++ b/src/test/ui/error-codes/E0004.stderr
@@ -6,3 +6,4 @@ error[E0004]: non-exhaustive patterns: `HastaLaVistaBaby` not covered
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/error-codes/E0005.stderr b/src/test/ui/error-codes/E0005.stderr
index d052c12e9fe..cb1dc9a4a28 100644
--- a/src/test/ui/error-codes/E0005.stderr
+++ b/src/test/ui/error-codes/E0005.stderr
@@ -6,3 +6,4 @@ error[E0005]: refutable pattern in local binding: `None` not covered
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0005"
diff --git a/src/test/ui/error-codes/E0007.stderr b/src/test/ui/error-codes/E0007.stderr
index 1370cacd7cb..db62a4ec64a 100644
--- a/src/test/ui/error-codes/E0007.stderr
+++ b/src/test/ui/error-codes/E0007.stderr
@@ -12,3 +12,5 @@ error[E0303]: pattern bindings are not allowed after an `@`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0007, E0303
+If you want more information on an error, try using "rustc --explain E0007"
diff --git a/src/test/ui/error-codes/E0008.stderr b/src/test/ui/error-codes/E0008.stderr
index 6ae4506a6e3..3fab4ad484c 100644
--- a/src/test/ui/error-codes/E0008.stderr
+++ b/src/test/ui/error-codes/E0008.stderr
@@ -6,3 +6,4 @@ error[E0008]: cannot bind by-move into a pattern guard
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0008"
diff --git a/src/test/ui/error-codes/E0009.stderr b/src/test/ui/error-codes/E0009.stderr
index 31db957621d..0a04d5a452d 100644
--- a/src/test/ui/error-codes/E0009.stderr
+++ b/src/test/ui/error-codes/E0009.stderr
@@ -8,3 +8,4 @@ error[E0009]: cannot bind by-move and by-ref in the same pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0009"
diff --git a/src/test/ui/error-codes/E0010-teach.stderr b/src/test/ui/error-codes/E0010-teach.stderr
index 46f8101ca65..f414504ccd4 100644
--- a/src/test/ui/error-codes/E0010-teach.stderr
+++ b/src/test/ui/error-codes/E0010-teach.stderr
@@ -8,3 +8,4 @@ error[E0010]: allocations are not allowed in constants
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0010"
diff --git a/src/test/ui/error-codes/E0010.stderr b/src/test/ui/error-codes/E0010.stderr
index 5cef631e05e..8d441159ec7 100644
--- a/src/test/ui/error-codes/E0010.stderr
+++ b/src/test/ui/error-codes/E0010.stderr
@@ -6,3 +6,4 @@ error[E0010]: allocations are not allowed in constants
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0010"
diff --git a/src/test/ui/error-codes/E0017.stderr b/src/test/ui/error-codes/E0017.stderr
index f1fe1e58b34..5eec33f96b3 100644
--- a/src/test/ui/error-codes/E0017.stderr
+++ b/src/test/ui/error-codes/E0017.stderr
@@ -24,3 +24,5 @@ error[E0017]: references in statics may only refer to immutable values
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0017, E0596
+If you want more information on an error, try using "rustc --explain E0017"
diff --git a/src/test/ui/error-codes/E0023.stderr b/src/test/ui/error-codes/E0023.stderr
index 582dffeb19c..018a59de808 100644
--- a/src/test/ui/error-codes/E0023.stderr
+++ b/src/test/ui/error-codes/E0023.stderr
@@ -18,3 +18,4 @@ error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0023"
diff --git a/src/test/ui/error-codes/E0025.stderr b/src/test/ui/error-codes/E0025.stderr
index 480cd2a5cc8..91189def362 100644
--- a/src/test/ui/error-codes/E0025.stderr
+++ b/src/test/ui/error-codes/E0025.stderr
@@ -8,3 +8,4 @@ error[E0025]: field `a` bound multiple times in the pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0025"
diff --git a/src/test/ui/error-codes/E0026-teach.stderr b/src/test/ui/error-codes/E0026-teach.stderr
index ee83cfb3535..b3c281ef7c9 100644
--- a/src/test/ui/error-codes/E0026-teach.stderr
+++ b/src/test/ui/error-codes/E0026-teach.stderr
@@ -10,3 +10,4 @@ error[E0026]: struct `Thing` does not have a field named `z`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0026"
diff --git a/src/test/ui/error-codes/E0026.stderr b/src/test/ui/error-codes/E0026.stderr
index c9819df3f9f..3b667260bc9 100644
--- a/src/test/ui/error-codes/E0026.stderr
+++ b/src/test/ui/error-codes/E0026.stderr
@@ -6,3 +6,4 @@ error[E0026]: struct `Thing` does not have a field named `z`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0026"
diff --git a/src/test/ui/error-codes/E0027-teach.stderr b/src/test/ui/error-codes/E0027-teach.stderr
index e9f9e4ba766..2dd3c6150dc 100644
--- a/src/test/ui/error-codes/E0027-teach.stderr
+++ b/src/test/ui/error-codes/E0027-teach.stderr
@@ -8,3 +8,4 @@ error[E0027]: pattern does not mention field `name`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0027"
diff --git a/src/test/ui/error-codes/E0027.stderr b/src/test/ui/error-codes/E0027.stderr
index 0f93a776b9e..19012afe1c3 100644
--- a/src/test/ui/error-codes/E0027.stderr
+++ b/src/test/ui/error-codes/E0027.stderr
@@ -6,3 +6,4 @@ error[E0027]: pattern does not mention field `name`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0027"
diff --git a/src/test/ui/error-codes/E0029-teach.stderr b/src/test/ui/error-codes/E0029-teach.stderr
index dbb8d972f5c..626839fb807 100644
--- a/src/test/ui/error-codes/E0029-teach.stderr
+++ b/src/test/ui/error-codes/E0029-teach.stderr
@@ -18,3 +18,5 @@ error[E0029]: only char and numeric types are allowed in range patterns
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0029, E0658
+If you want more information on an error, try using "rustc --explain E0029"
diff --git a/src/test/ui/error-codes/E0029.stderr b/src/test/ui/error-codes/E0029.stderr
index 02fbd20386f..123e5da1cec 100644
--- a/src/test/ui/error-codes/E0029.stderr
+++ b/src/test/ui/error-codes/E0029.stderr
@@ -17,3 +17,5 @@ error[E0029]: only char and numeric types are allowed in range patterns
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0029, E0658
+If you want more information on an error, try using "rustc --explain E0029"
diff --git a/src/test/ui/error-codes/E0030-teach.stderr b/src/test/ui/error-codes/E0030-teach.stderr
index 40b3d790e12..8e129b4ae2c 100644
--- a/src/test/ui/error-codes/E0030-teach.stderr
+++ b/src/test/ui/error-codes/E0030-teach.stderr
@@ -8,3 +8,4 @@ error[E0030]: lower range bound must be less than or equal to upper
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0030"
diff --git a/src/test/ui/error-codes/E0030.stderr b/src/test/ui/error-codes/E0030.stderr
index 7bdecd0028e..eb5b40d2c47 100644
--- a/src/test/ui/error-codes/E0030.stderr
+++ b/src/test/ui/error-codes/E0030.stderr
@@ -6,3 +6,4 @@ error[E0030]: lower range bound must be less than or equal to upper
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0030"
diff --git a/src/test/ui/error-codes/E0033-teach.stderr b/src/test/ui/error-codes/E0033-teach.stderr
index ea60fcb6ccf..8dd364ae9a3 100644
--- a/src/test/ui/error-codes/E0033-teach.stderr
+++ b/src/test/ui/error-codes/E0033-teach.stderr
@@ -24,3 +24,5 @@ error[E0033]: type `&SomeTrait` cannot be dereferenced
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0033, E0038, E0423
+If you want more information on an error, try using "rustc --explain E0033"
diff --git a/src/test/ui/error-codes/E0033.stderr b/src/test/ui/error-codes/E0033.stderr
index abc535ee2a6..dfde76cc125 100644
--- a/src/test/ui/error-codes/E0033.stderr
+++ b/src/test/ui/error-codes/E0033.stderr
@@ -20,3 +20,5 @@ error[E0033]: type `&SomeTrait` cannot be dereferenced
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0033, E0038, E0423
+If you want more information on an error, try using "rustc --explain E0033"
diff --git a/src/test/ui/error-codes/E0034.stderr b/src/test/ui/error-codes/E0034.stderr
index 238fd0d67a0..850d4a74117 100644
--- a/src/test/ui/error-codes/E0034.stderr
+++ b/src/test/ui/error-codes/E0034.stderr
@@ -17,3 +17,4 @@ note: candidate #2 is defined in an impl of the trait `Trait2` for the type `Tes
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0034"
diff --git a/src/test/ui/error-codes/E0038.stderr b/src/test/ui/error-codes/E0038.stderr
index e9423561f37..edfa83a44f7 100644
--- a/src/test/ui/error-codes/E0038.stderr
+++ b/src/test/ui/error-codes/E0038.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `Trait` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/error-codes/E0040.stderr b/src/test/ui/error-codes/E0040.stderr
index 73cb49fbf98..53e3768ed20 100644
--- a/src/test/ui/error-codes/E0040.stderr
+++ b/src/test/ui/error-codes/E0040.stderr
@@ -6,3 +6,4 @@ error[E0040]: explicit use of destructor method
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0040"
diff --git a/src/test/ui/error-codes/E0044.stderr b/src/test/ui/error-codes/E0044.stderr
index 65a429c1fca..fa4bf51d103 100644
--- a/src/test/ui/error-codes/E0044.stderr
+++ b/src/test/ui/error-codes/E0044.stderr
@@ -12,3 +12,4 @@ help: consider using specialization instead of type parameters
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0044"
diff --git a/src/test/ui/error-codes/E0045.stderr b/src/test/ui/error-codes/E0045.stderr
index cd400564669..750833c2b8a 100644
--- a/src/test/ui/error-codes/E0045.stderr
+++ b/src/test/ui/error-codes/E0045.stderr
@@ -6,3 +6,4 @@ error[E0045]: variadic function must have C or cdecl calling convention
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0045"
diff --git a/src/test/ui/error-codes/E0049.stderr b/src/test/ui/error-codes/E0049.stderr
index e6f72bab50a..09fb35c0639 100644
--- a/src/test/ui/error-codes/E0049.stderr
+++ b/src/test/ui/error-codes/E0049.stderr
@@ -9,3 +9,4 @@ error[E0049]: method `foo` has 0 type parameters but its trait declaration has 1
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0049"
diff --git a/src/test/ui/error-codes/E0050.stderr b/src/test/ui/error-codes/E0050.stderr
index d95a2005b18..2c69a970a56 100644
--- a/src/test/ui/error-codes/E0050.stderr
+++ b/src/test/ui/error-codes/E0050.stderr
@@ -27,3 +27,4 @@ error[E0050]: method `less` has 4 parameters but the declaration in trait `Foo::
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0050"
diff --git a/src/test/ui/error-codes/E0054.stderr b/src/test/ui/error-codes/E0054.stderr
index fc331579ef5..87a0d8ba573 100644
--- a/src/test/ui/error-codes/E0054.stderr
+++ b/src/test/ui/error-codes/E0054.stderr
@@ -8,3 +8,4 @@ error[E0054]: cannot cast as `bool`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0054"
diff --git a/src/test/ui/error-codes/E0055.stderr b/src/test/ui/error-codes/E0055.stderr
index 001178e97c0..3dbdc5db2b1 100644
--- a/src/test/ui/error-codes/E0055.stderr
+++ b/src/test/ui/error-codes/E0055.stderr
@@ -8,3 +8,4 @@ error[E0055]: reached the recursion limit while auto-dereferencing Foo
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0055"
diff --git a/src/test/ui/error-codes/E0057.stderr b/src/test/ui/error-codes/E0057.stderr
index 450c87ca032..f0c40578ddb 100644
--- a/src/test/ui/error-codes/E0057.stderr
+++ b/src/test/ui/error-codes/E0057.stderr
@@ -12,3 +12,4 @@ error[E0057]: this function takes 1 parameter but 2 parameters were supplied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0057"
diff --git a/src/test/ui/error-codes/E0059.stderr b/src/test/ui/error-codes/E0059.stderr
index aca4b8881e2..92839408902 100644
--- a/src/test/ui/error-codes/E0059.stderr
+++ b/src/test/ui/error-codes/E0059.stderr
@@ -6,3 +6,4 @@ error[E0059]: cannot use call notation; the first type parameter for the functio
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0059"
diff --git a/src/test/ui/error-codes/E0060.stderr b/src/test/ui/error-codes/E0060.stderr
index 8207220ba72..0cfce7d6b22 100644
--- a/src/test/ui/error-codes/E0060.stderr
+++ b/src/test/ui/error-codes/E0060.stderr
@@ -9,3 +9,4 @@ error[E0060]: this function takes at least 1 parameter but 0 parameters were sup
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0060"
diff --git a/src/test/ui/error-codes/E0061.stderr b/src/test/ui/error-codes/E0061.stderr
index 89d81b5acd7..735d99b0d98 100644
--- a/src/test/ui/error-codes/E0061.stderr
+++ b/src/test/ui/error-codes/E0061.stderr
@@ -18,3 +18,4 @@ error[E0061]: this function takes 1 parameter but 0 parameters were supplied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/error-codes/E0062.stderr b/src/test/ui/error-codes/E0062.stderr
index 462ee2ac50d..19ed77c9b8e 100644
--- a/src/test/ui/error-codes/E0062.stderr
+++ b/src/test/ui/error-codes/E0062.stderr
@@ -8,3 +8,4 @@ error[E0062]: field `x` specified more than once
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0062"
diff --git a/src/test/ui/error-codes/E0063.stderr b/src/test/ui/error-codes/E0063.stderr
index 023819cc778..1b98a00e20d 100644
--- a/src/test/ui/error-codes/E0063.stderr
+++ b/src/test/ui/error-codes/E0063.stderr
@@ -24,3 +24,4 @@ error[E0063]: missing fields `a`, `b`, `c` and 2 other fields in initializer of
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0063"
diff --git a/src/test/ui/error-codes/E0067.stderr b/src/test/ui/error-codes/E0067.stderr
index a4e15619e8b..2faea638dba 100644
--- a/src/test/ui/error-codes/E0067.stderr
+++ b/src/test/ui/error-codes/E0067.stderr
@@ -14,3 +14,5 @@ error[E0067]: invalid left-hand side expression
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0067, E0368
+If you want more information on an error, try using "rustc --explain E0067"
diff --git a/src/test/ui/error-codes/E0069.stderr b/src/test/ui/error-codes/E0069.stderr
index 8424531889f..130fcc69278 100644
--- a/src/test/ui/error-codes/E0069.stderr
+++ b/src/test/ui/error-codes/E0069.stderr
@@ -6,3 +6,4 @@ error[E0069]: `return;` in a function whose return type is not `()`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0069"
diff --git a/src/test/ui/error-codes/E0070.stderr b/src/test/ui/error-codes/E0070.stderr
index e1316e2e130..71bac9098af 100644
--- a/src/test/ui/error-codes/E0070.stderr
+++ b/src/test/ui/error-codes/E0070.stderr
@@ -27,3 +27,5 @@ error[E0070]: invalid left-hand side expression
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0070, E0308
+If you want more information on an error, try using "rustc --explain E0070"
diff --git a/src/test/ui/error-codes/E0071.stderr b/src/test/ui/error-codes/E0071.stderr
index 020dad3ac9f..7b09d5333c9 100644
--- a/src/test/ui/error-codes/E0071.stderr
+++ b/src/test/ui/error-codes/E0071.stderr
@@ -6,3 +6,4 @@ error[E0071]: expected struct, variant or union type, found enum `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0071"
diff --git a/src/test/ui/error-codes/E0075.stderr b/src/test/ui/error-codes/E0075.stderr
index 39d27d6f7e4..ad9d64dc970 100644
--- a/src/test/ui/error-codes/E0075.stderr
+++ b/src/test/ui/error-codes/E0075.stderr
@@ -6,3 +6,4 @@ error[E0075]: SIMD vector cannot be empty
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0075"
diff --git a/src/test/ui/error-codes/E0076.stderr b/src/test/ui/error-codes/E0076.stderr
index 02ce47977c8..5e9349a282e 100644
--- a/src/test/ui/error-codes/E0076.stderr
+++ b/src/test/ui/error-codes/E0076.stderr
@@ -6,3 +6,4 @@ error[E0076]: SIMD vector should be homogeneous
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0076"
diff --git a/src/test/ui/error-codes/E0077.stderr b/src/test/ui/error-codes/E0077.stderr
index 7e7b55f9b7e..8427ff71a09 100644
--- a/src/test/ui/error-codes/E0077.stderr
+++ b/src/test/ui/error-codes/E0077.stderr
@@ -6,3 +6,4 @@ error[E0077]: SIMD vector element type should be machine type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0077"
diff --git a/src/test/ui/error-codes/E0080.stderr b/src/test/ui/error-codes/E0080.stderr
index 2ec2ad31b53..7b1f2d6a716 100644
--- a/src/test/ui/error-codes/E0080.stderr
+++ b/src/test/ui/error-codes/E0080.stderr
@@ -26,3 +26,4 @@ error[E0080]: constant evaluation error
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/error-codes/E0081.stderr b/src/test/ui/error-codes/E0081.stderr
index 035638b2f31..6c5cca3b1bf 100644
--- a/src/test/ui/error-codes/E0081.stderr
+++ b/src/test/ui/error-codes/E0081.stderr
@@ -8,3 +8,4 @@ error[E0081]: discriminant value `3isize` already exists
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0081"
diff --git a/src/test/ui/error-codes/E0084.stderr b/src/test/ui/error-codes/E0084.stderr
index b39a129ba16..02d27ce118e 100644
--- a/src/test/ui/error-codes/E0084.stderr
+++ b/src/test/ui/error-codes/E0084.stderr
@@ -8,3 +8,4 @@ error[E0084]: unsupported representation for zero-variant enum
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0084"
diff --git a/src/test/ui/error-codes/E0087.stderr b/src/test/ui/error-codes/E0087.stderr
index 20c8cd45dfa..c30bc05e768 100644
--- a/src/test/ui/error-codes/E0087.stderr
+++ b/src/test/ui/error-codes/E0087.stderr
@@ -12,3 +12,4 @@ error[E0087]: too many type parameters provided: expected at most 1 type paramet
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0087"
diff --git a/src/test/ui/error-codes/E0088.stderr b/src/test/ui/error-codes/E0088.stderr
index 615df88f1bb..b88d89b8772 100644
--- a/src/test/ui/error-codes/E0088.stderr
+++ b/src/test/ui/error-codes/E0088.stderr
@@ -12,3 +12,4 @@ error[E0088]: too many lifetime parameters provided: expected at most 1 lifetime
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0088"
diff --git a/src/test/ui/error-codes/E0089.stderr b/src/test/ui/error-codes/E0089.stderr
index 38b45e27fa7..e279765e8e4 100644
--- a/src/test/ui/error-codes/E0089.stderr
+++ b/src/test/ui/error-codes/E0089.stderr
@@ -6,3 +6,4 @@ error[E0089]: too few type parameters provided: expected 2 type parameters, foun
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0089"
diff --git a/src/test/ui/error-codes/E0090.stderr b/src/test/ui/error-codes/E0090.stderr
index 050082d84df..98f96986c91 100644
--- a/src/test/ui/error-codes/E0090.stderr
+++ b/src/test/ui/error-codes/E0090.stderr
@@ -6,3 +6,4 @@ error[E0090]: too few lifetime parameters provided: expected 2 lifetime paramete
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0090"
diff --git a/src/test/ui/error-codes/E0091.stderr b/src/test/ui/error-codes/E0091.stderr
index 7d951dd6dfd..1a4aaccdc39 100644
--- a/src/test/ui/error-codes/E0091.stderr
+++ b/src/test/ui/error-codes/E0091.stderr
@@ -12,3 +12,4 @@ error[E0091]: type parameter `B` is unused
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0091"
diff --git a/src/test/ui/error-codes/E0092.stderr b/src/test/ui/error-codes/E0092.stderr
index 788f8994411..5c497356b81 100644
--- a/src/test/ui/error-codes/E0092.stderr
+++ b/src/test/ui/error-codes/E0092.stderr
@@ -6,3 +6,4 @@ error[E0092]: unrecognized atomic operation function: `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0092"
diff --git a/src/test/ui/error-codes/E0093.stderr b/src/test/ui/error-codes/E0093.stderr
index 959d64af433..72e88c598c8 100644
--- a/src/test/ui/error-codes/E0093.stderr
+++ b/src/test/ui/error-codes/E0093.stderr
@@ -6,3 +6,4 @@ error[E0093]: unrecognized intrinsic function: `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0093"
diff --git a/src/test/ui/error-codes/E0094.stderr b/src/test/ui/error-codes/E0094.stderr
index fdef3d8877b..b38ac11b6fc 100644
--- a/src/test/ui/error-codes/E0094.stderr
+++ b/src/test/ui/error-codes/E0094.stderr
@@ -6,3 +6,4 @@ error[E0094]: intrinsic has wrong number of type parameters: found 2, expected 1
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0094"
diff --git a/src/test/ui/error-codes/E0106.stderr b/src/test/ui/error-codes/E0106.stderr
index 98442804708..e7b579d90ca 100644
--- a/src/test/ui/error-codes/E0106.stderr
+++ b/src/test/ui/error-codes/E0106.stderr
@@ -30,3 +30,4 @@ error[E0106]: missing lifetime specifiers
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/error-codes/E0107.stderr b/src/test/ui/error-codes/E0107.stderr
index 6283486039c..b85197034b8 100644
--- a/src/test/ui/error-codes/E0107.stderr
+++ b/src/test/ui/error-codes/E0107.stderr
@@ -18,3 +18,4 @@ error[E0107]: wrong number of lifetime parameters: expected 1, found 3
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0107"
diff --git a/src/test/ui/error-codes/E0109.stderr b/src/test/ui/error-codes/E0109.stderr
index 59da11140b1..3f5fab45d4f 100644
--- a/src/test/ui/error-codes/E0109.stderr
+++ b/src/test/ui/error-codes/E0109.stderr
@@ -6,3 +6,4 @@ error[E0109]: type parameters are not allowed on this type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0109"
diff --git a/src/test/ui/error-codes/E0110.stderr b/src/test/ui/error-codes/E0110.stderr
index 7417351c16d..7ac74d14e30 100644
--- a/src/test/ui/error-codes/E0110.stderr
+++ b/src/test/ui/error-codes/E0110.stderr
@@ -6,3 +6,4 @@ error[E0110]: lifetime parameters are not allowed on this type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0110"
diff --git a/src/test/ui/error-codes/E0116.stderr b/src/test/ui/error-codes/E0116.stderr
index c090060e7d6..2b0c9903a09 100644
--- a/src/test/ui/error-codes/E0116.stderr
+++ b/src/test/ui/error-codes/E0116.stderr
@@ -8,3 +8,4 @@ error[E0116]: cannot define inherent `impl` for a type outside of the crate wher
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0116"
diff --git a/src/test/ui/error-codes/E0117.stderr b/src/test/ui/error-codes/E0117.stderr
index 9856692659a..1f77fc153b8 100644
--- a/src/test/ui/error-codes/E0117.stderr
+++ b/src/test/ui/error-codes/E0117.stderr
@@ -15,3 +15,5 @@ error[E0117]: only traits defined in the current crate can be implemented for ar
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0117, E0120
+If you want more information on an error, try using "rustc --explain E0117"
diff --git a/src/test/ui/error-codes/E0118.stderr b/src/test/ui/error-codes/E0118.stderr
index 8c78890b88a..1cfcc0fc62b 100644
--- a/src/test/ui/error-codes/E0118.stderr
+++ b/src/test/ui/error-codes/E0118.stderr
@@ -8,3 +8,4 @@ error[E0118]: no base type found for inherent implementation
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0118"
diff --git a/src/test/ui/error-codes/E0119.stderr b/src/test/ui/error-codes/E0119.stderr
index 91bb74a10d6..82993a2b3ad 100644
--- a/src/test/ui/error-codes/E0119.stderr
+++ b/src/test/ui/error-codes/E0119.stderr
@@ -9,3 +9,4 @@ error[E0119]: conflicting implementations of trait `MyTrait` for type `Foo`:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/error-codes/E0120.stderr b/src/test/ui/error-codes/E0120.stderr
index 7c666d9fd0a..b5d9ee2f980 100644
--- a/src/test/ui/error-codes/E0120.stderr
+++ b/src/test/ui/error-codes/E0120.stderr
@@ -6,3 +6,4 @@ error[E0120]: the Drop trait may only be implemented on structures
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0120"
diff --git a/src/test/ui/error-codes/E0121.stderr b/src/test/ui/error-codes/E0121.stderr
index fa54d678563..3f603371b87 100644
--- a/src/test/ui/error-codes/E0121.stderr
+++ b/src/test/ui/error-codes/E0121.stderr
@@ -12,3 +12,4 @@ error[E0121]: the type placeholder `_` is not allowed within types on item signa
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0121"
diff --git a/src/test/ui/error-codes/E0124.stderr b/src/test/ui/error-codes/E0124.stderr
index 8e1ec51ea1c..114af775b45 100644
--- a/src/test/ui/error-codes/E0124.stderr
+++ b/src/test/ui/error-codes/E0124.stderr
@@ -8,3 +8,4 @@ error[E0124]: field `field1` is already declared
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0124"
diff --git a/src/test/ui/error-codes/E0128.stderr b/src/test/ui/error-codes/E0128.stderr
index fad2d0db8ab..6098dd92766 100644
--- a/src/test/ui/error-codes/E0128.stderr
+++ b/src/test/ui/error-codes/E0128.stderr
@@ -6,3 +6,4 @@ error[E0128]: type parameters with a default cannot use forward declared identif
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0128"
diff --git a/src/test/ui/error-codes/E0130.stderr b/src/test/ui/error-codes/E0130.stderr
index 02aebe0362a..f3c8d051eb4 100644
--- a/src/test/ui/error-codes/E0130.stderr
+++ b/src/test/ui/error-codes/E0130.stderr
@@ -6,3 +6,4 @@ error[E0130]: patterns aren't allowed in foreign function declarations
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0130"
diff --git a/src/test/ui/error-codes/E0131.stderr b/src/test/ui/error-codes/E0131.stderr
index d97e00fb82d..a49986880c3 100644
--- a/src/test/ui/error-codes/E0131.stderr
+++ b/src/test/ui/error-codes/E0131.stderr
@@ -6,3 +6,4 @@ error[E0131]: main function is not allowed to have type parameters
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0131"
diff --git a/src/test/ui/error-codes/E0132.stderr b/src/test/ui/error-codes/E0132.stderr
index 5c66d67b907..2da8d2b1d4b 100644
--- a/src/test/ui/error-codes/E0132.stderr
+++ b/src/test/ui/error-codes/E0132.stderr
@@ -6,3 +6,4 @@ error[E0132]: start function is not allowed to have type parameters
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0132"
diff --git a/src/test/ui/error-codes/E0133.stderr b/src/test/ui/error-codes/E0133.stderr
index 4d2ebd111dd..4ca0d6dd6b3 100644
--- a/src/test/ui/error-codes/E0133.stderr
+++ b/src/test/ui/error-codes/E0133.stderr
@@ -6,3 +6,4 @@ error[E0133]: call to unsafe function requires unsafe function or block
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0133"
diff --git a/src/test/ui/error-codes/E0137.stderr b/src/test/ui/error-codes/E0137.stderr
index bc6bbffb18e..2b68a4249f1 100644
--- a/src/test/ui/error-codes/E0137.stderr
+++ b/src/test/ui/error-codes/E0137.stderr
@@ -9,3 +9,4 @@ error[E0137]: multiple functions with a #[main] attribute
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0137"
diff --git a/src/test/ui/error-codes/E0138.stderr b/src/test/ui/error-codes/E0138.stderr
index cee7cc5d906..9a3597a9f67 100644
--- a/src/test/ui/error-codes/E0138.stderr
+++ b/src/test/ui/error-codes/E0138.stderr
@@ -9,3 +9,4 @@ error[E0138]: multiple 'start' functions
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0138"
diff --git a/src/test/ui/error-codes/E0152.stderr b/src/test/ui/error-codes/E0152.stderr
index a1d5597f031..c164c0e6eda 100644
--- a/src/test/ui/error-codes/E0152.stderr
+++ b/src/test/ui/error-codes/E0152.stderr
@@ -8,3 +8,4 @@ error[E0152]: duplicate lang item found: `panic_fmt`.
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0152"
diff --git a/src/test/ui/error-codes/E0161.stderr b/src/test/ui/error-codes/E0161.stderr
index 9914fdd2d61..525ab033c74 100644
--- a/src/test/ui/error-codes/E0161.stderr
+++ b/src/test/ui/error-codes/E0161.stderr
@@ -12,3 +12,5 @@ error[E0507]: cannot move out of borrowed content
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0161, E0507
+If you want more information on an error, try using "rustc --explain E0161"
diff --git a/src/test/ui/error-codes/E0162.stderr b/src/test/ui/error-codes/E0162.stderr
index 318a023d302..15001ffc7b1 100644
--- a/src/test/ui/error-codes/E0162.stderr
+++ b/src/test/ui/error-codes/E0162.stderr
@@ -6,3 +6,4 @@ error[E0162]: irrefutable if-let pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0162"
diff --git a/src/test/ui/error-codes/E0164.stderr b/src/test/ui/error-codes/E0164.stderr
index a515c83d14b..344b0ef4e0b 100644
--- a/src/test/ui/error-codes/E0164.stderr
+++ b/src/test/ui/error-codes/E0164.stderr
@@ -6,3 +6,4 @@ error[E0164]: expected tuple struct/variant, found associated constant `<Foo>::B
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0164"
diff --git a/src/test/ui/error-codes/E0165.stderr b/src/test/ui/error-codes/E0165.stderr
index 3c90f19a0dc..14c70ee6987 100644
--- a/src/test/ui/error-codes/E0165.stderr
+++ b/src/test/ui/error-codes/E0165.stderr
@@ -6,3 +6,4 @@ error[E0165]: irrefutable while-let pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0165"
diff --git a/src/test/ui/error-codes/E0184.stderr b/src/test/ui/error-codes/E0184.stderr
index 53bda3bb575..a42ac11bc53 100644
--- a/src/test/ui/error-codes/E0184.stderr
+++ b/src/test/ui/error-codes/E0184.stderr
@@ -6,3 +6,4 @@ error[E0184]: the trait `Copy` may not be implemented for this type; the type ha
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0184"
diff --git a/src/test/ui/error-codes/E0185.stderr b/src/test/ui/error-codes/E0185.stderr
index 0d24a3712d5..58fbc2220d3 100644
--- a/src/test/ui/error-codes/E0185.stderr
+++ b/src/test/ui/error-codes/E0185.stderr
@@ -9,3 +9,4 @@ error[E0185]: method `foo` has a `&self` declaration in the impl, but not in the
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0185"
diff --git a/src/test/ui/error-codes/E0186.stderr b/src/test/ui/error-codes/E0186.stderr
index 598057db3a6..e212e229001 100644
--- a/src/test/ui/error-codes/E0186.stderr
+++ b/src/test/ui/error-codes/E0186.stderr
@@ -9,3 +9,4 @@ error[E0186]: method `foo` has a `&self` declaration in the trait, but not in th
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0186"
diff --git a/src/test/ui/error-codes/E0191.stderr b/src/test/ui/error-codes/E0191.stderr
index 8f99a6ecffb..2b00f3d346d 100644
--- a/src/test/ui/error-codes/E0191.stderr
+++ b/src/test/ui/error-codes/E0191.stderr
@@ -6,3 +6,4 @@ error[E0191]: the value of the associated type `Bar` (from the trait `Trait`) mu
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0191"
diff --git a/src/test/ui/error-codes/E0192.stderr b/src/test/ui/error-codes/E0192.stderr
index b592c87efa7..4a5df56c0cc 100644
--- a/src/test/ui/error-codes/E0192.stderr
+++ b/src/test/ui/error-codes/E0192.stderr
@@ -6,3 +6,4 @@ error[E0192]: negative impls are only allowed for auto traits (e.g., `Send` and
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0192"
diff --git a/src/test/ui/error-codes/E0194.stderr b/src/test/ui/error-codes/E0194.stderr
index 360e8c08a3c..3b5d512a1c4 100644
--- a/src/test/ui/error-codes/E0194.stderr
+++ b/src/test/ui/error-codes/E0194.stderr
@@ -9,3 +9,4 @@ error[E0194]: type parameter `T` shadows another type parameter of the same name
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0194"
diff --git a/src/test/ui/error-codes/E0195.stderr b/src/test/ui/error-codes/E0195.stderr
index 3cce3d07994..764f302552d 100644
--- a/src/test/ui/error-codes/E0195.stderr
+++ b/src/test/ui/error-codes/E0195.stderr
@@ -9,3 +9,4 @@ error[E0195]: lifetime parameters or bounds on method `bar` do not match the tra
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0195"
diff --git a/src/test/ui/error-codes/E0197.stderr b/src/test/ui/error-codes/E0197.stderr
index 277f523e497..f1bb3e70ac3 100644
--- a/src/test/ui/error-codes/E0197.stderr
+++ b/src/test/ui/error-codes/E0197.stderr
@@ -6,3 +6,4 @@ error[E0197]: inherent impls cannot be unsafe
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0197"
diff --git a/src/test/ui/error-codes/E0198.stderr b/src/test/ui/error-codes/E0198.stderr
index a85419e9a13..d3b0088905e 100644
--- a/src/test/ui/error-codes/E0198.stderr
+++ b/src/test/ui/error-codes/E0198.stderr
@@ -6,3 +6,4 @@ error[E0198]: negative impls cannot be unsafe
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0198"
diff --git a/src/test/ui/error-codes/E0199.stderr b/src/test/ui/error-codes/E0199.stderr
index efbe066e52e..a97b2b90ffe 100644
--- a/src/test/ui/error-codes/E0199.stderr
+++ b/src/test/ui/error-codes/E0199.stderr
@@ -6,3 +6,4 @@ error[E0199]: implementing the trait `Bar` is not unsafe
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0199"
diff --git a/src/test/ui/error-codes/E0200.stderr b/src/test/ui/error-codes/E0200.stderr
index fb71da23677..ee70e949533 100644
--- a/src/test/ui/error-codes/E0200.stderr
+++ b/src/test/ui/error-codes/E0200.stderr
@@ -6,3 +6,4 @@ error[E0200]: the trait `Bar` requires an `unsafe impl` declaration
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0200"
diff --git a/src/test/ui/error-codes/E0201.stderr b/src/test/ui/error-codes/E0201.stderr
index 01dbee6e092..aa17639c13b 100644
--- a/src/test/ui/error-codes/E0201.stderr
+++ b/src/test/ui/error-codes/E0201.stderr
@@ -25,3 +25,4 @@ error[E0201]: duplicate definitions with name `Quux`:
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0201"
diff --git a/src/test/ui/error-codes/E0206.stderr b/src/test/ui/error-codes/E0206.stderr
index 8eeb94a42f4..7874d14fe61 100644
--- a/src/test/ui/error-codes/E0206.stderr
+++ b/src/test/ui/error-codes/E0206.stderr
@@ -21,3 +21,5 @@ error[E0117]: only traits defined in the current crate can be implemented for ar
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0117, E0206
+If you want more information on an error, try using "rustc --explain E0117"
diff --git a/src/test/ui/error-codes/E0207.stderr b/src/test/ui/error-codes/E0207.stderr
index 35f9109fe99..8cb6b976e17 100644
--- a/src/test/ui/error-codes/E0207.stderr
+++ b/src/test/ui/error-codes/E0207.stderr
@@ -6,3 +6,4 @@ error[E0207]: the type parameter `T` is not constrained by the impl trait, self
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0207"
diff --git a/src/test/ui/error-codes/E0214.stderr b/src/test/ui/error-codes/E0214.stderr
index 30f5b960a36..afe340cdd8d 100644
--- a/src/test/ui/error-codes/E0214.stderr
+++ b/src/test/ui/error-codes/E0214.stderr
@@ -6,3 +6,4 @@ error[E0214]: parenthesized parameters may only be used with a trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0214"
diff --git a/src/test/ui/error-codes/E0220.stderr b/src/test/ui/error-codes/E0220.stderr
index 70b017b782f..b431d137520 100644
--- a/src/test/ui/error-codes/E0220.stderr
+++ b/src/test/ui/error-codes/E0220.stderr
@@ -12,3 +12,5 @@ error[E0191]: the value of the associated type `Bar` (from the trait `Trait`) mu
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0191, E0220
+If you want more information on an error, try using "rustc --explain E0191"
diff --git a/src/test/ui/error-codes/E0221.stderr b/src/test/ui/error-codes/E0221.stderr
index 3dd9393d6b3..1e9db4c8e7e 100644
--- a/src/test/ui/error-codes/E0221.stderr
+++ b/src/test/ui/error-codes/E0221.stderr
@@ -27,3 +27,4 @@ note: associated type `Self` could derive from `std::str::FromStr`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0221"
diff --git a/src/test/ui/error-codes/E0223.stderr b/src/test/ui/error-codes/E0223.stderr
index efd0d780658..65125791b2b 100644
--- a/src/test/ui/error-codes/E0223.stderr
+++ b/src/test/ui/error-codes/E0223.stderr
@@ -8,3 +8,4 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0223"
diff --git a/src/test/ui/error-codes/E0225.stderr b/src/test/ui/error-codes/E0225.stderr
index 35d40cb1017..f1e8ca92db7 100644
--- a/src/test/ui/error-codes/E0225.stderr
+++ b/src/test/ui/error-codes/E0225.stderr
@@ -6,3 +6,4 @@ error[E0225]: only auto traits can be used as additional traits in a trait objec
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0225"
diff --git a/src/test/ui/error-codes/E0229.stderr b/src/test/ui/error-codes/E0229.stderr
index 6d88ef88bff..556adc02fc9 100644
--- a/src/test/ui/error-codes/E0229.stderr
+++ b/src/test/ui/error-codes/E0229.stderr
@@ -6,3 +6,4 @@ error[E0229]: associated type bindings are not allowed here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0229"
diff --git a/src/test/ui/error-codes/E0232.stderr b/src/test/ui/error-codes/E0232.stderr
index e13ba62b073..6633b0b592b 100644
--- a/src/test/ui/error-codes/E0232.stderr
+++ b/src/test/ui/error-codes/E0232.stderr
@@ -8,3 +8,4 @@ error[E0232]: `#[rustc_on_unimplemented]` requires a value
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0232"
diff --git a/src/test/ui/error-codes/E0243.stderr b/src/test/ui/error-codes/E0243.stderr
index 82a90fff342..c3aa61f106a 100644
--- a/src/test/ui/error-codes/E0243.stderr
+++ b/src/test/ui/error-codes/E0243.stderr
@@ -6,3 +6,4 @@ error[E0243]: wrong number of type arguments: expected 1, found 0
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0243"
diff --git a/src/test/ui/error-codes/E0244.stderr b/src/test/ui/error-codes/E0244.stderr
index d873fbe9819..06dd74e9a67 100644
--- a/src/test/ui/error-codes/E0244.stderr
+++ b/src/test/ui/error-codes/E0244.stderr
@@ -6,3 +6,4 @@ error[E0244]: wrong number of type arguments: expected 0, found 2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0244"
diff --git a/src/test/ui/error-codes/E0252.stderr b/src/test/ui/error-codes/E0252.stderr
index f63597d6970..db842bb4773 100644
--- a/src/test/ui/error-codes/E0252.stderr
+++ b/src/test/ui/error-codes/E0252.stderr
@@ -14,3 +14,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0252"
diff --git a/src/test/ui/error-codes/E0253.stderr b/src/test/ui/error-codes/E0253.stderr
index e5a31153781..736e3037a84 100644
--- a/src/test/ui/error-codes/E0253.stderr
+++ b/src/test/ui/error-codes/E0253.stderr
@@ -6,3 +6,4 @@ error[E0253]: `do_something` is not directly importable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0253"
diff --git a/src/test/ui/error-codes/E0254.stderr b/src/test/ui/error-codes/E0254.stderr
index 4181c7b1f7f..bab28d27ec6 100644
--- a/src/test/ui/error-codes/E0254.stderr
+++ b/src/test/ui/error-codes/E0254.stderr
@@ -15,3 +15,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0254"
diff --git a/src/test/ui/error-codes/E0255.stderr b/src/test/ui/error-codes/E0255.stderr
index 924ac49695c..56440936035 100644
--- a/src/test/ui/error-codes/E0255.stderr
+++ b/src/test/ui/error-codes/E0255.stderr
@@ -15,3 +15,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0255"
diff --git a/src/test/ui/error-codes/E0259.stderr b/src/test/ui/error-codes/E0259.stderr
index e05e4e1cac7..cf1131d38af 100644
--- a/src/test/ui/error-codes/E0259.stderr
+++ b/src/test/ui/error-codes/E0259.stderr
@@ -14,3 +14,4 @@ error[E0259]: the name `alloc` is defined multiple times
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0259"
diff --git a/src/test/ui/error-codes/E0260.stderr b/src/test/ui/error-codes/E0260.stderr
index 3d899e636ee..3a22329790e 100644
--- a/src/test/ui/error-codes/E0260.stderr
+++ b/src/test/ui/error-codes/E0260.stderr
@@ -15,3 +15,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0260"
diff --git a/src/test/ui/error-codes/E0261.stderr b/src/test/ui/error-codes/E0261.stderr
index c8dd08211ec..34a56ff9e5e 100644
--- a/src/test/ui/error-codes/E0261.stderr
+++ b/src/test/ui/error-codes/E0261.stderr
@@ -12,3 +12,4 @@ error[E0261]: use of undeclared lifetime name `'a`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0261"
diff --git a/src/test/ui/error-codes/E0262.stderr b/src/test/ui/error-codes/E0262.stderr
index 0910009d2c0..f40f378d1be 100644
--- a/src/test/ui/error-codes/E0262.stderr
+++ b/src/test/ui/error-codes/E0262.stderr
@@ -6,3 +6,4 @@ error[E0262]: invalid lifetime parameter name: `'static`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0262"
diff --git a/src/test/ui/error-codes/E0263.stderr b/src/test/ui/error-codes/E0263.stderr
index 942718d50f7..43febfbf236 100644
--- a/src/test/ui/error-codes/E0263.stderr
+++ b/src/test/ui/error-codes/E0263.stderr
@@ -8,3 +8,4 @@ error[E0263]: lifetime name `'a` declared twice in the same scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0263"
diff --git a/src/test/ui/error-codes/E0264.stderr b/src/test/ui/error-codes/E0264.stderr
index b10494633ed..c415bfdb865 100644
--- a/src/test/ui/error-codes/E0264.stderr
+++ b/src/test/ui/error-codes/E0264.stderr
@@ -6,3 +6,4 @@ error[E0264]: unknown external lang item: `cake`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0264"
diff --git a/src/test/ui/error-codes/E0267.stderr b/src/test/ui/error-codes/E0267.stderr
index 2f6d9c72eeb..cd35aeee1e6 100644
--- a/src/test/ui/error-codes/E0267.stderr
+++ b/src/test/ui/error-codes/E0267.stderr
@@ -6,3 +6,4 @@ error[E0267]: `break` inside of a closure
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0267"
diff --git a/src/test/ui/error-codes/E0268.stderr b/src/test/ui/error-codes/E0268.stderr
index cf89e46af04..52f72e23f3a 100644
--- a/src/test/ui/error-codes/E0268.stderr
+++ b/src/test/ui/error-codes/E0268.stderr
@@ -6,3 +6,4 @@ error[E0268]: `break` outside of loop
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0268"
diff --git a/src/test/ui/error-codes/E0271.stderr b/src/test/ui/error-codes/E0271.stderr
index c596b560ea7..a8222549b64 100644
--- a/src/test/ui/error-codes/E0271.stderr
+++ b/src/test/ui/error-codes/E0271.stderr
@@ -14,3 +14,4 @@ note: required by `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0271"
diff --git a/src/test/ui/error-codes/E0275.stderr b/src/test/ui/error-codes/E0275.stderr
index 2dbe5be2155..a9d37a7049c 100644
--- a/src/test/ui/error-codes/E0275.stderr
+++ b/src/test/ui/error-codes/E0275.stderr
@@ -77,3 +77,4 @@ note: required by `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0275"
diff --git a/src/test/ui/error-codes/E0276.stderr b/src/test/ui/error-codes/E0276.stderr
index bcbe81ac11a..88f229a3188 100644
--- a/src/test/ui/error-codes/E0276.stderr
+++ b/src/test/ui/error-codes/E0276.stderr
@@ -9,3 +9,4 @@ error[E0276]: impl has stricter requirements than trait
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0276"
diff --git a/src/test/ui/error-codes/E0277-2.stderr b/src/test/ui/error-codes/E0277-2.stderr
index 6a0f21ef144..f44a65befbe 100644
--- a/src/test/ui/error-codes/E0277-2.stderr
+++ b/src/test/ui/error-codes/E0277-2.stderr
@@ -16,3 +16,4 @@ note: required by `is_send`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/error-codes/E0277.stderr b/src/test/ui/error-codes/E0277.stderr
index 38d14ed7bce..2e43add36b2 100644
--- a/src/test/ui/error-codes/E0277.stderr
+++ b/src/test/ui/error-codes/E0277.stderr
@@ -22,3 +22,4 @@ note: required by `some_func`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/error-codes/E0282.stderr b/src/test/ui/error-codes/E0282.stderr
index 835162740da..2a5a31822ee 100644
--- a/src/test/ui/error-codes/E0282.stderr
+++ b/src/test/ui/error-codes/E0282.stderr
@@ -9,3 +9,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/error-codes/E0283.stderr b/src/test/ui/error-codes/E0283.stderr
index 9fdb6b178c4..2eb2fb06260 100644
--- a/src/test/ui/error-codes/E0283.stderr
+++ b/src/test/ui/error-codes/E0283.stderr
@@ -12,3 +12,4 @@ note: required by `Generator::create`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0283"
diff --git a/src/test/ui/error-codes/E0296.stderr b/src/test/ui/error-codes/E0296.stderr
index f6a2adc0ad3..9dc54f670f6 100644
--- a/src/test/ui/error-codes/E0296.stderr
+++ b/src/test/ui/error-codes/E0296.stderr
@@ -6,3 +6,4 @@ error[E0296]: malformed recursion limit attribute, expected #![recursion_limit="
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0296"
diff --git a/src/test/ui/error-codes/E0297.stderr b/src/test/ui/error-codes/E0297.stderr
index 2dfed66ecac..8d2489a10fa 100644
--- a/src/test/ui/error-codes/E0297.stderr
+++ b/src/test/ui/error-codes/E0297.stderr
@@ -6,3 +6,4 @@ error[E0005]: refutable pattern in `for` loop binding: `None` not covered
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0005"
diff --git a/src/test/ui/error-codes/E0301.stderr b/src/test/ui/error-codes/E0301.stderr
index ff4ee32d47b..9b294b055af 100644
--- a/src/test/ui/error-codes/E0301.stderr
+++ b/src/test/ui/error-codes/E0301.stderr
@@ -6,3 +6,4 @@ error[E0301]: cannot mutably borrow in a pattern guard
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0301"
diff --git a/src/test/ui/error-codes/E0302.stderr b/src/test/ui/error-codes/E0302.stderr
index c7b33a490d1..1a1641c0f87 100644
--- a/src/test/ui/error-codes/E0302.stderr
+++ b/src/test/ui/error-codes/E0302.stderr
@@ -6,3 +6,4 @@ error[E0302]: cannot assign in a pattern guard
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0302"
diff --git a/src/test/ui/error-codes/E0303.stderr b/src/test/ui/error-codes/E0303.stderr
index 6528c97a560..8a51a087b68 100644
--- a/src/test/ui/error-codes/E0303.stderr
+++ b/src/test/ui/error-codes/E0303.stderr
@@ -15,3 +15,5 @@ error[E0303]: pattern bindings are not allowed after an `@`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0009, E0303
+If you want more information on an error, try using "rustc --explain E0009"
diff --git a/src/test/ui/error-codes/E0308-4.stderr b/src/test/ui/error-codes/E0308-4.stderr
index 1e4beeae176..a7b40c54184 100644
--- a/src/test/ui/error-codes/E0308-4.stderr
+++ b/src/test/ui/error-codes/E0308-4.stderr
@@ -6,3 +6,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/error-codes/E0308.stderr b/src/test/ui/error-codes/E0308.stderr
index 905b0210abf..b137b840924 100644
--- a/src/test/ui/error-codes/E0308.stderr
+++ b/src/test/ui/error-codes/E0308.stderr
@@ -9,3 +9,4 @@ error[E0308]: intrinsic has wrong type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/error-codes/E0365.stderr b/src/test/ui/error-codes/E0365.stderr
index ccb13856df9..52830fc150f 100644
--- a/src/test/ui/error-codes/E0365.stderr
+++ b/src/test/ui/error-codes/E0365.stderr
@@ -8,3 +8,4 @@ error[E0365]: `foo` is private, and cannot be re-exported
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0365"
diff --git a/src/test/ui/error-codes/E0370.stderr b/src/test/ui/error-codes/E0370.stderr
index 1f248f4ed2c..5f96293e214 100644
--- a/src/test/ui/error-codes/E0370.stderr
+++ b/src/test/ui/error-codes/E0370.stderr
@@ -8,3 +8,4 @@ error[E0370]: enum discriminant overflowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0370"
diff --git a/src/test/ui/error-codes/E0374.stderr b/src/test/ui/error-codes/E0374.stderr
index edd463d705c..4d7c53adfac 100644
--- a/src/test/ui/error-codes/E0374.stderr
+++ b/src/test/ui/error-codes/E0374.stderr
@@ -7,3 +7,4 @@ error[E0374]: the trait `CoerceUnsized` may only be implemented for a coercion b
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0374"
diff --git a/src/test/ui/error-codes/E0375.stderr b/src/test/ui/error-codes/E0375.stderr
index a37591521c8..123ad197d93 100644
--- a/src/test/ui/error-codes/E0375.stderr
+++ b/src/test/ui/error-codes/E0375.stderr
@@ -9,3 +9,4 @@ error[E0375]: implementing the trait `CoerceUnsized` requires multiple coercions
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0375"
diff --git a/src/test/ui/error-codes/E0376.stderr b/src/test/ui/error-codes/E0376.stderr
index d036adb4e29..4b73b4aee51 100644
--- a/src/test/ui/error-codes/E0376.stderr
+++ b/src/test/ui/error-codes/E0376.stderr
@@ -6,3 +6,4 @@ error[E0376]: the trait `CoerceUnsized` may only be implemented for a coercion b
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0376"
diff --git a/src/test/ui/error-codes/E0388.stderr b/src/test/ui/error-codes/E0388.stderr
index ec210294cdb..de32010b96a 100644
--- a/src/test/ui/error-codes/E0388.stderr
+++ b/src/test/ui/error-codes/E0388.stderr
@@ -24,3 +24,5 @@ error[E0017]: references in statics may only refer to immutable values
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0017, E0596
+If you want more information on an error, try using "rustc --explain E0017"
diff --git a/src/test/ui/error-codes/E0389.stderr b/src/test/ui/error-codes/E0389.stderr
index e085329bac5..0a9e63a7223 100644
--- a/src/test/ui/error-codes/E0389.stderr
+++ b/src/test/ui/error-codes/E0389.stderr
@@ -6,3 +6,4 @@ error[E0389]: cannot assign to data in a `&` reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0389"
diff --git a/src/test/ui/error-codes/E0390.stderr b/src/test/ui/error-codes/E0390.stderr
index a10b0b87f37..2d2b5d64bda 100644
--- a/src/test/ui/error-codes/E0390.stderr
+++ b/src/test/ui/error-codes/E0390.stderr
@@ -12,3 +12,4 @@ help: consider using a trait to implement these methods
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0390"
diff --git a/src/test/ui/error-codes/E0392.stderr b/src/test/ui/error-codes/E0392.stderr
index 6c466cbb52e..c291bfc5ac7 100644
--- a/src/test/ui/error-codes/E0392.stderr
+++ b/src/test/ui/error-codes/E0392.stderr
@@ -8,3 +8,4 @@ error[E0392]: parameter `T` is never used
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0392"
diff --git a/src/test/ui/error-codes/E0393.stderr b/src/test/ui/error-codes/E0393.stderr
index 10728e21901..33aa79f1d34 100644
--- a/src/test/ui/error-codes/E0393.stderr
+++ b/src/test/ui/error-codes/E0393.stderr
@@ -8,3 +8,4 @@ error[E0393]: the type parameter `T` must be explicitly specified
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0393"
diff --git a/src/test/ui/error-codes/E0394.stderr b/src/test/ui/error-codes/E0394.stderr
index 728cec10325..3fec25ac3d6 100644
--- a/src/test/ui/error-codes/E0394.stderr
+++ b/src/test/ui/error-codes/E0394.stderr
@@ -8,3 +8,4 @@ error[E0394]: cannot refer to other statics by value, use the address-of operato
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0394"
diff --git a/src/test/ui/error-codes/E0395.stderr b/src/test/ui/error-codes/E0395.stderr
index e6d76a696d3..41d47397caf 100644
--- a/src/test/ui/error-codes/E0395.stderr
+++ b/src/test/ui/error-codes/E0395.stderr
@@ -6,3 +6,4 @@ error[E0395]: raw pointers cannot be compared in statics
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0395"
diff --git a/src/test/ui/error-codes/E0396.stderr b/src/test/ui/error-codes/E0396.stderr
index 5c5c01cb988..a2b73d5789c 100644
--- a/src/test/ui/error-codes/E0396.stderr
+++ b/src/test/ui/error-codes/E0396.stderr
@@ -6,3 +6,4 @@ error[E0396]: raw pointers cannot be dereferenced in constants
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0396"
diff --git a/src/test/ui/error-codes/E0401.stderr b/src/test/ui/error-codes/E0401.stderr
index d63aa378eee..a69da16477f 100644
--- a/src/test/ui/error-codes/E0401.stderr
+++ b/src/test/ui/error-codes/E0401.stderr
@@ -6,3 +6,4 @@ error[E0401]: can't use type parameters from outer function; try using a local t
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0401"
diff --git a/src/test/ui/error-codes/E0403.stderr b/src/test/ui/error-codes/E0403.stderr
index 125af35cb57..2589be70777 100644
--- a/src/test/ui/error-codes/E0403.stderr
+++ b/src/test/ui/error-codes/E0403.stderr
@@ -8,3 +8,4 @@ error[E0403]: the name `T` is already used for a type parameter in this type par
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0403"
diff --git a/src/test/ui/error-codes/E0404.stderr b/src/test/ui/error-codes/E0404.stderr
index c30d8c00b80..75e36157b98 100644
--- a/src/test/ui/error-codes/E0404.stderr
+++ b/src/test/ui/error-codes/E0404.stderr
@@ -6,3 +6,4 @@ error[E0404]: expected trait, found struct `Foo`
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0404"
diff --git a/src/test/ui/error-codes/E0405.stderr b/src/test/ui/error-codes/E0405.stderr
index 29bab3f6dd9..269b03179e0 100644
--- a/src/test/ui/error-codes/E0405.stderr
+++ b/src/test/ui/error-codes/E0405.stderr
@@ -6,3 +6,4 @@ error[E0405]: cannot find trait `SomeTrait` in this scope
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0405"
diff --git a/src/test/ui/error-codes/E0407.stderr b/src/test/ui/error-codes/E0407.stderr
index f71437cd6b0..28486c92bf5 100644
--- a/src/test/ui/error-codes/E0407.stderr
+++ b/src/test/ui/error-codes/E0407.stderr
@@ -6,3 +6,4 @@ error[E0407]: method `b` is not a member of trait `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0407"
diff --git a/src/test/ui/error-codes/E0408.stderr b/src/test/ui/error-codes/E0408.stderr
index 1c66bb0e5f0..4280947c574 100644
--- a/src/test/ui/error-codes/E0408.stderr
+++ b/src/test/ui/error-codes/E0408.stderr
@@ -8,3 +8,4 @@ error[E0408]: variable `y` is not bound in all patterns
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0408"
diff --git a/src/test/ui/error-codes/E0411.stderr b/src/test/ui/error-codes/E0411.stderr
index dda922b5b68..b2727806655 100644
--- a/src/test/ui/error-codes/E0411.stderr
+++ b/src/test/ui/error-codes/E0411.stderr
@@ -6,3 +6,4 @@ error[E0411]: cannot find type `Self` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0411"
diff --git a/src/test/ui/error-codes/E0412.stderr b/src/test/ui/error-codes/E0412.stderr
index 6ee2125af04..daeef5bdfce 100644
--- a/src/test/ui/error-codes/E0412.stderr
+++ b/src/test/ui/error-codes/E0412.stderr
@@ -6,3 +6,4 @@ error[E0412]: cannot find type `Something` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0412"
diff --git a/src/test/ui/error-codes/E0415.stderr b/src/test/ui/error-codes/E0415.stderr
index 5e5cfe16e50..9ae1700727a 100644
--- a/src/test/ui/error-codes/E0415.stderr
+++ b/src/test/ui/error-codes/E0415.stderr
@@ -6,3 +6,4 @@ error[E0415]: identifier `f` is bound more than once in this parameter list
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0415"
diff --git a/src/test/ui/error-codes/E0416.stderr b/src/test/ui/error-codes/E0416.stderr
index a48a3ade5c9..b86cc8d6729 100644
--- a/src/test/ui/error-codes/E0416.stderr
+++ b/src/test/ui/error-codes/E0416.stderr
@@ -6,3 +6,4 @@ error[E0416]: identifier `x` is bound more than once in the same pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0416"
diff --git a/src/test/ui/error-codes/E0423.stderr b/src/test/ui/error-codes/E0423.stderr
index aee398efedd..7bc9bc2b43b 100644
--- a/src/test/ui/error-codes/E0423.stderr
+++ b/src/test/ui/error-codes/E0423.stderr
@@ -6,3 +6,4 @@ error[E0423]: expected function, found struct `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/error-codes/E0424.stderr b/src/test/ui/error-codes/E0424.stderr
index d1fd432f4f0..f778af9f411 100644
--- a/src/test/ui/error-codes/E0424.stderr
+++ b/src/test/ui/error-codes/E0424.stderr
@@ -6,3 +6,4 @@ error[E0424]: expected value, found module `self`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0424"
diff --git a/src/test/ui/error-codes/E0425.stderr b/src/test/ui/error-codes/E0425.stderr
index 250ecaeb368..d836b9ddfda 100644
--- a/src/test/ui/error-codes/E0425.stderr
+++ b/src/test/ui/error-codes/E0425.stderr
@@ -6,3 +6,4 @@ error[E0425]: cannot find value `elf` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/error-codes/E0426.stderr b/src/test/ui/error-codes/E0426.stderr
index bb05effd732..088a6db16ac 100644
--- a/src/test/ui/error-codes/E0426.stderr
+++ b/src/test/ui/error-codes/E0426.stderr
@@ -6,3 +6,4 @@ error[E0426]: use of undeclared label `'a`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0426"
diff --git a/src/test/ui/error-codes/E0428.stderr b/src/test/ui/error-codes/E0428.stderr
index c739536c0ab..1e9072e65db 100644
--- a/src/test/ui/error-codes/E0428.stderr
+++ b/src/test/ui/error-codes/E0428.stderr
@@ -10,3 +10,4 @@ error[E0428]: the name `Bar` is defined multiple times
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0428"
diff --git a/src/test/ui/error-codes/E0429.stderr b/src/test/ui/error-codes/E0429.stderr
index 96cf50500fd..b5a78e6d352 100644
--- a/src/test/ui/error-codes/E0429.stderr
+++ b/src/test/ui/error-codes/E0429.stderr
@@ -6,3 +6,4 @@ error[E0429]: `self` imports are only allowed within a { } list
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0429"
diff --git a/src/test/ui/error-codes/E0430.stderr b/src/test/ui/error-codes/E0430.stderr
index b5c80aa23f6..0bc6ffb6bf9 100644
--- a/src/test/ui/error-codes/E0430.stderr
+++ b/src/test/ui/error-codes/E0430.stderr
@@ -22,3 +22,5 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0252, E0430
+If you want more information on an error, try using "rustc --explain E0252"
diff --git a/src/test/ui/error-codes/E0431.stderr b/src/test/ui/error-codes/E0431.stderr
index c7a786b7402..29fbaf2a677 100644
--- a/src/test/ui/error-codes/E0431.stderr
+++ b/src/test/ui/error-codes/E0431.stderr
@@ -6,3 +6,4 @@ error[E0431]: `self` import can only appear in an import list with a non-empty p
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0431"
diff --git a/src/test/ui/error-codes/E0432.stderr b/src/test/ui/error-codes/E0432.stderr
index 6d808f038a3..4b47ceb3aa6 100644
--- a/src/test/ui/error-codes/E0432.stderr
+++ b/src/test/ui/error-codes/E0432.stderr
@@ -6,3 +6,4 @@ error[E0432]: unresolved import `something`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0432"
diff --git a/src/test/ui/error-codes/E0433.stderr b/src/test/ui/error-codes/E0433.stderr
index 691c5922f8f..46cc308992d 100644
--- a/src/test/ui/error-codes/E0433.stderr
+++ b/src/test/ui/error-codes/E0433.stderr
@@ -6,3 +6,4 @@ error[E0433]: failed to resolve. Use of undeclared type or module `HashMap`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0433"
diff --git a/src/test/ui/error-codes/E0434.stderr b/src/test/ui/error-codes/E0434.stderr
index 06880acdb35..3963b4ec695 100644
--- a/src/test/ui/error-codes/E0434.stderr
+++ b/src/test/ui/error-codes/E0434.stderr
@@ -8,3 +8,4 @@ error[E0434]: can't capture dynamic environment in a fn item
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0434"
diff --git a/src/test/ui/error-codes/E0435.stderr b/src/test/ui/error-codes/E0435.stderr
index 855903b7ec3..e3468ca409e 100644
--- a/src/test/ui/error-codes/E0435.stderr
+++ b/src/test/ui/error-codes/E0435.stderr
@@ -6,3 +6,4 @@ error[E0435]: attempt to use a non-constant value in a constant
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0435"
diff --git a/src/test/ui/error-codes/E0437.stderr b/src/test/ui/error-codes/E0437.stderr
index ffad571d061..7cb07e98470 100644
--- a/src/test/ui/error-codes/E0437.stderr
+++ b/src/test/ui/error-codes/E0437.stderr
@@ -6,3 +6,4 @@ error[E0437]: type `Bar` is not a member of trait `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0437"
diff --git a/src/test/ui/error-codes/E0438.stderr b/src/test/ui/error-codes/E0438.stderr
index df587395356..ecea63eb86f 100644
--- a/src/test/ui/error-codes/E0438.stderr
+++ b/src/test/ui/error-codes/E0438.stderr
@@ -6,3 +6,4 @@ error[E0438]: const `BAR` is not a member of trait `Bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0438"
diff --git a/src/test/ui/error-codes/E0439.stderr b/src/test/ui/error-codes/E0439.stderr
index 77930d5e08d..418a8b67005 100644
--- a/src/test/ui/error-codes/E0439.stderr
+++ b/src/test/ui/error-codes/E0439.stderr
@@ -6,3 +6,4 @@ error[E0439]: invalid `simd_shuffle`, needs length: `simd_shuffle`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0439"
diff --git a/src/test/ui/error-codes/E0440.stderr b/src/test/ui/error-codes/E0440.stderr
index 83210a996e0..32eef81cf59 100644
--- a/src/test/ui/error-codes/E0440.stderr
+++ b/src/test/ui/error-codes/E0440.stderr
@@ -6,3 +6,4 @@ error[E0440]: platform-specific intrinsic has wrong number of type parameters: f
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0440"
diff --git a/src/test/ui/error-codes/E0441.stderr b/src/test/ui/error-codes/E0441.stderr
index 34a387e6459..d8bcc3d1396 100644
--- a/src/test/ui/error-codes/E0441.stderr
+++ b/src/test/ui/error-codes/E0441.stderr
@@ -6,3 +6,4 @@ error[E0441]: unrecognized platform-specific intrinsic function: `x86_mm_adds_ep
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0441"
diff --git a/src/test/ui/error-codes/E0442.stderr b/src/test/ui/error-codes/E0442.stderr
index 6f19fd17eb2..86cfb607c2e 100644
--- a/src/test/ui/error-codes/E0442.stderr
+++ b/src/test/ui/error-codes/E0442.stderr
@@ -18,3 +18,4 @@ error[E0442]: intrinsic return value has wrong type: found vector with length 2,
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0442"
diff --git a/src/test/ui/error-codes/E0443.stderr b/src/test/ui/error-codes/E0443.stderr
index ebf8ef5ccf1..b929ff049d0 100644
--- a/src/test/ui/error-codes/E0443.stderr
+++ b/src/test/ui/error-codes/E0443.stderr
@@ -6,3 +6,4 @@ error[E0443]: intrinsic return value has wrong type: found `i64x8`, expected `i1
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0443"
diff --git a/src/test/ui/error-codes/E0444.stderr b/src/test/ui/error-codes/E0444.stderr
index e44d9457045..f1d3064c0de 100644
--- a/src/test/ui/error-codes/E0444.stderr
+++ b/src/test/ui/error-codes/E0444.stderr
@@ -6,3 +6,4 @@ error[E0444]: platform-specific intrinsic has invalid number of arguments: found
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0444"
diff --git a/src/test/ui/error-codes/E0445.stderr b/src/test/ui/error-codes/E0445.stderr
index 7b599543e00..c7f59695e0c 100644
--- a/src/test/ui/error-codes/E0445.stderr
+++ b/src/test/ui/error-codes/E0445.stderr
@@ -18,3 +18,4 @@ error[E0445]: private trait `Foo` in public interface
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0445"
diff --git a/src/test/ui/error-codes/E0446.stderr b/src/test/ui/error-codes/E0446.stderr
index 1b61ca9b177..ceb949f884c 100644
--- a/src/test/ui/error-codes/E0446.stderr
+++ b/src/test/ui/error-codes/E0446.stderr
@@ -8,3 +8,4 @@ error[E0446]: private type `Foo::Bar` in public interface
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0446"
diff --git a/src/test/ui/error-codes/E0449.stderr b/src/test/ui/error-codes/E0449.stderr
index 3587319ed0c..4ec7178ba6c 100644
--- a/src/test/ui/error-codes/E0449.stderr
+++ b/src/test/ui/error-codes/E0449.stderr
@@ -20,3 +20,4 @@ error[E0449]: unnecessary visibility qualifier
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0449"
diff --git a/src/test/ui/error-codes/E0451.stderr b/src/test/ui/error-codes/E0451.stderr
index 0c29bee849b..a1c4929fce7 100644
--- a/src/test/ui/error-codes/E0451.stderr
+++ b/src/test/ui/error-codes/E0451.stderr
@@ -12,3 +12,4 @@ error[E0451]: field `b` of struct `Bar::Foo` is private
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0451"
diff --git a/src/test/ui/error-codes/E0452.stderr b/src/test/ui/error-codes/E0452.stderr
index d63d0edc2c6..36c6052abb1 100644
--- a/src/test/ui/error-codes/E0452.stderr
+++ b/src/test/ui/error-codes/E0452.stderr
@@ -6,3 +6,4 @@ error[E0452]: malformed lint attribute
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0452"
diff --git a/src/test/ui/error-codes/E0453.stderr b/src/test/ui/error-codes/E0453.stderr
index 467784f3367..affad8a5861 100644
--- a/src/test/ui/error-codes/E0453.stderr
+++ b/src/test/ui/error-codes/E0453.stderr
@@ -9,3 +9,4 @@ error[E0453]: allow(non_snake_case) overruled by outer forbid(non_snake_case)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0453"
diff --git a/src/test/ui/error-codes/E0454.stderr b/src/test/ui/error-codes/E0454.stderr
index aee8b53e39d..e127a54dc10 100644
--- a/src/test/ui/error-codes/E0454.stderr
+++ b/src/test/ui/error-codes/E0454.stderr
@@ -6,3 +6,4 @@ error[E0454]: #[link(name = "")] given with empty name
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0454"
diff --git a/src/test/ui/error-codes/E0458.stderr b/src/test/ui/error-codes/E0458.stderr
index 9cdd0d5f300..2ecc7772598 100644
--- a/src/test/ui/error-codes/E0458.stderr
+++ b/src/test/ui/error-codes/E0458.stderr
@@ -12,3 +12,5 @@ error[E0459]: #[link(...)] specified without `name = "foo"`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0458, E0459
+If you want more information on an error, try using "rustc --explain E0458"
diff --git a/src/test/ui/error-codes/E0459.stderr b/src/test/ui/error-codes/E0459.stderr
index 512788e1948..b6d5f8983b3 100644
--- a/src/test/ui/error-codes/E0459.stderr
+++ b/src/test/ui/error-codes/E0459.stderr
@@ -6,3 +6,4 @@ error[E0459]: #[link(...)] specified without `name = "foo"`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0459"
diff --git a/src/test/ui/error-codes/E0463.stderr b/src/test/ui/error-codes/E0463.stderr
index 208c00cc7c9..830d48e57f7 100644
--- a/src/test/ui/error-codes/E0463.stderr
+++ b/src/test/ui/error-codes/E0463.stderr
@@ -6,3 +6,4 @@ error[E0463]: can't find crate for `cookie_monster`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0463"
diff --git a/src/test/ui/error-codes/E0478.stderr b/src/test/ui/error-codes/E0478.stderr
index f909fa48c27..53d3e5c0138 100644
--- a/src/test/ui/error-codes/E0478.stderr
+++ b/src/test/ui/error-codes/E0478.stderr
@@ -17,3 +17,4 @@ note: but lifetime parameter must outlive the lifetime 'kiss as defined on the s
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0478"
diff --git a/src/test/ui/error-codes/E0492.stderr b/src/test/ui/error-codes/E0492.stderr
index c1989662312..e08878a9e8d 100644
--- a/src/test/ui/error-codes/E0492.stderr
+++ b/src/test/ui/error-codes/E0492.stderr
@@ -6,3 +6,4 @@ error[E0492]: cannot borrow a constant which may contain interior mutability, cr
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0492"
diff --git a/src/test/ui/error-codes/E0494.stderr b/src/test/ui/error-codes/E0494.stderr
index 1d5ded5bd9a..e0dda17cea0 100644
--- a/src/test/ui/error-codes/E0494.stderr
+++ b/src/test/ui/error-codes/E0494.stderr
@@ -6,3 +6,4 @@ error[E0494]: cannot refer to the interior of another static, use a constant ins
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0494"
diff --git a/src/test/ui/error-codes/E0496.stderr b/src/test/ui/error-codes/E0496.stderr
index ab9a08a5348..c68e8810f56 100644
--- a/src/test/ui/error-codes/E0496.stderr
+++ b/src/test/ui/error-codes/E0496.stderr
@@ -8,3 +8,4 @@ error[E0496]: lifetime name `'a` shadows a lifetime name that is already in scop
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0496"
diff --git a/src/test/ui/error-codes/E0499.stderr b/src/test/ui/error-codes/E0499.stderr
index c3057d9b558..7bb752be432 100644
--- a/src/test/ui/error-codes/E0499.stderr
+++ b/src/test/ui/error-codes/E0499.stderr
@@ -10,3 +10,4 @@ error[E0499]: cannot borrow `i` as mutable more than once at a time
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0499"
diff --git a/src/test/ui/error-codes/E0502.stderr b/src/test/ui/error-codes/E0502.stderr
index e578cffe564..ae96fa38f64 100644
--- a/src/test/ui/error-codes/E0502.stderr
+++ b/src/test/ui/error-codes/E0502.stderr
@@ -10,3 +10,4 @@ error[E0502]: cannot borrow `*a` as mutable because `a` is also borrowed as immu
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0502"
diff --git a/src/test/ui/error-codes/E0503.stderr b/src/test/ui/error-codes/E0503.stderr
index 112e2c47780..23a1e13b4a5 100644
--- a/src/test/ui/error-codes/E0503.stderr
+++ b/src/test/ui/error-codes/E0503.stderr
@@ -8,3 +8,4 @@ error[E0503]: cannot use `value` because it was mutably borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0503"
diff --git a/src/test/ui/error-codes/E0504.stderr b/src/test/ui/error-codes/E0504.stderr
index 0f1b183dba9..4003c8ed4dd 100644
--- a/src/test/ui/error-codes/E0504.stderr
+++ b/src/test/ui/error-codes/E0504.stderr
@@ -9,3 +9,4 @@ error[E0504]: cannot move `fancy_num` into closure because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0504"
diff --git a/src/test/ui/error-codes/E0505.stderr b/src/test/ui/error-codes/E0505.stderr
index dfb327d48ea..d2db97835b8 100644
--- a/src/test/ui/error-codes/E0505.stderr
+++ b/src/test/ui/error-codes/E0505.stderr
@@ -8,3 +8,4 @@ error[E0505]: cannot move out of `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0505"
diff --git a/src/test/ui/error-codes/E0507.stderr b/src/test/ui/error-codes/E0507.stderr
index 407ebb8fc7b..59345a23703 100644
--- a/src/test/ui/error-codes/E0507.stderr
+++ b/src/test/ui/error-codes/E0507.stderr
@@ -6,3 +6,4 @@ error[E0507]: cannot move out of borrowed content
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0507"
diff --git a/src/test/ui/error-codes/E0509.stderr b/src/test/ui/error-codes/E0509.stderr
index 6da0fdbeb34..8e0638697c6 100644
--- a/src/test/ui/error-codes/E0509.stderr
+++ b/src/test/ui/error-codes/E0509.stderr
@@ -9,3 +9,4 @@ error[E0509]: cannot move out of type `DropStruct`, which implements the `Drop`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0509"
diff --git a/src/test/ui/error-codes/E0511.stderr b/src/test/ui/error-codes/E0511.stderr
index b714350393b..a926535c938 100644
--- a/src/test/ui/error-codes/E0511.stderr
+++ b/src/test/ui/error-codes/E0511.stderr
@@ -6,3 +6,4 @@ error[E0511]: invalid monomorphization of `simd_add` intrinsic: expected SIMD in
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0511"
diff --git a/src/test/ui/error-codes/E0512.stderr b/src/test/ui/error-codes/E0512.stderr
index ad25bb216a3..ca2845d6e55 100644
--- a/src/test/ui/error-codes/E0512.stderr
+++ b/src/test/ui/error-codes/E0512.stderr
@@ -9,3 +9,4 @@ error[E0512]: transmute called with types of different sizes
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0512"
diff --git a/src/test/ui/error-codes/E0516.stderr b/src/test/ui/error-codes/E0516.stderr
index 620929653f6..3417ac19ab0 100644
--- a/src/test/ui/error-codes/E0516.stderr
+++ b/src/test/ui/error-codes/E0516.stderr
@@ -6,3 +6,4 @@ error[E0516]: `typeof` is a reserved keyword but unimplemented
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0516"
diff --git a/src/test/ui/error-codes/E0517.stderr b/src/test/ui/error-codes/E0517.stderr
index 968c47fa7a2..8dc45703fe9 100644
--- a/src/test/ui/error-codes/E0517.stderr
+++ b/src/test/ui/error-codes/E0517.stderr
@@ -33,3 +33,4 @@ error[E0517]: attribute should be applied to struct, enum or union
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0517"
diff --git a/src/test/ui/error-codes/E0518.stderr b/src/test/ui/error-codes/E0518.stderr
index 99a4a63cc9f..3120b6a8bfb 100644
--- a/src/test/ui/error-codes/E0518.stderr
+++ b/src/test/ui/error-codes/E0518.stderr
@@ -17,3 +17,4 @@ error[E0518]: attribute should be applied to function
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0518"
diff --git a/src/test/ui/error-codes/E0520.stderr b/src/test/ui/error-codes/E0520.stderr
index 272c38859ab..9d9e86ac6fc 100644
--- a/src/test/ui/error-codes/E0520.stderr
+++ b/src/test/ui/error-codes/E0520.stderr
@@ -13,3 +13,4 @@ error[E0520]: `fly` specializes an item from a parent `impl`, but that item is n
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0520"
diff --git a/src/test/ui/error-codes/E0522.stderr b/src/test/ui/error-codes/E0522.stderr
index 819fab0088f..3c3527c7ef7 100644
--- a/src/test/ui/error-codes/E0522.stderr
+++ b/src/test/ui/error-codes/E0522.stderr
@@ -8,3 +8,5 @@ error[E0522]: definition of an unknown language item: `cookie`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0522, E0601
+If you want more information on an error, try using "rustc --explain E0522"
diff --git a/src/test/ui/error-codes/E0527.stderr b/src/test/ui/error-codes/E0527.stderr
index 7cd705e6d0b..2041ed2282a 100644
--- a/src/test/ui/error-codes/E0527.stderr
+++ b/src/test/ui/error-codes/E0527.stderr
@@ -6,3 +6,4 @@ error[E0527]: pattern requires 2 elements but array has 4
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0527"
diff --git a/src/test/ui/error-codes/E0528.stderr b/src/test/ui/error-codes/E0528.stderr
index ff75b07ced6..1b353efd3a9 100644
--- a/src/test/ui/error-codes/E0528.stderr
+++ b/src/test/ui/error-codes/E0528.stderr
@@ -6,3 +6,4 @@ error[E0528]: pattern requires at least 3 elements but array has 2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0528"
diff --git a/src/test/ui/error-codes/E0529.stderr b/src/test/ui/error-codes/E0529.stderr
index be9039be2b6..bb49f9d6451 100644
--- a/src/test/ui/error-codes/E0529.stderr
+++ b/src/test/ui/error-codes/E0529.stderr
@@ -6,3 +6,4 @@ error[E0529]: expected an array or slice, found `f32`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0529"
diff --git a/src/test/ui/error-codes/E0530.stderr b/src/test/ui/error-codes/E0530.stderr
index 7c0306cc772..4e92db34b04 100644
--- a/src/test/ui/error-codes/E0530.stderr
+++ b/src/test/ui/error-codes/E0530.stderr
@@ -9,3 +9,4 @@ error[E0530]: match bindings cannot shadow statics
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0530"
diff --git a/src/test/ui/error-codes/E0532.stderr b/src/test/ui/error-codes/E0532.stderr
index 4eb91ce35d4..48d7cd5d545 100644
--- a/src/test/ui/error-codes/E0532.stderr
+++ b/src/test/ui/error-codes/E0532.stderr
@@ -6,3 +6,4 @@ error[E0532]: expected tuple struct/variant, found constant `StructConst1`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0532"
diff --git a/src/test/ui/error-codes/E0534.stderr b/src/test/ui/error-codes/E0534.stderr
index fe7a5483e59..58b183cd98d 100644
--- a/src/test/ui/error-codes/E0534.stderr
+++ b/src/test/ui/error-codes/E0534.stderr
@@ -6,3 +6,4 @@ error[E0534]: expected one argument
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0534"
diff --git a/src/test/ui/error-codes/E0558.stderr b/src/test/ui/error-codes/E0558.stderr
index c116201794d..5a4219a5b7d 100644
--- a/src/test/ui/error-codes/E0558.stderr
+++ b/src/test/ui/error-codes/E0558.stderr
@@ -6,3 +6,4 @@ error[E0558]: export_name attribute has invalid format
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0558"
diff --git a/src/test/ui/error-codes/E0559.stderr b/src/test/ui/error-codes/E0559.stderr
index 0bdf104ec6b..c5a2aa6a949 100644
--- a/src/test/ui/error-codes/E0559.stderr
+++ b/src/test/ui/error-codes/E0559.stderr
@@ -8,3 +8,4 @@ error[E0559]: variant `Field::Fool` has no field named `joke`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0559"
diff --git a/src/test/ui/error-codes/E0560.stderr b/src/test/ui/error-codes/E0560.stderr
index aedd2d59142..71b2bfb32ad 100644
--- a/src/test/ui/error-codes/E0560.stderr
+++ b/src/test/ui/error-codes/E0560.stderr
@@ -8,3 +8,4 @@ error[E0560]: struct `Simba` has no field named `father`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0560"
diff --git a/src/test/ui/error-codes/E0565-1.stderr b/src/test/ui/error-codes/E0565-1.stderr
index 65b917ad4bd..9491f5ac7e3 100644
--- a/src/test/ui/error-codes/E0565-1.stderr
+++ b/src/test/ui/error-codes/E0565-1.stderr
@@ -6,3 +6,4 @@ error[E0565]: unsupported literal
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0565"
diff --git a/src/test/ui/error-codes/E0565.stderr b/src/test/ui/error-codes/E0565.stderr
index 0041b7689a6..757c3fcdd7a 100644
--- a/src/test/ui/error-codes/E0565.stderr
+++ b/src/test/ui/error-codes/E0565.stderr
@@ -6,3 +6,4 @@ error[E0565]: unsupported literal
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0565"
diff --git a/src/test/ui/error-codes/E0572.stderr b/src/test/ui/error-codes/E0572.stderr
index cad313b90a6..1abc2222f0e 100644
--- a/src/test/ui/error-codes/E0572.stderr
+++ b/src/test/ui/error-codes/E0572.stderr
@@ -6,3 +6,4 @@ error[E0572]: return statement outside of function body
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0572"
diff --git a/src/test/ui/error-codes/E0582.stderr b/src/test/ui/error-codes/E0582.stderr
index ac206834023..21dd0d4f80a 100644
--- a/src/test/ui/error-codes/E0582.stderr
+++ b/src/test/ui/error-codes/E0582.stderr
@@ -12,3 +12,4 @@ error[E0582]: binding for associated type `Item` references lifetime `'a`, which
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0582"
diff --git a/src/test/ui/error-codes/E0585.stderr b/src/test/ui/error-codes/E0585.stderr
index 49967f4ad81..28528c90626 100644
--- a/src/test/ui/error-codes/E0585.stderr
+++ b/src/test/ui/error-codes/E0585.stderr
@@ -8,3 +8,4 @@ error[E0585]: found a documentation comment that doesn't document anything
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0585"
diff --git a/src/test/ui/error-codes/E0586.stderr b/src/test/ui/error-codes/E0586.stderr
index 3cf16bdc3c3..9b4263507a8 100644
--- a/src/test/ui/error-codes/E0586.stderr
+++ b/src/test/ui/error-codes/E0586.stderr
@@ -8,3 +8,4 @@ error[E0586]: inclusive range with no end
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0586"
diff --git a/src/test/ui/error-codes/E0597.stderr b/src/test/ui/error-codes/E0597.stderr
index 7316ee6475f..87a961dbcd2 100644
--- a/src/test/ui/error-codes/E0597.stderr
+++ b/src/test/ui/error-codes/E0597.stderr
@@ -11,3 +11,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/error-codes/E0599.stderr b/src/test/ui/error-codes/E0599.stderr
index 0274506926f..ff9ac3cefc0 100644
--- a/src/test/ui/error-codes/E0599.stderr
+++ b/src/test/ui/error-codes/E0599.stderr
@@ -9,3 +9,4 @@ error[E0599]: no associated item named `NotEvenReal` found for type `Foo` in the
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/error-codes/E0600.stderr b/src/test/ui/error-codes/E0600.stderr
index fec5f416919..34e1c56fe2f 100644
--- a/src/test/ui/error-codes/E0600.stderr
+++ b/src/test/ui/error-codes/E0600.stderr
@@ -6,3 +6,4 @@ error[E0600]: cannot apply unary operator `!` to type `&'static str`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0600"
diff --git a/src/test/ui/error-codes/E0602.stderr b/src/test/ui/error-codes/E0602.stderr
index cb6c05326e2..d72b426cf82 100644
--- a/src/test/ui/error-codes/E0602.stderr
+++ b/src/test/ui/error-codes/E0602.stderr
@@ -4,3 +4,4 @@ error[E0602]: unknown lint: `bogus`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0602"
diff --git a/src/test/ui/error-codes/E0603.stderr b/src/test/ui/error-codes/E0603.stderr
index 1d8e2fa9340..71af28add7b 100644
--- a/src/test/ui/error-codes/E0603.stderr
+++ b/src/test/ui/error-codes/E0603.stderr
@@ -6,3 +6,4 @@ error[E0603]: constant `PRIVATE` is private
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0603"
diff --git a/src/test/ui/error-codes/E0604.stderr b/src/test/ui/error-codes/E0604.stderr
index 78d1c4dd476..28f77417ecc 100644
--- a/src/test/ui/error-codes/E0604.stderr
+++ b/src/test/ui/error-codes/E0604.stderr
@@ -6,3 +6,4 @@ error[E0604]: only `u8` can be cast as `char`, not `u32`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0604"
diff --git a/src/test/ui/error-codes/E0605.stderr b/src/test/ui/error-codes/E0605.stderr
index 0b44de25fb5..fe694b3eb19 100644
--- a/src/test/ui/error-codes/E0605.stderr
+++ b/src/test/ui/error-codes/E0605.stderr
@@ -16,3 +16,4 @@ error[E0605]: non-primitive cast: `*const u8` as `&u8`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0605"
diff --git a/src/test/ui/error-codes/E0606.stderr b/src/test/ui/error-codes/E0606.stderr
index 17051da1319..b606bd9113b 100644
--- a/src/test/ui/error-codes/E0606.stderr
+++ b/src/test/ui/error-codes/E0606.stderr
@@ -12,3 +12,4 @@ help: did you mean `*&0u8`?
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0606"
diff --git a/src/test/ui/error-codes/E0607.stderr b/src/test/ui/error-codes/E0607.stderr
index 5dfe6ad59b8..2fcb050e628 100644
--- a/src/test/ui/error-codes/E0607.stderr
+++ b/src/test/ui/error-codes/E0607.stderr
@@ -6,3 +6,4 @@ error[E0607]: cannot cast thin pointer `*const u8` to fat pointer `*const [u8]`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0607"
diff --git a/src/test/ui/error-codes/E0608.stderr b/src/test/ui/error-codes/E0608.stderr
index ab75fe82af3..89095cbdf81 100644
--- a/src/test/ui/error-codes/E0608.stderr
+++ b/src/test/ui/error-codes/E0608.stderr
@@ -6,3 +6,4 @@ error[E0608]: cannot index into a value of type `u8`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0608"
diff --git a/src/test/ui/error-codes/E0609.stderr b/src/test/ui/error-codes/E0609.stderr
index 561164cd277..56c088fd2be 100644
--- a/src/test/ui/error-codes/E0609.stderr
+++ b/src/test/ui/error-codes/E0609.stderr
@@ -14,3 +14,4 @@ error[E0609]: no field `1` on type `Bar`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0609"
diff --git a/src/test/ui/error-codes/E0610.stderr b/src/test/ui/error-codes/E0610.stderr
index 351e9208e95..3fa9be7e0de 100644
--- a/src/test/ui/error-codes/E0610.stderr
+++ b/src/test/ui/error-codes/E0610.stderr
@@ -6,3 +6,4 @@ error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0610"
diff --git a/src/test/ui/error-codes/E0611.stderr b/src/test/ui/error-codes/E0611.stderr
index 33fe78bc18c..e08b2edd63f 100644
--- a/src/test/ui/error-codes/E0611.stderr
+++ b/src/test/ui/error-codes/E0611.stderr
@@ -6,3 +6,4 @@ error[E0611]: field `0` of tuple-struct `a::Foo` is private
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0611"
diff --git a/src/test/ui/error-codes/E0612.stderr b/src/test/ui/error-codes/E0612.stderr
index 21fdaf84dc9..0535f13a4c4 100644
--- a/src/test/ui/error-codes/E0612.stderr
+++ b/src/test/ui/error-codes/E0612.stderr
@@ -6,3 +6,4 @@ error[E0612]: attempted out-of-bounds tuple index `1` on type `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0612"
diff --git a/src/test/ui/error-codes/E0614.stderr b/src/test/ui/error-codes/E0614.stderr
index 242cc36f0b9..806fed59f79 100644
--- a/src/test/ui/error-codes/E0614.stderr
+++ b/src/test/ui/error-codes/E0614.stderr
@@ -6,3 +6,4 @@ error[E0614]: type `u32` cannot be dereferenced
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0614"
diff --git a/src/test/ui/error-codes/E0615.stderr b/src/test/ui/error-codes/E0615.stderr
index fb3f9269f7c..3481a1e3a05 100644
--- a/src/test/ui/error-codes/E0615.stderr
+++ b/src/test/ui/error-codes/E0615.stderr
@@ -8,3 +8,4 @@ error[E0615]: attempted to take value of method `method` on type `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0615"
diff --git a/src/test/ui/error-codes/E0616.stderr b/src/test/ui/error-codes/E0616.stderr
index 1dccd06b376..2cf889ce6fb 100644
--- a/src/test/ui/error-codes/E0616.stderr
+++ b/src/test/ui/error-codes/E0616.stderr
@@ -6,3 +6,4 @@ error[E0616]: field `x` of struct `a::Foo` is private
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0616"
diff --git a/src/test/ui/error-codes/E0617.stderr b/src/test/ui/error-codes/E0617.stderr
index 49d63538624..b72ab2de414 100644
--- a/src/test/ui/error-codes/E0617.stderr
+++ b/src/test/ui/error-codes/E0617.stderr
@@ -40,3 +40,4 @@ help: cast the value to `unsafe extern "C" fn(*const i8, ...)`
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0617"
diff --git a/src/test/ui/error-codes/E0618.stderr b/src/test/ui/error-codes/E0618.stderr
index 87024376596..9f364f55dd6 100644
--- a/src/test/ui/error-codes/E0618.stderr
+++ b/src/test/ui/error-codes/E0618.stderr
@@ -21,3 +21,4 @@ error[E0618]: expected function, found `i32`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0618"
diff --git a/src/test/ui/error-codes/E0620.stderr b/src/test/ui/error-codes/E0620.stderr
index 564a9472ac9..5c18afebf5a 100644
--- a/src/test/ui/error-codes/E0620.stderr
+++ b/src/test/ui/error-codes/E0620.stderr
@@ -12,3 +12,4 @@ help: consider using an implicit coercion to `&[usize]` instead
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0620"
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 c529a838bf7..c9d5542ee17 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,3 +27,4 @@ note: ...so type `&i32` of expression is valid during the expression
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0495"
diff --git a/src/test/ui/error-codes/E0622.stderr b/src/test/ui/error-codes/E0622.stderr
index 977f44a9c97..9135da97825 100644
--- a/src/test/ui/error-codes/E0622.stderr
+++ b/src/test/ui/error-codes/E0622.stderr
@@ -6,3 +6,4 @@ error[E0622]: intrinsic must be a function
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0622"
diff --git a/src/test/ui/error-codes/E0624.stderr b/src/test/ui/error-codes/E0624.stderr
index 0afb05a8a5e..621b82df43c 100644
--- a/src/test/ui/error-codes/E0624.stderr
+++ b/src/test/ui/error-codes/E0624.stderr
@@ -6,3 +6,4 @@ error[E0624]: method `method` is private
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0624"
diff --git a/src/test/ui/error-codes/E0637.stderr b/src/test/ui/error-codes/E0637.stderr
index e314afd221e..d035359b73a 100644
--- a/src/test/ui/error-codes/E0637.stderr
+++ b/src/test/ui/error-codes/E0637.stderr
@@ -18,3 +18,4 @@ error[E0637]: invalid lifetime bound name: `'_`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0637"
diff --git a/src/test/ui/error-codes/E0657.stderr b/src/test/ui/error-codes/E0657.stderr
index e039d645fa6..82b0568b59a 100644
--- a/src/test/ui/error-codes/E0657.stderr
+++ b/src/test/ui/error-codes/E0657.stderr
@@ -12,3 +12,4 @@ error[E0657]: `impl Trait` can only capture lifetimes bound at the fn or impl le
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0657"
diff --git a/src/test/ui/error-codes/E0658.stderr b/src/test/ui/error-codes/E0658.stderr
index c18d8090233..461edabf5c9 100644
--- a/src/test/ui/error-codes/E0658.stderr
+++ b/src/test/ui/error-codes/E0658.stderr
@@ -8,3 +8,4 @@ error[E0658]: use of unstable library feature 'i128' (see issue #35118)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/error-codes/E0659.stderr b/src/test/ui/error-codes/E0659.stderr
index c2410e2f733..266afa893bf 100644
--- a/src/test/ui/error-codes/E0659.stderr
+++ b/src/test/ui/error-codes/E0659.stderr
@@ -18,3 +18,4 @@ note: `foo` could also refer to the name imported here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0659"
diff --git a/src/test/ui/error-festival.rs b/src/test/ui/error-festival.rs
new file mode 100644
index 00000000000..c17e3c878b8
--- /dev/null
+++ b/src/test/ui/error-festival.rs
@@ -0,0 +1,53 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+enum Question {
+    Yes,
+    No,
+}
+
+mod foo {
+    const FOO: u32 = 0;
+}
+
+fn main() {
+    let x = "a";
+    x += 2;
+    //~^ ERROR E0368
+    y = 2;
+    //~^ ERROR E0425
+    x.z();
+    //~^ ERROR E0599
+
+    !Question::Yes;
+    //~^ ERROR E0600
+
+    foo::FOO;
+    //~^ ERROR E0603
+
+    0u32 as char;
+    //~^ ERROR E0604
+
+    let x = 0u8;
+    x as Vec<u8>;
+    //~^ ERROR E0605
+
+    let x = 5;
+    let x_is_nonzero = x as bool;
+    //~^ ERROR E0054
+
+    let x = &0u8;
+    let y: u32 = x as u32;
+    //~^ ERROR E0606
+
+    let v = 0 as *const u8;
+    v as *const [u8];
+    //~^ ERROR E0607
+}
diff --git a/src/test/ui/error-festival.stderr b/src/test/ui/error-festival.stderr
new file mode 100644
index 00000000000..35a35430fe1
--- /dev/null
+++ b/src/test/ui/error-festival.stderr
@@ -0,0 +1,76 @@
+error[E0425]: cannot find value `y` in this scope
+  --> $DIR/error-festival.rs:24:5
+   |
+24 |     y = 2;
+   |     ^ did you mean `x`?
+
+error[E0603]: constant `FOO` is private
+  --> $DIR/error-festival.rs:32:5
+   |
+32 |     foo::FOO;
+   |     ^^^^^^^^
+
+error[E0368]: binary assignment operation `+=` cannot be applied to type `&str`
+  --> $DIR/error-festival.rs:22:5
+   |
+22 |     x += 2;
+   |     -^^^^^
+   |     |
+   |     cannot use `+=` on type `&str`
+
+error[E0599]: no method named `z` found for type `&str` in the current scope
+  --> $DIR/error-festival.rs:26:7
+   |
+26 |     x.z();
+   |       ^
+
+error[E0600]: cannot apply unary operator `!` to type `Question`
+  --> $DIR/error-festival.rs:29:5
+   |
+29 |     !Question::Yes;
+   |     ^^^^^^^^^^^^^^
+
+error[E0604]: only `u8` can be cast as `char`, not `u32`
+  --> $DIR/error-festival.rs:35:5
+   |
+35 |     0u32 as char;
+   |     ^^^^^^^^^^^^
+
+error[E0605]: non-primitive cast: `u8` as `std::vec::Vec<u8>`
+  --> $DIR/error-festival.rs:39:5
+   |
+39 |     x as Vec<u8>;
+   |     ^^^^^^^^^^^^
+   |
+   = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
+
+error[E0054]: cannot cast as `bool`
+  --> $DIR/error-festival.rs:43:24
+   |
+43 |     let x_is_nonzero = x as bool;
+   |                        ^^^^^^^^^ unsupported cast
+   |
+   = help: compare with zero instead
+
+error[E0606]: casting `&u8` as `u32` is invalid
+  --> $DIR/error-festival.rs:47:18
+   |
+47 |     let y: u32 = x as u32;
+   |                  ^^^^^^^^ cannot cast `&u8` as `u32`
+   |
+help: did you mean `*x`?
+  --> $DIR/error-festival.rs:47:18
+   |
+47 |     let y: u32 = x as u32;
+   |                  ^
+
+error[E0607]: cannot cast thin pointer `*const u8` to fat pointer `*const [u8]`
+  --> $DIR/error-festival.rs:51:5
+   |
+51 |     v as *const [u8];
+   |     ^^^^^^^^^^^^^^^^
+
+error: aborting due to 10 previous errors
+
+You've got a few errors: E0054, E0368, E0425, E0599, E0600, E0603, E0604, E0605, E0606...
+If you want more information on an error, try using "rustc --explain E0054"
diff --git a/src/test/ui/fat-ptr-cast.stderr b/src/test/ui/fat-ptr-cast.stderr
index b3c2b23cd32..cd8511426ff 100644
--- a/src/test/ui/fat-ptr-cast.stderr
+++ b/src/test/ui/fat-ptr-cast.stderr
@@ -66,3 +66,5 @@ error[E0606]: casting `usize` as `*const str` is invalid
 
 error: aborting due to 9 previous errors
 
+You've got a few errors: E0605, E0606, E0607
+If you want more information on an error, try using "rustc --explain E0605"
diff --git a/src/test/ui/feature-gate-abi-msp430-interrupt.stderr b/src/test/ui/feature-gate-abi-msp430-interrupt.stderr
index e1621d34d46..9f8571a311d 100644
--- a/src/test/ui/feature-gate-abi-msp430-interrupt.stderr
+++ b/src/test/ui/feature-gate-abi-msp430-interrupt.stderr
@@ -8,3 +8,4 @@ error[E0658]: msp430-interrupt ABI is experimental and subject to change (see is
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-abi.stderr b/src/test/ui/feature-gate-abi.stderr
index ce31474caed..7bef59e9b1e 100644
--- a/src/test/ui/feature-gate-abi.stderr
+++ b/src/test/ui/feature-gate-abi.stderr
@@ -448,3 +448,4 @@ error[E0658]: thiscall is experimental and subject to change
 
 error: aborting due to 56 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-abi_unadjusted.stderr b/src/test/ui/feature-gate-abi_unadjusted.stderr
index b3f7cd218d3..62a6a2dfd99 100644
--- a/src/test/ui/feature-gate-abi_unadjusted.stderr
+++ b/src/test/ui/feature-gate-abi_unadjusted.stderr
@@ -10,3 +10,4 @@ error[E0658]: unadjusted ABI is an implementation detail and perma-unstable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-advanced-slice-features.stderr b/src/test/ui/feature-gate-advanced-slice-features.stderr
index 63ede50e1ea..4a6f41c453e 100644
--- a/src/test/ui/feature-gate-advanced-slice-features.stderr
+++ b/src/test/ui/feature-gate-advanced-slice-features.stderr
@@ -16,3 +16,4 @@ error[E0658]: multiple-element slice matches anywhere but at the end of a slice
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allocator_internals.stderr b/src/test/ui/feature-gate-allocator_internals.stderr
index 76d96f929be..dd06b1b7f31 100644
--- a/src/test/ui/feature-gate-allocator_internals.stderr
+++ b/src/test/ui/feature-gate-allocator_internals.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[default_lib_allocator]` attribute is an experimental featur
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allow-internal-unsafe-nested-macro.stderr b/src/test/ui/feature-gate-allow-internal-unsafe-nested-macro.stderr
index 31de8d76285..42789389a59 100644
--- a/src/test/ui/feature-gate-allow-internal-unsafe-nested-macro.stderr
+++ b/src/test/ui/feature-gate-allow-internal-unsafe-nested-macro.stderr
@@ -11,3 +11,4 @@ error[E0658]: allow_internal_unsafe side-steps the unsafe_code lint
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allow-internal-unstable-nested-macro.stderr b/src/test/ui/feature-gate-allow-internal-unstable-nested-macro.stderr
index 3e2573eda21..6d02a1cc57f 100644
--- a/src/test/ui/feature-gate-allow-internal-unstable-nested-macro.stderr
+++ b/src/test/ui/feature-gate-allow-internal-unstable-nested-macro.stderr
@@ -11,3 +11,4 @@ error[E0658]: allow_internal_unstable side-steps feature gating and stability ch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allow-internal-unstable-struct.stderr b/src/test/ui/feature-gate-allow-internal-unstable-struct.stderr
index e19f3288e81..d5b6892e75a 100644
--- a/src/test/ui/feature-gate-allow-internal-unstable-struct.stderr
+++ b/src/test/ui/feature-gate-allow-internal-unstable-struct.stderr
@@ -8,3 +8,4 @@ error[E0658]: allow_internal_unstable side-steps feature gating and stability ch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allow-internal-unstable.stderr b/src/test/ui/feature-gate-allow-internal-unstable.stderr
index f110afb35a0..ec17a33da72 100644
--- a/src/test/ui/feature-gate-allow-internal-unstable.stderr
+++ b/src/test/ui/feature-gate-allow-internal-unstable.stderr
@@ -8,3 +8,4 @@ error[E0658]: allow_internal_unstable side-steps feature gating and stability ch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-allow_fail.stderr b/src/test/ui/feature-gate-allow_fail.stderr
index e04f44886dd..cb8c7d5d514 100644
--- a/src/test/ui/feature-gate-allow_fail.stderr
+++ b/src/test/ui/feature-gate-allow_fail.stderr
@@ -8,3 +8,4 @@ error[E0658]: allow_fail attribute is currently unstable (see issue #42219)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-arbitrary-self-types.stderr b/src/test/ui/feature-gate-arbitrary-self-types.stderr
index ca47d40dc8f..bbb5e923452 100644
--- a/src/test/ui/feature-gate-arbitrary-self-types.stderr
+++ b/src/test/ui/feature-gate-arbitrary-self-types.stderr
@@ -27,3 +27,4 @@ error[E0658]: arbitrary `self` types are unstable (see issue #44874)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-arbitrary_self_types-raw-pointer.stderr b/src/test/ui/feature-gate-arbitrary_self_types-raw-pointer.stderr
index 33e8806678d..e22c4bebfaf 100644
--- a/src/test/ui/feature-gate-arbitrary_self_types-raw-pointer.stderr
+++ b/src/test/ui/feature-gate-arbitrary_self_types-raw-pointer.stderr
@@ -27,3 +27,4 @@ error[E0658]: raw pointer `self` is unstable (see issue #44874)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-asm.stderr b/src/test/ui/feature-gate-asm.stderr
index 481e6dc7055..277193c07ed 100644
--- a/src/test/ui/feature-gate-asm.stderr
+++ b/src/test/ui/feature-gate-asm.stderr
@@ -8,3 +8,4 @@ error[E0658]: inline assembly is not stable enough for use and is subject to cha
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-asm2.stderr b/src/test/ui/feature-gate-asm2.stderr
index aba0f72d35c..804e3d59dea 100644
--- a/src/test/ui/feature-gate-asm2.stderr
+++ b/src/test/ui/feature-gate-asm2.stderr
@@ -8,3 +8,4 @@ error[E0658]: inline assembly is not stable enough for use and is subject to cha
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-assoc-type-defaults.stderr b/src/test/ui/feature-gate-assoc-type-defaults.stderr
index 1d44797cddc..97fd18aab17 100644
--- a/src/test/ui/feature-gate-assoc-type-defaults.stderr
+++ b/src/test/ui/feature-gate-assoc-type-defaults.stderr
@@ -8,3 +8,4 @@ error[E0658]: associated type defaults are unstable (see issue #29661)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-box-expr.stderr b/src/test/ui/feature-gate-box-expr.stderr
index f9cccde3761..a1d6d17bd4d 100644
--- a/src/test/ui/feature-gate-box-expr.stderr
+++ b/src/test/ui/feature-gate-box-expr.stderr
@@ -8,3 +8,4 @@ error[E0658]: box expression syntax is experimental; you can call `Box::new` ins
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-box_patterns.stderr b/src/test/ui/feature-gate-box_patterns.stderr
index ca009331b69..7457fc27682 100644
--- a/src/test/ui/feature-gate-box_patterns.stderr
+++ b/src/test/ui/feature-gate-box_patterns.stderr
@@ -8,3 +8,4 @@ error[E0658]: box pattern syntax is experimental (see issue #29641)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-box_syntax.stderr b/src/test/ui/feature-gate-box_syntax.stderr
index eefaa724650..e3490edf9fb 100644
--- a/src/test/ui/feature-gate-box_syntax.stderr
+++ b/src/test/ui/feature-gate-box_syntax.stderr
@@ -8,3 +8,4 @@ error[E0658]: box expression syntax is experimental; you can call `Box::new` ins
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-catch_expr.stderr b/src/test/ui/feature-gate-catch_expr.stderr
index 4b3bfbbe27a..73e9a9c896b 100644
--- a/src/test/ui/feature-gate-catch_expr.stderr
+++ b/src/test/ui/feature-gate-catch_expr.stderr
@@ -12,3 +12,4 @@ error[E0658]: `catch` expression is experimental (see issue #31436)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-cfg-target-feature.stderr b/src/test/ui/feature-gate-cfg-target-feature.stderr
index f808e78acce..05f1a09a05b 100644
--- a/src/test/ui/feature-gate-cfg-target-feature.stderr
+++ b/src/test/ui/feature-gate-cfg-target-feature.stderr
@@ -32,3 +32,4 @@ error[E0658]: `cfg(target_feature)` is experimental and subject to change (see i
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-cfg-target-has-atomic.stderr b/src/test/ui/feature-gate-cfg-target-has-atomic.stderr
index ace23b38d2d..0a1332719b5 100644
--- a/src/test/ui/feature-gate-cfg-target-has-atomic.stderr
+++ b/src/test/ui/feature-gate-cfg-target-has-atomic.stderr
@@ -120,3 +120,4 @@ error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change (se
 
 error: aborting due to 15 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-cfg-target-thread-local.stderr b/src/test/ui/feature-gate-cfg-target-thread-local.stderr
index a0a03bdcd46..27126894749 100644
--- a/src/test/ui/feature-gate-cfg-target-thread-local.stderr
+++ b/src/test/ui/feature-gate-cfg-target-thread-local.stderr
@@ -8,3 +8,4 @@ error[E0658]: `cfg(target_thread_local)` is experimental and subject to change (
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-cfg-target-vendor.stderr b/src/test/ui/feature-gate-cfg-target-vendor.stderr
index 3e4a74636f9..ff563978402 100644
--- a/src/test/ui/feature-gate-cfg-target-vendor.stderr
+++ b/src/test/ui/feature-gate-cfg-target-vendor.stderr
@@ -32,3 +32,4 @@ error[E0658]: `cfg(target_vendor)` is experimental and subject to change (see is
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-clone-closures.stderr b/src/test/ui/feature-gate-clone-closures.stderr
index 3e07aa17440..de0d3c36114 100644
--- a/src/test/ui/feature-gate-clone-closures.stderr
+++ b/src/test/ui/feature-gate-clone-closures.stderr
@@ -8,3 +8,4 @@ error[E0599]: no method named `clone` found for type `[closure@$DIR/feature-gate
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/feature-gate-compiler-builtins.stderr b/src/test/ui/feature-gate-compiler-builtins.stderr
index edb3c5d62ae..ee4e33f4005 100644
--- a/src/test/ui/feature-gate-compiler-builtins.stderr
+++ b/src/test/ui/feature-gate-compiler-builtins.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[compiler_builtins]` attribute is used to identify the `comp
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-concat_idents.stderr b/src/test/ui/feature-gate-concat_idents.stderr
index d0a07e3d3c9..cec3ed47607 100644
--- a/src/test/ui/feature-gate-concat_idents.stderr
+++ b/src/test/ui/feature-gate-concat_idents.stderr
@@ -16,3 +16,4 @@ error[E0658]: `concat_idents` is not stable enough for use and is subject to cha
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-concat_idents2.stderr b/src/test/ui/feature-gate-concat_idents2.stderr
index 0ef6921c64d..0d39479ba8f 100644
--- a/src/test/ui/feature-gate-concat_idents2.stderr
+++ b/src/test/ui/feature-gate-concat_idents2.stderr
@@ -8,3 +8,4 @@ error[E0658]: `concat_idents` is not stable enough for use and is subject to cha
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-concat_idents3.stderr b/src/test/ui/feature-gate-concat_idents3.stderr
index a9a1e493a45..2c4ed467ab4 100644
--- a/src/test/ui/feature-gate-concat_idents3.stderr
+++ b/src/test/ui/feature-gate-concat_idents3.stderr
@@ -16,3 +16,4 @@ error[E0658]: `concat_idents` is not stable enough for use and is subject to cha
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-conservative_impl_trait.stderr b/src/test/ui/feature-gate-conservative_impl_trait.stderr
index f3d39477387..1448bad3d18 100644
--- a/src/test/ui/feature-gate-conservative_impl_trait.stderr
+++ b/src/test/ui/feature-gate-conservative_impl_trait.stderr
@@ -8,3 +8,4 @@ error[E0658]: `impl Trait` in return position is experimental (see issue #34511)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-const-indexing.stderr b/src/test/ui/feature-gate-const-indexing.stderr
index bc4b687800d..18b855d6b4f 100644
--- a/src/test/ui/feature-gate-const-indexing.stderr
+++ b/src/test/ui/feature-gate-const-indexing.stderr
@@ -6,3 +6,4 @@ error[E0080]: constant evaluation error
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/feature-gate-const_fn.stderr b/src/test/ui/feature-gate-const_fn.stderr
index ecd1ff5a6c4..9c22f89a7ef 100644
--- a/src/test/ui/feature-gate-const_fn.stderr
+++ b/src/test/ui/feature-gate-const_fn.stderr
@@ -58,3 +58,5 @@ error[E0658]: const fn is unstable (see issue #24111)
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0379, E0658
+If you want more information on an error, try using "rustc --explain E0379"
diff --git a/src/test/ui/feature-gate-copy-closures.stderr b/src/test/ui/feature-gate-copy-closures.stderr
index 9b324672f22..2604d8bb53d 100644
--- a/src/test/ui/feature-gate-copy-closures.stderr
+++ b/src/test/ui/feature-gate-copy-closures.stderr
@@ -10,3 +10,4 @@ error[E0382]: use of moved value: `hello`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/feature-gate-crate_in_paths.stderr b/src/test/ui/feature-gate-crate_in_paths.stderr
index 322a38a996f..0c080934446 100644
--- a/src/test/ui/feature-gate-crate_in_paths.stderr
+++ b/src/test/ui/feature-gate-crate_in_paths.stderr
@@ -8,3 +8,4 @@ error[E0658]: `crate` in paths is experimental (see issue #45477)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-crate_visibility_modifier.stderr b/src/test/ui/feature-gate-crate_visibility_modifier.stderr
index fadc76bc0c0..ede92642f75 100644
--- a/src/test/ui/feature-gate-crate_visibility_modifier.stderr
+++ b/src/test/ui/feature-gate-crate_visibility_modifier.stderr
@@ -8,3 +8,4 @@ error[E0658]: `crate` visibility modifier is experimental (see issue #45388)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-custom_attribute.stderr b/src/test/ui/feature-gate-custom_attribute.stderr
index f4d726c8c41..3652834ce8e 100644
--- a/src/test/ui/feature-gate-custom_attribute.stderr
+++ b/src/test/ui/feature-gate-custom_attribute.stderr
@@ -104,3 +104,4 @@ error[E0658]: The attribute `fake_doc` is currently unknown to the compiler and
 
 error: aborting due to 13 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-custom_attribute2.stderr b/src/test/ui/feature-gate-custom_attribute2.stderr
index 08878e17204..fdc26a6c0e3 100644
--- a/src/test/ui/feature-gate-custom_attribute2.stderr
+++ b/src/test/ui/feature-gate-custom_attribute2.stderr
@@ -136,3 +136,4 @@ error[E0658]: The attribute `lt_hof` is currently unknown to the compiler and ma
 
 error: aborting due to 17 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-custom_derive.stderr b/src/test/ui/feature-gate-custom_derive.stderr
index 86066285a55..20168ba0e5a 100644
--- a/src/test/ui/feature-gate-custom_derive.stderr
+++ b/src/test/ui/feature-gate-custom_derive.stderr
@@ -8,3 +8,4 @@ error[E0658]: attributes of the form `#[derive_*]` are reserved for the compiler
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-decl_macro.stderr b/src/test/ui/feature-gate-decl_macro.stderr
index c7144f09bd6..37fbd9fa270 100644
--- a/src/test/ui/feature-gate-decl_macro.stderr
+++ b/src/test/ui/feature-gate-decl_macro.stderr
@@ -8,3 +8,4 @@ error[E0658]: `macro` is experimental (see issue #39412)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-doc_cfg.stderr b/src/test/ui/feature-gate-doc_cfg.stderr
index e009e0bc3c4..df9da6b7a2c 100644
--- a/src/test/ui/feature-gate-doc_cfg.stderr
+++ b/src/test/ui/feature-gate-doc_cfg.stderr
@@ -8,3 +8,4 @@ error[E0658]: #[doc(cfg(...))] is experimental (see issue #43781)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-doc_masked.stderr b/src/test/ui/feature-gate-doc_masked.stderr
index ee2d384e998..1aef2aea33a 100644
--- a/src/test/ui/feature-gate-doc_masked.stderr
+++ b/src/test/ui/feature-gate-doc_masked.stderr
@@ -8,3 +8,4 @@ error[E0658]: #[doc(masked)] is experimental (see issue #44027)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-doc_spotlight.stderr b/src/test/ui/feature-gate-doc_spotlight.stderr
index 36d854892be..7a23eeee44c 100644
--- a/src/test/ui/feature-gate-doc_spotlight.stderr
+++ b/src/test/ui/feature-gate-doc_spotlight.stderr
@@ -8,3 +8,4 @@ error[E0658]: #[doc(spotlight)] is experimental (see issue #45040)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-dotdoteq_in_patterns.stderr b/src/test/ui/feature-gate-dotdoteq_in_patterns.stderr
index 2d26c6ae8eb..2796686fe41 100644
--- a/src/test/ui/feature-gate-dotdoteq_in_patterns.stderr
+++ b/src/test/ui/feature-gate-dotdoteq_in_patterns.stderr
@@ -8,3 +8,4 @@ error[E0658]: `..=` syntax in patterns is experimental (see issue #28237)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-dropck-ugeh.stderr b/src/test/ui/feature-gate-dropck-ugeh.stderr
index cdeca7026b0..d6af01c1a9b 100644
--- a/src/test/ui/feature-gate-dropck-ugeh.stderr
+++ b/src/test/ui/feature-gate-dropck-ugeh.stderr
@@ -8,3 +8,4 @@ error[E0658]: unsafe_destructor_blind_to_params has been replaced by may_dangle
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-dyn-trait.stderr b/src/test/ui/feature-gate-dyn-trait.stderr
index d6ba4b8ad66..ad744c0257c 100644
--- a/src/test/ui/feature-gate-dyn-trait.stderr
+++ b/src/test/ui/feature-gate-dyn-trait.stderr
@@ -8,3 +8,4 @@ error[E0658]: `dyn Trait` syntax is unstable (see issue #44662)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-exclusive-range-pattern.stderr b/src/test/ui/feature-gate-exclusive-range-pattern.stderr
index 3185281ce4b..e11791dcdf0 100644
--- a/src/test/ui/feature-gate-exclusive-range-pattern.stderr
+++ b/src/test/ui/feature-gate-exclusive-range-pattern.stderr
@@ -8,3 +8,4 @@ error[E0658]: exclusive range pattern syntax is experimental (see issue #37854)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-extern_absolute_paths.stderr b/src/test/ui/feature-gate-extern_absolute_paths.stderr
index 111cd06cb3c..5e01782f2d4 100644
--- a/src/test/ui/feature-gate-extern_absolute_paths.stderr
+++ b/src/test/ui/feature-gate-extern_absolute_paths.stderr
@@ -12,3 +12,5 @@ error[E0433]: failed to resolve. Maybe a missing `extern crate core;`?
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0432, E0433
+If you want more information on an error, try using "rustc --explain E0432"
diff --git a/src/test/ui/feature-gate-extern_in_paths.stderr b/src/test/ui/feature-gate-extern_in_paths.stderr
index 022e53b6be0..82228e40f0b 100644
--- a/src/test/ui/feature-gate-extern_in_paths.stderr
+++ b/src/test/ui/feature-gate-extern_in_paths.stderr
@@ -8,3 +8,4 @@ error[E0658]: `extern` in paths is experimental (see issue #44660)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-extern_types.stderr b/src/test/ui/feature-gate-extern_types.stderr
index 71caa37963f..c826ad637c4 100644
--- a/src/test/ui/feature-gate-extern_types.stderr
+++ b/src/test/ui/feature-gate-extern_types.stderr
@@ -8,3 +8,4 @@ error[E0658]: extern types are experimental (see issue #43467)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-external_doc.stderr b/src/test/ui/feature-gate-external_doc.stderr
index db6c99bceed..43d68c85b2e 100644
--- a/src/test/ui/feature-gate-external_doc.stderr
+++ b/src/test/ui/feature-gate-external_doc.stderr
@@ -8,3 +8,4 @@ error[E0658]: #[doc(include = "...")] is experimental (see issue #44732)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-fundamental.stderr b/src/test/ui/feature-gate-fundamental.stderr
index 28d8a80e602..84a196e7178 100644
--- a/src/test/ui/feature-gate-fundamental.stderr
+++ b/src/test/ui/feature-gate-fundamental.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[fundamental]` attribute is an experimental feature (see iss
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-generators.stderr b/src/test/ui/feature-gate-generators.stderr
index f559227f717..7991ff18662 100644
--- a/src/test/ui/feature-gate-generators.stderr
+++ b/src/test/ui/feature-gate-generators.stderr
@@ -8,3 +8,4 @@ error[E0658]: yield syntax is experimental
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-generic_associated_types.stderr b/src/test/ui/feature-gate-generic_associated_types.stderr
index c047914fb3b..9d5d05d9aa3 100644
--- a/src/test/ui/feature-gate-generic_associated_types.stderr
+++ b/src/test/ui/feature-gate-generic_associated_types.stderr
@@ -32,3 +32,4 @@ error[E0658]: generic associated types are unstable (see issue #44265)
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-generic_param_attrs.stderr b/src/test/ui/feature-gate-generic_param_attrs.stderr
index a18d104cc2b..561037217d7 100644
--- a/src/test/ui/feature-gate-generic_param_attrs.stderr
+++ b/src/test/ui/feature-gate-generic_param_attrs.stderr
@@ -136,3 +136,4 @@ error[E0658]: attributes on lifetime bindings are experimental (see issue #34761
 
 error: aborting due to 17 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-global_allocator.stderr b/src/test/ui/feature-gate-global_allocator.stderr
index 8d82f6ee9e3..9e0c1577a92 100644
--- a/src/test/ui/feature-gate-global_allocator.stderr
+++ b/src/test/ui/feature-gate-global_allocator.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[global_allocator]` attribute is an experimental feature
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-global_asm.stderr b/src/test/ui/feature-gate-global_asm.stderr
index ca946579f5d..72a0729a2eb 100644
--- a/src/test/ui/feature-gate-global_asm.stderr
+++ b/src/test/ui/feature-gate-global_asm.stderr
@@ -8,3 +8,4 @@ error[E0658]: `global_asm!` is not stable enough for use and is subject to chang
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-i128_type.stderr b/src/test/ui/feature-gate-i128_type.stderr
index 06fdeadbbf6..c87852f6352 100644
--- a/src/test/ui/feature-gate-i128_type.stderr
+++ b/src/test/ui/feature-gate-i128_type.stderr
@@ -16,3 +16,4 @@ error[E0658]: 128-bit integers are not stable (see issue #35118)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-i128_type2.stderr b/src/test/ui/feature-gate-i128_type2.stderr
index ee81a269214..76f50579f28 100644
--- a/src/test/ui/feature-gate-i128_type2.stderr
+++ b/src/test/ui/feature-gate-i128_type2.stderr
@@ -44,3 +44,5 @@ error[E0658]: repr with 128-bit type is unstable (see issue #35118)
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0601, E0658
+If you want more information on an error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate-if_while_or_patterns.stderr b/src/test/ui/feature-gate-if_while_or_patterns.stderr
index c906fa5a2f4..d9ebdcee0e9 100644
--- a/src/test/ui/feature-gate-if_while_or_patterns.stderr
+++ b/src/test/ui/feature-gate-if_while_or_patterns.stderr
@@ -20,3 +20,4 @@ error[E0658]: multiple patterns in `if let` and `while let` are unstable (see is
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-in_band_lifetimes.stderr b/src/test/ui/feature-gate-in_band_lifetimes.stderr
index 3b03ef2dd33..d39d568741e 100644
--- a/src/test/ui/feature-gate-in_band_lifetimes.stderr
+++ b/src/test/ui/feature-gate-in_band_lifetimes.stderr
@@ -102,3 +102,4 @@ error[E0261]: use of undeclared lifetime name `'b`
 
 error: aborting due to 17 previous errors
 
+If you want more information on this error, try using "rustc --explain E0261"
diff --git a/src/test/ui/feature-gate-intrinsics.stderr b/src/test/ui/feature-gate-intrinsics.stderr
index 918c749504a..16a2099955c 100644
--- a/src/test/ui/feature-gate-intrinsics.stderr
+++ b/src/test/ui/feature-gate-intrinsics.stderr
@@ -19,3 +19,4 @@ error[E0658]: intrinsics are subject to change
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-lang-items.stderr b/src/test/ui/feature-gate-lang-items.stderr
index 28e3dab8fa7..31c1c46734c 100644
--- a/src/test/ui/feature-gate-lang-items.stderr
+++ b/src/test/ui/feature-gate-lang-items.stderr
@@ -8,3 +8,4 @@ error[E0658]: language items are subject to change
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-link_args.stderr b/src/test/ui/feature-gate-link_args.stderr
index 78070d52f1f..b098a4377fe 100644
--- a/src/test/ui/feature-gate-link_args.stderr
+++ b/src/test/ui/feature-gate-link_args.stderr
@@ -24,3 +24,4 @@ error[E0658]: the `link_args` attribute is experimental and not portable across
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-link_cfg.stderr b/src/test/ui/feature-gate-link_cfg.stderr
index 8aada72fb0c..796c0a0d283 100644
--- a/src/test/ui/feature-gate-link_cfg.stderr
+++ b/src/test/ui/feature-gate-link_cfg.stderr
@@ -8,3 +8,4 @@ error[E0658]: is feature gated (see issue #37406)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-link_llvm_intrinsics.stderr b/src/test/ui/feature-gate-link_llvm_intrinsics.stderr
index 136658f23fd..28a57bcdfef 100644
--- a/src/test/ui/feature-gate-link_llvm_intrinsics.stderr
+++ b/src/test/ui/feature-gate-link_llvm_intrinsics.stderr
@@ -8,3 +8,4 @@ error[E0658]: linking to LLVM intrinsics is experimental (see issue #29602)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-linkage.stderr b/src/test/ui/feature-gate-linkage.stderr
index 54764b1920c..008ccecc4fd 100644
--- a/src/test/ui/feature-gate-linkage.stderr
+++ b/src/test/ui/feature-gate-linkage.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `linkage` attribute is experimental and not portable across pl
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-linker-flavor.stderr b/src/test/ui/feature-gate-linker-flavor.stderr
index e58693d35c2..dd773465ceb 100644
--- a/src/test/ui/feature-gate-linker-flavor.stderr
+++ b/src/test/ui/feature-gate-linker-flavor.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[used]` attribute is an experimental feature (see issue #402
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-log_syntax.stderr b/src/test/ui/feature-gate-log_syntax.stderr
index 363b1753f4a..d0c8f601b27 100644
--- a/src/test/ui/feature-gate-log_syntax.stderr
+++ b/src/test/ui/feature-gate-log_syntax.stderr
@@ -8,3 +8,4 @@ error[E0658]: `log_syntax!` is not stable enough for use and is subject to chang
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-log_syntax2.stderr b/src/test/ui/feature-gate-log_syntax2.stderr
index f47a5076e79..652f32448e2 100644
--- a/src/test/ui/feature-gate-log_syntax2.stderr
+++ b/src/test/ui/feature-gate-log_syntax2.stderr
@@ -8,3 +8,4 @@ error[E0658]: `log_syntax!` is not stable enough for use and is subject to chang
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-macro-lifetime-matcher.stderr b/src/test/ui/feature-gate-macro-lifetime-matcher.stderr
index 553a7d3d131..4693110d471 100644
--- a/src/test/ui/feature-gate-macro-lifetime-matcher.stderr
+++ b/src/test/ui/feature-gate-macro-lifetime-matcher.stderr
@@ -8,3 +8,4 @@ error[E0658]: :lifetime fragment specifier is experimental and subject to change
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-macro-vis-matcher.stderr b/src/test/ui/feature-gate-macro-vis-matcher.stderr
index ee1844c0922..c8b6d8efc2d 100644
--- a/src/test/ui/feature-gate-macro-vis-matcher.stderr
+++ b/src/test/ui/feature-gate-macro-vis-matcher.stderr
@@ -8,3 +8,4 @@ error[E0658]: :vis fragment specifier is experimental and subject to change (see
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-macro_at_most_once_rep.stderr b/src/test/ui/feature-gate-macro_at_most_once_rep.stderr
index 02dbab07bde..0a4d68174ad 100644
--- a/src/test/ui/feature-gate-macro_at_most_once_rep.stderr
+++ b/src/test/ui/feature-gate-macro_at_most_once_rep.stderr
@@ -8,3 +8,4 @@ error[E0658]: Using the `?` macro Kleene operator for "at most one" repetition i
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-main.stderr b/src/test/ui/feature-gate-main.stderr
index 56e9c8b37e3..e3810f4adeb 100644
--- a/src/test/ui/feature-gate-main.stderr
+++ b/src/test/ui/feature-gate-main.stderr
@@ -8,3 +8,4 @@ error[E0658]: declaration of a nonstandard #[main] function may change over time
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-match_default_bindings.stderr b/src/test/ui/feature-gate-match_default_bindings.stderr
index 1bedfb7f8be..bf7e061eb2c 100644
--- a/src/test/ui/feature-gate-match_default_bindings.stderr
+++ b/src/test/ui/feature-gate-match_default_bindings.stderr
@@ -8,3 +8,4 @@ error[E0658]: non-reference pattern used to match a reference (see issue #42640)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-may-dangle.stderr b/src/test/ui/feature-gate-may-dangle.stderr
index a3a3f7bd174..08dcc5ccd26 100644
--- a/src/test/ui/feature-gate-may-dangle.stderr
+++ b/src/test/ui/feature-gate-may-dangle.stderr
@@ -8,3 +8,4 @@ error[E0658]: may_dangle has unstable semantics and may be removed in the future
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-naked_functions.stderr b/src/test/ui/feature-gate-naked_functions.stderr
index 5f72234e5df..6f700a8216b 100644
--- a/src/test/ui/feature-gate-naked_functions.stderr
+++ b/src/test/ui/feature-gate-naked_functions.stderr
@@ -16,3 +16,4 @@ error[E0658]: the `#[naked]` attribute is an experimental feature (see issue #32
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-needs-allocator.stderr b/src/test/ui/feature-gate-needs-allocator.stderr
index 11b8c31e6df..3cbd4d9053b 100644
--- a/src/test/ui/feature-gate-needs-allocator.stderr
+++ b/src/test/ui/feature-gate-needs-allocator.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[needs_allocator]` attribute is an experimental feature
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-negate-unsigned.stderr b/src/test/ui/feature-gate-negate-unsigned.stderr
index d4311594517..5f1d5abcf34 100644
--- a/src/test/ui/feature-gate-negate-unsigned.stderr
+++ b/src/test/ui/feature-gate-negate-unsigned.stderr
@@ -12,3 +12,4 @@ error[E0600]: cannot apply unary operator `-` to type `u8`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0600"
diff --git a/src/test/ui/feature-gate-never_type.stderr b/src/test/ui/feature-gate-never_type.stderr
index 2fd04f51e7e..d38ac8e04fa 100644
--- a/src/test/ui/feature-gate-never_type.stderr
+++ b/src/test/ui/feature-gate-never_type.stderr
@@ -40,3 +40,4 @@ error[E0658]: The `!` type is experimental (see issue #35121)
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-nll.stderr b/src/test/ui/feature-gate-nll.stderr
index 4135462305a..129af48d6c7 100644
--- a/src/test/ui/feature-gate-nll.stderr
+++ b/src/test/ui/feature-gate-nll.stderr
@@ -8,3 +8,4 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/feature-gate-no-debug.stderr b/src/test/ui/feature-gate-no-debug.stderr
index c7af8cf6aab..358e8b10188 100644
--- a/src/test/ui/feature-gate-no-debug.stderr
+++ b/src/test/ui/feature-gate-no-debug.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[no_debug]` attribute was an experimental feature that has b
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-no_core.stderr b/src/test/ui/feature-gate-no_core.stderr
index 7fc89852002..5183856f6b9 100644
--- a/src/test/ui/feature-gate-no_core.stderr
+++ b/src/test/ui/feature-gate-no_core.stderr
@@ -8,3 +8,4 @@ error[E0658]: no_core is experimental (see issue #29639)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-non_ascii_idents.stderr b/src/test/ui/feature-gate-non_ascii_idents.stderr
index deb707752b0..e1b2e8abc44 100644
--- a/src/test/ui/feature-gate-non_ascii_idents.stderr
+++ b/src/test/ui/feature-gate-non_ascii_idents.stderr
@@ -110,3 +110,4 @@ error[E0658]: non-ascii idents are not fully supported. (see issue #28979)
 
 error: aborting due to 13 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-non_exhaustive.stderr b/src/test/ui/feature-gate-non_exhaustive.stderr
index 320f40e31b8..307c79dde04 100644
--- a/src/test/ui/feature-gate-non_exhaustive.stderr
+++ b/src/test/ui/feature-gate-non_exhaustive.stderr
@@ -8,3 +8,4 @@ error[E0658]: non exhaustive is an experimental feature (see issue #44109)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-omit-gdb-pretty-printer-section.stderr b/src/test/ui/feature-gate-omit-gdb-pretty-printer-section.stderr
index 4ceb697d0df..137369fb79a 100644
--- a/src/test/ui/feature-gate-omit-gdb-pretty-printer-section.stderr
+++ b/src/test/ui/feature-gate-omit-gdb-pretty-printer-section.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[omit_gdb_pretty_printer_section]` attribute is just used fo
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-on-unimplemented.stderr b/src/test/ui/feature-gate-on-unimplemented.stderr
index b1658c3be16..5924e80dcef 100644
--- a/src/test/ui/feature-gate-on-unimplemented.stderr
+++ b/src/test/ui/feature-gate-on-unimplemented.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[rustc_on_unimplemented]` attribute is an experimental featu
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-optin-builtin-traits.stderr b/src/test/ui/feature-gate-optin-builtin-traits.stderr
index beb734a8ef8..3bc15decae3 100644
--- a/src/test/ui/feature-gate-optin-builtin-traits.stderr
+++ b/src/test/ui/feature-gate-optin-builtin-traits.stderr
@@ -16,3 +16,4 @@ error[E0658]: negative trait bounds are not yet fully implemented; use marker ty
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-overlapping_marker_traits.stderr b/src/test/ui/feature-gate-overlapping_marker_traits.stderr
index c1725a62ada..cd66dd812e2 100644
--- a/src/test/ui/feature-gate-overlapping_marker_traits.stderr
+++ b/src/test/ui/feature-gate-overlapping_marker_traits.stderr
@@ -8,3 +8,4 @@ error[E0119]: conflicting implementations of trait `MyMarker`:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/feature-gate-placement-expr.stderr b/src/test/ui/feature-gate-placement-expr.stderr
index c588cabe239..20cdf786eca 100644
--- a/src/test/ui/feature-gate-placement-expr.stderr
+++ b/src/test/ui/feature-gate-placement-expr.stderr
@@ -8,3 +8,4 @@ error[E0658]: placement-in expression syntax is experimental and subject to chan
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-plugin.stderr b/src/test/ui/feature-gate-plugin.stderr
index b54b2d89994..b15d2c36a60 100644
--- a/src/test/ui/feature-gate-plugin.stderr
+++ b/src/test/ui/feature-gate-plugin.stderr
@@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-plugin_registrar.stderr b/src/test/ui/feature-gate-plugin_registrar.stderr
index fb5bd9d1afe..c612d1d90b4 100644
--- a/src/test/ui/feature-gate-plugin_registrar.stderr
+++ b/src/test/ui/feature-gate-plugin_registrar.stderr
@@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-prelude_import.stderr b/src/test/ui/feature-gate-prelude_import.stderr
index 5487ae21f3b..e8845e87b5e 100644
--- a/src/test/ui/feature-gate-prelude_import.stderr
+++ b/src/test/ui/feature-gate-prelude_import.stderr
@@ -8,3 +8,4 @@ error[E0658]: `#[prelude_import]` is for use by rustc only
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-profiler-runtime.stderr b/src/test/ui/feature-gate-profiler-runtime.stderr
index f2893cbb97d..8998d742e03 100644
--- a/src/test/ui/feature-gate-profiler-runtime.stderr
+++ b/src/test/ui/feature-gate-profiler-runtime.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[profiler_runtime]` attribute is used to identify the `profi
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-repr-simd.stderr b/src/test/ui/feature-gate-repr-simd.stderr
index e430a04a3e8..5363b3874f8 100644
--- a/src/test/ui/feature-gate-repr-simd.stderr
+++ b/src/test/ui/feature-gate-repr-simd.stderr
@@ -8,3 +8,4 @@ error[E0658]: SIMD types are experimental and possibly buggy (see issue #27731)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-repr128.stderr b/src/test/ui/feature-gate-repr128.stderr
index 982ebb01016..20720a786d3 100644
--- a/src/test/ui/feature-gate-repr128.stderr
+++ b/src/test/ui/feature-gate-repr128.stderr
@@ -10,3 +10,4 @@ error[E0658]: repr with 128-bit type is unstable (see issue #35118)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-repr_transparent.stderr b/src/test/ui/feature-gate-repr_transparent.stderr
index d1292e95491..29c6b3cf017 100644
--- a/src/test/ui/feature-gate-repr_transparent.stderr
+++ b/src/test/ui/feature-gate-repr_transparent.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[repr(transparent)]` attribute is experimental (see issue #4
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-rustc-attrs.stderr b/src/test/ui/feature-gate-rustc-attrs.stderr
index f47588c3a7d..9c7323ea45c 100644
--- a/src/test/ui/feature-gate-rustc-attrs.stderr
+++ b/src/test/ui/feature-gate-rustc-attrs.stderr
@@ -24,3 +24,4 @@ error[E0658]: unless otherwise specified, attributes with the prefix `rustc_` ar
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-rustc_const_unstable.stderr b/src/test/ui/feature-gate-rustc_const_unstable.stderr
index 922898b7d36..781f621dfdb 100644
--- a/src/test/ui/feature-gate-rustc_const_unstable.stderr
+++ b/src/test/ui/feature-gate-rustc_const_unstable.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[rustc_const_unstable]` attribute is an internal feature
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-sanitizer-runtime.stderr b/src/test/ui/feature-gate-sanitizer-runtime.stderr
index 6d77161864f..eadda45a184 100644
--- a/src/test/ui/feature-gate-sanitizer-runtime.stderr
+++ b/src/test/ui/feature-gate-sanitizer-runtime.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[sanitizer_runtime]` attribute is used to identify crates th
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-simd.stderr b/src/test/ui/feature-gate-simd.stderr
index 447706ab858..c923ae6e9a9 100644
--- a/src/test/ui/feature-gate-simd.stderr
+++ b/src/test/ui/feature-gate-simd.stderr
@@ -8,3 +8,4 @@ error[E0658]: SIMD types are experimental and possibly buggy (see issue #27731)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-slice-patterns.stderr b/src/test/ui/feature-gate-slice-patterns.stderr
index 7a2e67c8982..a7c275fe793 100644
--- a/src/test/ui/feature-gate-slice-patterns.stderr
+++ b/src/test/ui/feature-gate-slice-patterns.stderr
@@ -8,3 +8,4 @@ error[E0658]: slice pattern syntax is experimental (see issue #23121)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-start.stderr b/src/test/ui/feature-gate-start.stderr
index 61cbe42d0fb..6e7a6741f5b 100644
--- a/src/test/ui/feature-gate-start.stderr
+++ b/src/test/ui/feature-gate-start.stderr
@@ -8,3 +8,4 @@ error[E0658]: a #[start] function is an experimental feature whose signature may
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-static-nobundle.stderr b/src/test/ui/feature-gate-static-nobundle.stderr
index 9ec4f6480b1..855eacb63ca 100644
--- a/src/test/ui/feature-gate-static-nobundle.stderr
+++ b/src/test/ui/feature-gate-static-nobundle.stderr
@@ -8,3 +8,4 @@ error[E0658]: kind="static-nobundle" is feature gated (see issue #37403)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-stmt_expr_attributes.stderr b/src/test/ui/feature-gate-stmt_expr_attributes.stderr
index 4d2e2f671c5..992772c9116 100644
--- a/src/test/ui/feature-gate-stmt_expr_attributes.stderr
+++ b/src/test/ui/feature-gate-stmt_expr_attributes.stderr
@@ -8,3 +8,4 @@ error[E0658]: attributes on non-item statements and expressions are experimental
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-target_feature.stderr b/src/test/ui/feature-gate-target_feature.stderr
index b6ad1b65691..064c9f7e247 100644
--- a/src/test/ui/feature-gate-target_feature.stderr
+++ b/src/test/ui/feature-gate-target_feature.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[target_feature]` attribute is an experimental feature
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-thread_local.stderr b/src/test/ui/feature-gate-thread_local.stderr
index f7b05d5cf25..1846ebbb106 100644
--- a/src/test/ui/feature-gate-thread_local.stderr
+++ b/src/test/ui/feature-gate-thread_local.stderr
@@ -8,3 +8,4 @@ error[E0658]: `#[thread_local]` is an experimental feature, and does not current
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-trace_macros.stderr b/src/test/ui/feature-gate-trace_macros.stderr
index eae3baa7e4d..2a126dde0bc 100644
--- a/src/test/ui/feature-gate-trace_macros.stderr
+++ b/src/test/ui/feature-gate-trace_macros.stderr
@@ -8,3 +8,4 @@ error[E0658]: `trace_macros` is not stable enough for use and is subject to chan
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-type_ascription.stderr b/src/test/ui/feature-gate-type_ascription.stderr
index fa6ef84a7f5..95da92acd85 100644
--- a/src/test/ui/feature-gate-type_ascription.stderr
+++ b/src/test/ui/feature-gate-type_ascription.stderr
@@ -8,3 +8,4 @@ error[E0658]: type ascription is experimental (see issue #23416)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unboxed-closures-manual-impls.stderr b/src/test/ui/feature-gate-unboxed-closures-manual-impls.stderr
index ae14054b6e3..661be5b21eb 100644
--- a/src/test/ui/feature-gate-unboxed-closures-manual-impls.stderr
+++ b/src/test/ui/feature-gate-unboxed-closures-manual-impls.stderr
@@ -32,3 +32,4 @@ error[E0658]: rust-call ABI is subject to change (see issue #29625)
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unboxed-closures-method-calls.stderr b/src/test/ui/feature-gate-unboxed-closures-method-calls.stderr
index a27b00aaac0..808b21f50fc 100644
--- a/src/test/ui/feature-gate-unboxed-closures-method-calls.stderr
+++ b/src/test/ui/feature-gate-unboxed-closures-method-calls.stderr
@@ -24,3 +24,4 @@ error[E0658]: use of unstable library feature 'fn_traits' (see issue #29625)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unboxed-closures-ufcs-calls.stderr b/src/test/ui/feature-gate-unboxed-closures-ufcs-calls.stderr
index 3d0dd15b07f..47441afbea7 100644
--- a/src/test/ui/feature-gate-unboxed-closures-ufcs-calls.stderr
+++ b/src/test/ui/feature-gate-unboxed-closures-ufcs-calls.stderr
@@ -24,3 +24,4 @@ error[E0658]: use of unstable library feature 'fn_traits' (see issue #29625)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unboxed-closures.stderr b/src/test/ui/feature-gate-unboxed-closures.stderr
index ca8a5924946..18baf0450c3 100644
--- a/src/test/ui/feature-gate-unboxed-closures.stderr
+++ b/src/test/ui/feature-gate-unboxed-closures.stderr
@@ -10,3 +10,4 @@ error[E0658]: rust-call ABI is subject to change (see issue #29625)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-underscore-lifetimes.stderr b/src/test/ui/feature-gate-underscore-lifetimes.stderr
index 07c5e1ad640..6e5b0573f6c 100644
--- a/src/test/ui/feature-gate-underscore-lifetimes.stderr
+++ b/src/test/ui/feature-gate-underscore-lifetimes.stderr
@@ -8,3 +8,4 @@ error[E0658]: underscore lifetimes are unstable (see issue #44524)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-universal.stderr b/src/test/ui/feature-gate-universal.stderr
index 978ce5982ba..75820283cc7 100644
--- a/src/test/ui/feature-gate-universal.stderr
+++ b/src/test/ui/feature-gate-universal.stderr
@@ -8,3 +8,4 @@ error[E0658]: `impl Trait` in argument position is experimental (see issue #3451
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unsized_tuple_coercion.stderr b/src/test/ui/feature-gate-unsized_tuple_coercion.stderr
index 4714df9e96c..51d68132ac4 100644
--- a/src/test/ui/feature-gate-unsized_tuple_coercion.stderr
+++ b/src/test/ui/feature-gate-unsized_tuple_coercion.stderr
@@ -8,3 +8,4 @@ error[E0658]: Unsized tuple coercion is not stable enough for use and is subject
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-untagged_unions.stderr b/src/test/ui/feature-gate-untagged_unions.stderr
index 14b66cb5c81..a1f8dcbb8bf 100644
--- a/src/test/ui/feature-gate-untagged_unions.stderr
+++ b/src/test/ui/feature-gate-untagged_unions.stderr
@@ -30,3 +30,4 @@ error[E0658]: unions with `Drop` implementations are unstable (see issue #32836)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-unwind-attributes.stderr b/src/test/ui/feature-gate-unwind-attributes.stderr
index d9b555e2634..0e122ea5d56 100644
--- a/src/test/ui/feature-gate-unwind-attributes.stderr
+++ b/src/test/ui/feature-gate-unwind-attributes.stderr
@@ -8,3 +8,4 @@ error[E0658]: #[unwind] is experimental
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-used.stderr b/src/test/ui/feature-gate-used.stderr
index 6d5ab1fd2c5..d263fe5ffbe 100644
--- a/src/test/ui/feature-gate-used.stderr
+++ b/src/test/ui/feature-gate-used.stderr
@@ -8,3 +8,4 @@ error[E0658]: the `#[used]` attribute is an experimental feature (see issue #402
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate-wasm_import_memory.stderr b/src/test/ui/feature-gate-wasm_import_memory.stderr
index 10190ef93f0..04350a145fd 100644
--- a/src/test/ui/feature-gate-wasm_import_memory.stderr
+++ b/src/test/ui/feature-gate-wasm_import_memory.stderr
@@ -8,3 +8,4 @@ error[E0658]: wasm_import_memory attribute is currently unstable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-bench.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-bench.stderr
index f7d5473f443..1d33bc55611 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-bench.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-bench.stderr
@@ -2,3 +2,4 @@ error[E0601]: main function not found
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-inline.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-inline.stderr
index 444c4176994..8af406aef6d 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-inline.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-inline.stderr
@@ -41,3 +41,5 @@ error[E0518]: attribute should be applied to function
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0518, E0601
+If you want more information on an error, try using "rustc --explain E0518"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-macro_escape.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-macro_escape.stderr
index 60a9382bdb8..c0d8aa5c31c 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-macro_escape.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-macro_escape.stderr
@@ -10,3 +10,4 @@ error[E0601]: main function not found
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-proc_macro_derive.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-proc_macro_derive.stderr
index a76f0219f7a..4e844ba5889 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-proc_macro_derive.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-proc_macro_derive.stderr
@@ -38,3 +38,4 @@ error[E0601]: main function not found
 
 error: aborting due to 7 previous errors
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.stderr
index 5de3204f931..a603836daa0 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.stderr
@@ -44,3 +44,4 @@ error: stability attributes may not be used outside of the standard library
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-stable.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-stable.stderr
index eace1dc413a..ebf7100c35b 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-stable.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-stable.stderr
@@ -44,3 +44,4 @@ error: stability attributes may not be used outside of the standard library
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-test.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-test.stderr
index f7d5473f443..1d33bc55611 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-test.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-test.stderr
@@ -2,3 +2,4 @@ error[E0601]: main function not found
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/feature-gate/issue-43106-gating-of-unstable.stderr b/src/test/ui/feature-gate/issue-43106-gating-of-unstable.stderr
index 59068279fde..c91b262c7ed 100644
--- a/src/test/ui/feature-gate/issue-43106-gating-of-unstable.stderr
+++ b/src/test/ui/feature-gate/issue-43106-gating-of-unstable.stderr
@@ -44,3 +44,4 @@ error: stability attributes may not be used outside of the standard library
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/fmt/send-sync.stderr b/src/test/ui/fmt/send-sync.stderr
index 4ec5c9ebd27..7e2b6a43dd4 100644
--- a/src/test/ui/fmt/send-sync.stderr
+++ b/src/test/ui/fmt/send-sync.stderr
@@ -40,3 +40,4 @@ note: required by `sync`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/generator/auto-trait-regions.stderr b/src/test/ui/generator/auto-trait-regions.stderr
index 37241e61510..2fc359946fa 100644
--- a/src/test/ui/generator/auto-trait-regions.stderr
+++ b/src/test/ui/generator/auto-trait-regions.stderr
@@ -33,3 +33,5 @@ note: required by `assert_foo`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0277, E0279
+If you want more information on an error, try using "rustc --explain E0277"
diff --git a/src/test/ui/generator/borrowing.stderr b/src/test/ui/generator/borrowing.stderr
index cb84eaedb33..1d58bca15fa 100644
--- a/src/test/ui/generator/borrowing.stderr
+++ b/src/test/ui/generator/borrowing.stderr
@@ -27,3 +27,4 @@ error[E0597]: `a` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/generator/dropck.stderr b/src/test/ui/generator/dropck.stderr
index deaf00fff07..01ef5753424 100644
--- a/src/test/ui/generator/dropck.stderr
+++ b/src/test/ui/generator/dropck.stderr
@@ -14,3 +14,4 @@ error[E0597]: `ref_` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/generator/generator-with-nll.stderr b/src/test/ui/generator/generator-with-nll.stderr
index 0f7d2e540d8..ab81501f237 100644
--- a/src/test/ui/generator/generator-with-nll.stderr
+++ b/src/test/ui/generator/generator-with-nll.stderr
@@ -27,3 +27,4 @@ error[E0626]: borrow may still be in use when generator yields (Mir)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0626"
diff --git a/src/test/ui/generator/issue-48048.stderr b/src/test/ui/generator/issue-48048.stderr
index fd1667128ab..04e4397cc5c 100644
--- a/src/test/ui/generator/issue-48048.stderr
+++ b/src/test/ui/generator/issue-48048.stderr
@@ -8,3 +8,4 @@ error[E0626]: borrow may still be in use when generator yields
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0626"
diff --git a/src/test/ui/generator/no-arguments-on-generators.stderr b/src/test/ui/generator/no-arguments-on-generators.stderr
index 4d2e228685a..84a5edf4f22 100644
--- a/src/test/ui/generator/no-arguments-on-generators.stderr
+++ b/src/test/ui/generator/no-arguments-on-generators.stderr
@@ -6,3 +6,4 @@ error[E0628]: generators cannot have explicit arguments
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0628"
diff --git a/src/test/ui/generator/not-send-sync.stderr b/src/test/ui/generator/not-send-sync.stderr
index e65c8f1546e..cd2d16fd662 100644
--- a/src/test/ui/generator/not-send-sync.stderr
+++ b/src/test/ui/generator/not-send-sync.stderr
@@ -30,3 +30,4 @@ note: required by `main::assert_sync`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/generator/pattern-borrow.stderr b/src/test/ui/generator/pattern-borrow.stderr
index 6b39b272d0e..2346714b212 100644
--- a/src/test/ui/generator/pattern-borrow.stderr
+++ b/src/test/ui/generator/pattern-borrow.stderr
@@ -8,3 +8,4 @@ error[E0626]: borrow may still be in use when generator yields
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0626"
diff --git a/src/test/ui/generator/ref-escapes-but-not-over-yield.stderr b/src/test/ui/generator/ref-escapes-but-not-over-yield.stderr
index fbb72884156..b752a4c064c 100644
--- a/src/test/ui/generator/ref-escapes-but-not-over-yield.stderr
+++ b/src/test/ui/generator/ref-escapes-but-not-over-yield.stderr
@@ -11,3 +11,4 @@ error[E0597]: `b` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/generator/sized-yield.stderr b/src/test/ui/generator/sized-yield.stderr
index 7adb2cc5598..a61adcf4a77 100644
--- a/src/test/ui/generator/sized-yield.stderr
+++ b/src/test/ui/generator/sized-yield.stderr
@@ -20,3 +20,4 @@ error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/generator/unsafe-immovable.stderr b/src/test/ui/generator/unsafe-immovable.stderr
index 06e43bf35e1..87a85c6845f 100644
--- a/src/test/ui/generator/unsafe-immovable.stderr
+++ b/src/test/ui/generator/unsafe-immovable.stderr
@@ -8,3 +8,4 @@ error[E0133]: construction of immovable generator requires unsafe function or bl
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0133"
diff --git a/src/test/ui/generator/yield-in-args.stderr b/src/test/ui/generator/yield-in-args.stderr
index 06561853dee..f69948c9004 100644
--- a/src/test/ui/generator/yield-in-args.stderr
+++ b/src/test/ui/generator/yield-in-args.stderr
@@ -6,3 +6,4 @@ error[E0626]: borrow may still be in use when generator yields
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0626"
diff --git a/src/test/ui/generator/yield-in-const.stderr b/src/test/ui/generator/yield-in-const.stderr
index 8a265c065b9..b7faca23ed3 100644
--- a/src/test/ui/generator/yield-in-const.stderr
+++ b/src/test/ui/generator/yield-in-const.stderr
@@ -8,3 +8,5 @@ error[E0627]: yield statement outside of generator literal
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0601, E0627
+If you want more information on an error, try using "rustc --explain E0601"
diff --git a/src/test/ui/generator/yield-in-function.stderr b/src/test/ui/generator/yield-in-function.stderr
index c6ee3b8e9e7..3aa4130a148 100644
--- a/src/test/ui/generator/yield-in-function.stderr
+++ b/src/test/ui/generator/yield-in-function.stderr
@@ -6,3 +6,4 @@ error[E0627]: yield statement outside of generator literal
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0627"
diff --git a/src/test/ui/generator/yield-in-static.stderr b/src/test/ui/generator/yield-in-static.stderr
index d0575a0e47b..2f3c41f71c3 100644
--- a/src/test/ui/generator/yield-in-static.stderr
+++ b/src/test/ui/generator/yield-in-static.stderr
@@ -8,3 +8,5 @@ error[E0627]: yield statement outside of generator literal
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0601, E0627
+If you want more information on an error, try using "rustc --explain E0601"
diff --git a/src/test/ui/generator/yield-while-iterating.stderr b/src/test/ui/generator/yield-while-iterating.stderr
index ea55e032e47..27a13a6382c 100644
--- a/src/test/ui/generator/yield-while-iterating.stderr
+++ b/src/test/ui/generator/yield-while-iterating.stderr
@@ -22,3 +22,5 @@ error[E0502]: cannot borrow `x` as immutable because it is also borrowed as muta
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0502, E0626
+If you want more information on an error, try using "rustc --explain E0502"
diff --git a/src/test/ui/generator/yield-while-local-borrowed.stderr b/src/test/ui/generator/yield-while-local-borrowed.stderr
index 114fe8ffcab..d28ea1d4368 100644
--- a/src/test/ui/generator/yield-while-local-borrowed.stderr
+++ b/src/test/ui/generator/yield-while-local-borrowed.stderr
@@ -36,3 +36,4 @@ error[E0626]: borrow may still be in use when generator yields (Mir)
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0626"
diff --git a/src/test/ui/generator/yield-while-ref-reborrowed.stderr b/src/test/ui/generator/yield-while-ref-reborrowed.stderr
index 7269f729737..d2aa84f3c09 100644
--- a/src/test/ui/generator/yield-while-ref-reborrowed.stderr
+++ b/src/test/ui/generator/yield-while-ref-reborrowed.stderr
@@ -14,3 +14,4 @@ error[E0501]: cannot borrow `x` as immutable because previous closure requires u
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0501"
diff --git a/src/test/ui/generic-type-less-params-with-defaults.stderr b/src/test/ui/generic-type-less-params-with-defaults.stderr
index 0351923eff6..6726f40dd06 100644
--- a/src/test/ui/generic-type-less-params-with-defaults.stderr
+++ b/src/test/ui/generic-type-less-params-with-defaults.stderr
@@ -6,3 +6,4 @@ error[E0243]: wrong number of type arguments: expected at least 1, found 0
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0243"
diff --git a/src/test/ui/generic-type-more-params-with-defaults.stderr b/src/test/ui/generic-type-more-params-with-defaults.stderr
index 11ce6b1656d..aa06e82a250 100644
--- a/src/test/ui/generic-type-more-params-with-defaults.stderr
+++ b/src/test/ui/generic-type-more-params-with-defaults.stderr
@@ -6,3 +6,4 @@ error[E0244]: wrong number of type arguments: expected at most 2, found 3
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0244"
diff --git a/src/test/ui/if-let-arm-types.stderr b/src/test/ui/if-let-arm-types.stderr
index fb8e00bfa94..fb1cf205b62 100644
--- a/src/test/ui/if-let-arm-types.stderr
+++ b/src/test/ui/if-let-arm-types.stderr
@@ -23,3 +23,4 @@ note: `if let` arm with an incompatible type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/impl-duplicate-methods.stderr b/src/test/ui/impl-duplicate-methods.stderr
index 73d470cc29e..53bc268e327 100644
--- a/src/test/ui/impl-duplicate-methods.stderr
+++ b/src/test/ui/impl-duplicate-methods.stderr
@@ -8,3 +8,4 @@ error[E0201]: duplicate definitions with name `orange`:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0201"
diff --git a/src/test/ui/impl-trait/auto-trait-leak.stderr b/src/test/ui/impl-trait/auto-trait-leak.stderr
index d6e31ba1e1f..f69840238a7 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.stderr
+++ b/src/test/ui/impl-trait/auto-trait-leak.stderr
@@ -58,3 +58,5 @@ note: ...which then requires processing `cycle1::{{impl-Trait}}`...
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0277, E0391
+If you want more information on an error, try using "rustc --explain E0277"
diff --git a/src/test/ui/impl-trait/equality.stderr b/src/test/ui/impl-trait/equality.stderr
index 8ec81903803..c30b0d7f648 100644
--- a/src/test/ui/impl-trait/equality.stderr
+++ b/src/test/ui/impl-trait/equality.stderr
@@ -53,3 +53,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0277, E0308
+If you want more information on an error, try using "rustc --explain E0277"
diff --git a/src/test/ui/impl-trait/impl-trait-plus-priority.stderr b/src/test/ui/impl-trait/impl-trait-plus-priority.stderr
index 885c3941971..7010ab1e471 100644
--- a/src/test/ui/impl-trait/impl-trait-plus-priority.stderr
+++ b/src/test/ui/impl-trait/impl-trait-plus-priority.stderr
@@ -66,3 +66,4 @@ error[E0178]: expected a path on the left-hand side of `+`, not `&A`
 
 error: aborting due to 11 previous errors
 
+If you want more information on this error, try using "rustc --explain E0178"
diff --git a/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr b/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr
index 29769456849..d5cc1ea8085 100644
--- a/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr
+++ b/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr
@@ -13,3 +13,4 @@ error[E0599]: no method named `foo` found for type `Bar` in the current scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr b/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
index 52d3931011a..8ffbd29eabe 100644
--- a/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
+++ b/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
@@ -15,3 +15,4 @@ error[E0599]: no method named `is_empty` found for type `Foo` in the current sco
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/impl-trait/no-method-suggested-traits.stderr b/src/test/ui/impl-trait/no-method-suggested-traits.stderr
index 882113b8176..f136fd4072c 100644
--- a/src/test/ui/impl-trait/no-method-suggested-traits.stderr
+++ b/src/test/ui/impl-trait/no-method-suggested-traits.stderr
@@ -255,3 +255,4 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
 
 error: aborting due to 24 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/impl-trait/trait_type.stderr b/src/test/ui/impl-trait/trait_type.stderr
index 1417c71ca12..134386825d6 100644
--- a/src/test/ui/impl-trait/trait_type.stderr
+++ b/src/test/ui/impl-trait/trait_type.stderr
@@ -33,3 +33,5 @@ error[E0046]: not all trait items implemented, missing: `fmt`
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0046, E0050, E0053, E0186
+If you want more information on an error, try using "rustc --explain E0046"
diff --git a/src/test/ui/impl-trait/universal-mismatched-type.stderr b/src/test/ui/impl-trait/universal-mismatched-type.stderr
index b4dd6c8446c..688d0b3be44 100644
--- a/src/test/ui/impl-trait/universal-mismatched-type.stderr
+++ b/src/test/ui/impl-trait/universal-mismatched-type.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/impl-trait/universal-two-impl-traits.stderr b/src/test/ui/impl-trait/universal-two-impl-traits.stderr
index 9903e26bbbd..ab41e44cdea 100644
--- a/src/test/ui/impl-trait/universal-two-impl-traits.stderr
+++ b/src/test/ui/impl-trait/universal-two-impl-traits.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/impl-trait/universal_wrong_bounds.stderr b/src/test/ui/impl-trait/universal_wrong_bounds.stderr
index b457e025c29..d3ae05eb4e5 100644
--- a/src/test/ui/impl-trait/universal_wrong_bounds.stderr
+++ b/src/test/ui/impl-trait/universal_wrong_bounds.stderr
@@ -26,3 +26,5 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0405, E0425
+If you want more information on an error, try using "rustc --explain E0405"
diff --git a/src/test/ui/impl-unused-rps-in-assoc-type.stderr b/src/test/ui/impl-unused-rps-in-assoc-type.stderr
index ec261ed63b1..d8e31a750ff 100644
--- a/src/test/ui/impl-unused-rps-in-assoc-type.stderr
+++ b/src/test/ui/impl-unused-rps-in-assoc-type.stderr
@@ -6,3 +6,4 @@ error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait,
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0207"
diff --git a/src/test/ui/impl_trait_projections.stderr b/src/test/ui/impl_trait_projections.stderr
index 08de0eb99a3..a0a24cc9d04 100644
--- a/src/test/ui/impl_trait_projections.stderr
+++ b/src/test/ui/impl_trait_projections.stderr
@@ -32,3 +32,5 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0223, E0667
+If you want more information on an error, try using "rustc --explain E0223"
diff --git a/src/test/ui/imports/duplicate.stderr b/src/test/ui/imports/duplicate.stderr
index 6e5b91a11c9..707f0081cd6 100644
--- a/src/test/ui/imports/duplicate.stderr
+++ b/src/test/ui/imports/duplicate.stderr
@@ -86,3 +86,5 @@ note: `foo` could also refer to the name imported here
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0252, E0659
+If you want more information on an error, try using "rustc --explain E0252"
diff --git a/src/test/ui/imports/macro-paths.stderr b/src/test/ui/imports/macro-paths.stderr
index 32d78666004..02e7e34d32e 100644
--- a/src/test/ui/imports/macro-paths.stderr
+++ b/src/test/ui/imports/macro-paths.stderr
@@ -40,3 +40,5 @@ error[E0601]: main function not found
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0601, E0659
+If you want more information on an error, try using "rustc --explain E0601"
diff --git a/src/test/ui/imports/macros.stderr b/src/test/ui/imports/macros.stderr
index 75294f7bf12..6b917b98062 100644
--- a/src/test/ui/imports/macros.stderr
+++ b/src/test/ui/imports/macros.stderr
@@ -55,3 +55,5 @@ error[E0601]: main function not found
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0601, E0659
+If you want more information on an error, try using "rustc --explain E0601"
diff --git a/src/test/ui/imports/shadow_builtin_macros.stderr b/src/test/ui/imports/shadow_builtin_macros.stderr
index 8f4325fa12c..709a36dab29 100644
--- a/src/test/ui/imports/shadow_builtin_macros.stderr
+++ b/src/test/ui/imports/shadow_builtin_macros.stderr
@@ -57,3 +57,4 @@ note: `n` could also refer to the name imported here
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0659"
diff --git a/src/test/ui/impossible_range.stderr b/src/test/ui/impossible_range.stderr
index e0e26bc4db0..9b3a8e7f6c3 100644
--- a/src/test/ui/impossible_range.stderr
+++ b/src/test/ui/impossible_range.stderr
@@ -16,3 +16,4 @@ error[E0586]: inclusive range with no end
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0586"
diff --git a/src/test/ui/in-band-lifetimes/E0687.stderr b/src/test/ui/in-band-lifetimes/E0687.stderr
index 42714f21685..66451f49f28 100644
--- a/src/test/ui/in-band-lifetimes/E0687.stderr
+++ b/src/test/ui/in-band-lifetimes/E0687.stderr
@@ -24,3 +24,4 @@ error[E0687]: lifetimes used in `fn` or `Fn` syntax must be explicitly declared
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "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 a9913f6b644..0a63092acf7 100644
--- a/src/test/ui/in-band-lifetimes/E0687_where.stderr
+++ b/src/test/ui/in-band-lifetimes/E0687_where.stderr
@@ -12,3 +12,4 @@ error[E0687]: lifetimes used in `fn` or `Fn` syntax must be explicitly declared
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0687"
diff --git a/src/test/ui/in-band-lifetimes/E0688.stderr b/src/test/ui/in-band-lifetimes/E0688.stderr
index c33b088f0fa..0e4e75469a9 100644
--- a/src/test/ui/in-band-lifetimes/E0688.stderr
+++ b/src/test/ui/in-band-lifetimes/E0688.stderr
@@ -24,3 +24,4 @@ error[E0688]: cannot mix in-band and explicit lifetime definitions
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0688"
diff --git a/src/test/ui/in-band-lifetimes/mismatched.stderr b/src/test/ui/in-band-lifetimes/mismatched.stderr
index 0c1231e01de..b81b5f56f14 100644
--- a/src/test/ui/in-band-lifetimes/mismatched.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched.stderr
@@ -16,3 +16,5 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0621, E0623
+If you want more information on an error, try using "rustc --explain E0621"
diff --git a/src/test/ui/in-band-lifetimes/mismatched_trait.stderr b/src/test/ui/in-band-lifetimes/mismatched_trait.stderr
index 58ff1694fb7..8e5a37b03c5 100644
--- a/src/test/ui/in-band-lifetimes/mismatched_trait.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched_trait.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `y`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "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 7aab31eb909..0345e0dd611 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
@@ -20,3 +20,5 @@ note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on th
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0495, E0601
+If you want more information on an error, try using "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 fd6be01da9f..b970afe0bae 100644
--- a/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr
+++ b/src/test/ui/in-band-lifetimes/mismatched_trait_impl.stderr
@@ -22,3 +22,4 @@ note: ...but the lifetime must also be valid for the lifetime 'a as defined on t
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0495"
diff --git a/src/test/ui/in-band-lifetimes/mut_while_borrow.stderr b/src/test/ui/in-band-lifetimes/mut_while_borrow.stderr
index 14f9098c6c2..192eb5d3e8a 100644
--- a/src/test/ui/in-band-lifetimes/mut_while_borrow.stderr
+++ b/src/test/ui/in-band-lifetimes/mut_while_borrow.stderr
@@ -8,3 +8,4 @@ error[E0506]: cannot assign to `p` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/in-band-lifetimes/no_in_band_in_struct.stderr b/src/test/ui/in-band-lifetimes/no_in_band_in_struct.stderr
index a8df6dbca0a..a9cc6845133 100644
--- a/src/test/ui/in-band-lifetimes/no_in_band_in_struct.stderr
+++ b/src/test/ui/in-band-lifetimes/no_in_band_in_struct.stderr
@@ -12,3 +12,4 @@ error[E0261]: use of undeclared lifetime name `'test`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0261"
diff --git a/src/test/ui/in-band-lifetimes/no_introducing_in_band_in_locals.stderr b/src/test/ui/in-band-lifetimes/no_introducing_in_band_in_locals.stderr
index e2340dbba23..265eb32b3cc 100644
--- a/src/test/ui/in-band-lifetimes/no_introducing_in_band_in_locals.stderr
+++ b/src/test/ui/in-band-lifetimes/no_introducing_in_band_in_locals.stderr
@@ -12,3 +12,4 @@ error[E0261]: use of undeclared lifetime name `'test`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0261"
diff --git a/src/test/ui/in-band-lifetimes/shadow.stderr b/src/test/ui/in-band-lifetimes/shadow.stderr
index 49b82fa495a..1aa3e21beba 100644
--- a/src/test/ui/in-band-lifetimes/shadow.stderr
+++ b/src/test/ui/in-band-lifetimes/shadow.stderr
@@ -17,3 +17,4 @@ error[E0496]: lifetime name `'s` shadows a lifetime name that is already in scop
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0496"
diff --git a/src/test/ui/index-help.stderr b/src/test/ui/index-help.stderr
index e1652b6c262..d9ed32f6bb9 100644
--- a/src/test/ui/index-help.stderr
+++ b/src/test/ui/index-help.stderr
@@ -8,3 +8,4 @@ error[E0277]: the trait bound `std::vec::Vec<{integer}>: std::ops::Index<i32>` i
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/interior-mutability/interior-mutability.stderr b/src/test/ui/interior-mutability/interior-mutability.stderr
index f4beb44b82d..78b790be87f 100644
--- a/src/test/ui/interior-mutability/interior-mutability.stderr
+++ b/src/test/ui/interior-mutability/interior-mutability.stderr
@@ -12,3 +12,4 @@ error[E0277]: the trait bound `std::cell::UnsafeCell<i32>: std::panic::RefUnwind
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr b/src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr
index 58df416030c..1fa998bef37 100644
--- a/src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr
+++ b/src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr
@@ -8,3 +8,4 @@ error[E0583]: file not found for module `baz`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0583"
diff --git a/src/test/ui/invalid-path-in-const.stderr b/src/test/ui/invalid-path-in-const.stderr
index be1de60bca5..5dbef279db4 100644
--- a/src/test/ui/invalid-path-in-const.stderr
+++ b/src/test/ui/invalid-path-in-const.stderr
@@ -6,3 +6,4 @@ error[E0599]: no associated item named `DOESNOTEXIST` found for type `u32` in th
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-10969.stderr b/src/test/ui/issue-10969.stderr
index 68127b282ed..24ca8c0c437 100644
--- a/src/test/ui/issue-10969.stderr
+++ b/src/test/ui/issue-10969.stderr
@@ -16,3 +16,4 @@ error[E0618]: expected function, found `i32`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0618"
diff --git a/src/test/ui/issue-11004.stderr b/src/test/ui/issue-11004.stderr
index 9b8c3df7d59..ce243b6963f 100644
--- a/src/test/ui/issue-11004.stderr
+++ b/src/test/ui/issue-11004.stderr
@@ -16,3 +16,4 @@ error[E0609]: no field `y` on type `*mut A`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0609"
diff --git a/src/test/ui/issue-11319.stderr b/src/test/ui/issue-11319.stderr
index 20103d389ff..2ab61bf90db 100644
--- a/src/test/ui/issue-11319.stderr
+++ b/src/test/ui/issue-11319.stderr
@@ -17,3 +17,4 @@ error[E0308]: match arms have incompatible types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-12187-1.stderr b/src/test/ui/issue-12187-1.stderr
index e36c278df6e..9ce8b066b37 100644
--- a/src/test/ui/issue-12187-1.stderr
+++ b/src/test/ui/issue-12187-1.stderr
@@ -9,3 +9,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/issue-12187-2.stderr b/src/test/ui/issue-12187-2.stderr
index b72c23987ec..46add9bec2c 100644
--- a/src/test/ui/issue-12187-2.stderr
+++ b/src/test/ui/issue-12187-2.stderr
@@ -9,3 +9,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/issue-12511.stderr b/src/test/ui/issue-12511.stderr
index aec828a90d1..932fd5a82dd 100644
--- a/src/test/ui/issue-12511.stderr
+++ b/src/test/ui/issue-12511.stderr
@@ -18,3 +18,4 @@ note: ...which then requires computing the supertraits of `t2`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/issue-13058.stderr b/src/test/ui/issue-13058.stderr
index fb8fb058daa..fb73fbcd007 100644
--- a/src/test/ui/issue-13058.stderr
+++ b/src/test/ui/issue-13058.stderr
@@ -21,3 +21,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0308, E0621
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-14092.stderr b/src/test/ui/issue-14092.stderr
index e0b5bdb93d8..b500e706b36 100644
--- a/src/test/ui/issue-14092.stderr
+++ b/src/test/ui/issue-14092.stderr
@@ -6,3 +6,4 @@ error[E0243]: wrong number of type arguments: expected 1, found 0
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0243"
diff --git a/src/test/ui/issue-15260.stderr b/src/test/ui/issue-15260.stderr
index aca2fa5ed04..1d41e207147 100644
--- a/src/test/ui/issue-15260.stderr
+++ b/src/test/ui/issue-15260.stderr
@@ -33,3 +33,4 @@ error[E0025]: field `a` bound multiple times in the pattern
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0025"
diff --git a/src/test/ui/issue-15524.stderr b/src/test/ui/issue-15524.stderr
index 9c77752be20..ccbcda57db1 100644
--- a/src/test/ui/issue-15524.stderr
+++ b/src/test/ui/issue-15524.stderr
@@ -26,3 +26,4 @@ error[E0081]: discriminant value `1isize` already exists
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0081"
diff --git a/src/test/ui/issue-17263.stderr b/src/test/ui/issue-17263.stderr
index a762c0876b5..306c713da44 100644
--- a/src/test/ui/issue-17263.stderr
+++ b/src/test/ui/issue-17263.stderr
@@ -22,3 +22,5 @@ error[E0502]: cannot borrow `foo` (via `foo.b`) as immutable because `foo` is al
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0499, E0502
+If you want more information on an error, try using "rustc --explain E0499"
diff --git a/src/test/ui/issue-17441.stderr b/src/test/ui/issue-17441.stderr
index 593507a5d45..244da658f80 100644
--- a/src/test/ui/issue-17441.stderr
+++ b/src/test/ui/issue-17441.stderr
@@ -44,3 +44,4 @@ help: consider using a box or reference as appropriate
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0620"
diff --git a/src/test/ui/issue-18183.stderr b/src/test/ui/issue-18183.stderr
index 31050802261..cb8a9608075 100644
--- a/src/test/ui/issue-18183.stderr
+++ b/src/test/ui/issue-18183.stderr
@@ -6,3 +6,4 @@ error[E0128]: type parameters with a default cannot use forward declared identif
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0128"
diff --git a/src/test/ui/issue-18819.stderr b/src/test/ui/issue-18819.stderr
index 1cd899925ca..d2f3219b233 100644
--- a/src/test/ui/issue-18819.stderr
+++ b/src/test/ui/issue-18819.stderr
@@ -9,3 +9,4 @@ error[E0061]: this function takes 2 parameters but 1 parameter was supplied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/issue-19498.stderr b/src/test/ui/issue-19498.stderr
index 489abf715de..7c3f0aad4f6 100644
--- a/src/test/ui/issue-19498.stderr
+++ b/src/test/ui/issue-19498.stderr
@@ -44,3 +44,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0255"
diff --git a/src/test/ui/issue-19707.stderr b/src/test/ui/issue-19707.stderr
index b4d4f6f1bbf..42f768139b1 100644
--- a/src/test/ui/issue-19707.stderr
+++ b/src/test/ui/issue-19707.stderr
@@ -16,3 +16,4 @@ error[E0106]: missing lifetime specifier
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/issue-19922.stderr b/src/test/ui/issue-19922.stderr
index 035901abac6..023c12ecce8 100644
--- a/src/test/ui/issue-19922.stderr
+++ b/src/test/ui/issue-19922.stderr
@@ -8,3 +8,4 @@ error[E0559]: variant `Homura::Akemi` has no field named `kaname`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0559"
diff --git a/src/test/ui/issue-20692.stderr b/src/test/ui/issue-20692.stderr
index 2a5ddd1b611..e0dc9560462 100644
--- a/src/test/ui/issue-20692.stderr
+++ b/src/test/ui/issue-20692.stderr
@@ -17,3 +17,4 @@ error[E0038]: the trait `Array` cannot be made into an object
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/issue-21546.stderr b/src/test/ui/issue-21546.stderr
index ec953103a1c..1be006865b0 100644
--- a/src/test/ui/issue-21546.stderr
+++ b/src/test/ui/issue-21546.stderr
@@ -66,3 +66,4 @@ error[E0428]: the name `Corge` is defined multiple times
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0428"
diff --git a/src/test/ui/issue-21600.stderr b/src/test/ui/issue-21600.stderr
index e177e8ede62..fab7d8698ca 100644
--- a/src/test/ui/issue-21600.stderr
+++ b/src/test/ui/issue-21600.stderr
@@ -29,3 +29,4 @@ help: consider changing this closure to take self by mutable reference
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0387"
diff --git a/src/test/ui/issue-21950.stderr b/src/test/ui/issue-21950.stderr
index 123d61a261d..9bf44df608a 100644
--- a/src/test/ui/issue-21950.stderr
+++ b/src/test/ui/issue-21950.stderr
@@ -14,3 +14,5 @@ error[E0191]: the value of the associated type `Output` (from the trait `std::op
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0191, E0393
+If you want more information on an error, try using "rustc --explain E0191"
diff --git a/src/test/ui/issue-22370.stderr b/src/test/ui/issue-22370.stderr
index 9498000ca56..70e17bdd063 100644
--- a/src/test/ui/issue-22370.stderr
+++ b/src/test/ui/issue-22370.stderr
@@ -8,3 +8,4 @@ error[E0393]: the type parameter `T` must be explicitly specified
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0393"
diff --git a/src/test/ui/issue-22560.stderr b/src/test/ui/issue-22560.stderr
index 1c594cb6cb8..1e3685403f5 100644
--- a/src/test/ui/issue-22560.stderr
+++ b/src/test/ui/issue-22560.stderr
@@ -32,3 +32,5 @@ error[E0191]: the value of the associated type `Output` (from the trait `std::op
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0191, E0225, E0393
+If you want more information on an error, try using "rustc --explain E0191"
diff --git a/src/test/ui/issue-22886.stderr b/src/test/ui/issue-22886.stderr
index 23d05edc919..f884c80ccae 100644
--- a/src/test/ui/issue-22886.stderr
+++ b/src/test/ui/issue-22886.stderr
@@ -6,3 +6,4 @@ error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait,
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0207"
diff --git a/src/test/ui/issue-22933-2.stderr b/src/test/ui/issue-22933-2.stderr
index 8853d43408c..5b87b95b81a 100644
--- a/src/test/ui/issue-22933-2.stderr
+++ b/src/test/ui/issue-22933-2.stderr
@@ -9,3 +9,4 @@ error[E0599]: no variant named `PIE` found for type `Delicious` in the current s
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-23041.stderr b/src/test/ui/issue-23041.stderr
index 048ae5834e3..7626324b2f2 100644
--- a/src/test/ui/issue-23041.stderr
+++ b/src/test/ui/issue-23041.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/issue-23173.stderr b/src/test/ui/issue-23173.stderr
index 38a22257ff8..c84657b4c59 100644
--- a/src/test/ui/issue-23173.stderr
+++ b/src/test/ui/issue-23173.stderr
@@ -36,3 +36,4 @@ error[E0599]: no associated item named `Assoc` found for type `Struct` in the cu
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-23217.stderr b/src/test/ui/issue-23217.stderr
index eae6c2de9c5..638e783e067 100644
--- a/src/test/ui/issue-23217.stderr
+++ b/src/test/ui/issue-23217.stderr
@@ -8,3 +8,4 @@ error[E0599]: no variant named `A` found for type `SomeEnum` in the current scop
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-23302-1.stderr b/src/test/ui/issue-23302-1.stderr
index 0658c07fb1d..1248d2075a5 100644
--- a/src/test/ui/issue-23302-1.stderr
+++ b/src/test/ui/issue-23302-1.stderr
@@ -13,3 +13,4 @@ note: the cycle begins when const-evaluating `X::A::{{initializer}}`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/issue-23302-2.stderr b/src/test/ui/issue-23302-2.stderr
index c4a1c4f80c8..5438ce4b797 100644
--- a/src/test/ui/issue-23302-2.stderr
+++ b/src/test/ui/issue-23302-2.stderr
@@ -13,3 +13,4 @@ note: the cycle begins when const-evaluating `Y::A::{{initializer}}`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/issue-23302-3.stderr b/src/test/ui/issue-23302-3.stderr
index 76f543cff79..0a7e239d32f 100644
--- a/src/test/ui/issue-23302-3.stderr
+++ b/src/test/ui/issue-23302-3.stderr
@@ -18,3 +18,4 @@ note: ...which then requires processing `A`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/issue-23543.stderr b/src/test/ui/issue-23543.stderr
index e5181960753..e5ea6a5dd6f 100644
--- a/src/test/ui/issue-23543.stderr
+++ b/src/test/ui/issue-23543.stderr
@@ -6,3 +6,4 @@ error[E0229]: associated type bindings are not allowed here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0229"
diff --git a/src/test/ui/issue-23544.stderr b/src/test/ui/issue-23544.stderr
index 496a7aff7b7..36875037959 100644
--- a/src/test/ui/issue-23544.stderr
+++ b/src/test/ui/issue-23544.stderr
@@ -6,3 +6,4 @@ error[E0229]: associated type bindings are not allowed here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0229"
diff --git a/src/test/ui/issue-23716.stderr b/src/test/ui/issue-23716.stderr
index 2db67c7ec00..9b2ab554794 100644
--- a/src/test/ui/issue-23716.stderr
+++ b/src/test/ui/issue-23716.stderr
@@ -18,3 +18,4 @@ error[E0530]: function parameters cannot shadow statics
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0530"
diff --git a/src/test/ui/issue-24036.stderr b/src/test/ui/issue-24036.stderr
index c89f7241f5b..893ff498513 100644
--- a/src/test/ui/issue-24036.stderr
+++ b/src/test/ui/issue-24036.stderr
@@ -29,3 +29,4 @@ error[E0308]: match arms have incompatible types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-24081.stderr b/src/test/ui/issue-24081.stderr
index 969cf3577fb..9df8386e671 100644
--- a/src/test/ui/issue-24081.stderr
+++ b/src/test/ui/issue-24081.stderr
@@ -75,3 +75,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0255"
diff --git a/src/test/ui/issue-24424.stderr b/src/test/ui/issue-24424.stderr
index 55af26dd91e..de1e30dc08b 100644
--- a/src/test/ui/issue-24424.stderr
+++ b/src/test/ui/issue-24424.stderr
@@ -12,3 +12,4 @@ note: required by `Trait0`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0283"
diff --git a/src/test/ui/issue-25385.stderr b/src/test/ui/issue-25385.stderr
index 467cfc53388..e774f538a99 100644
--- a/src/test/ui/issue-25385.stderr
+++ b/src/test/ui/issue-25385.stderr
@@ -15,3 +15,4 @@ error[E0599]: no method named `foo` found for type `i32` in the current scope
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-25793.stderr b/src/test/ui/issue-25793.stderr
index 914cc6fc426..bb7f58cf3cd 100644
--- a/src/test/ui/issue-25793.stderr
+++ b/src/test/ui/issue-25793.stderr
@@ -11,3 +11,4 @@ error[E0503]: cannot use `self.width` because it was mutably borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0503"
diff --git a/src/test/ui/issue-25826.stderr b/src/test/ui/issue-25826.stderr
index 3b6599ccbd6..c617a1ce507 100644
--- a/src/test/ui/issue-25826.stderr
+++ b/src/test/ui/issue-25826.stderr
@@ -6,3 +6,4 @@ error[E0395]: raw pointers cannot be compared in constants
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0395"
diff --git a/src/test/ui/issue-26056.stderr b/src/test/ui/issue-26056.stderr
index b95438314c3..8adb3570dfe 100644
--- a/src/test/ui/issue-26056.stderr
+++ b/src/test/ui/issue-26056.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `Map` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/issue-26093.stderr b/src/test/ui/issue-26093.stderr
index b850852623f..77565c3c057 100644
--- a/src/test/ui/issue-26093.stderr
+++ b/src/test/ui/issue-26093.stderr
@@ -9,3 +9,4 @@ error[E0070]: invalid left-hand side expression
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0070"
diff --git a/src/test/ui/issue-26472.stderr b/src/test/ui/issue-26472.stderr
index 5b61aa98c3f..07a9b61fb7a 100644
--- a/src/test/ui/issue-26472.stderr
+++ b/src/test/ui/issue-26472.stderr
@@ -8,3 +8,4 @@ error[E0616]: field `len` of struct `sub::S` is private
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0616"
diff --git a/src/test/ui/issue-26638.stderr b/src/test/ui/issue-26638.stderr
index 3b124ff4063..1d4fb6a3399 100644
--- a/src/test/ui/issue-26638.stderr
+++ b/src/test/ui/issue-26638.stderr
@@ -26,3 +26,4 @@ error[E0106]: missing lifetime specifier
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/issue-26886.stderr b/src/test/ui/issue-26886.stderr
index e6424e535ee..842276453a4 100644
--- a/src/test/ui/issue-26886.stderr
+++ b/src/test/ui/issue-26886.stderr
@@ -29,3 +29,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0252"
diff --git a/src/test/ui/issue-27842.stderr b/src/test/ui/issue-27842.stderr
index 2e3b20e43ff..0feb1fbfc37 100644
--- a/src/test/ui/issue-27842.stderr
+++ b/src/test/ui/issue-27842.stderr
@@ -14,3 +14,4 @@ error[E0608]: cannot index into a value of type `({integer}, {integer}, {integer
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0608"
diff --git a/src/test/ui/issue-27942.stderr b/src/test/ui/issue-27942.stderr
index b24544743d8..8958cf0139a 100644
--- a/src/test/ui/issue-27942.stderr
+++ b/src/test/ui/issue-27942.stderr
@@ -38,3 +38,4 @@ note: ...does not necessarily outlive the anonymous lifetime #1 defined on the m
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-2848.stderr b/src/test/ui/issue-2848.stderr
index 6d4ed9c0111..3b5eed4e7b8 100644
--- a/src/test/ui/issue-2848.stderr
+++ b/src/test/ui/issue-2848.stderr
@@ -8,3 +8,4 @@ error[E0408]: variable `beta` is not bound in all patterns
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0408"
diff --git a/src/test/ui/issue-28568.stderr b/src/test/ui/issue-28568.stderr
index 61717ee60ff..d7e7c953c4b 100644
--- a/src/test/ui/issue-28568.stderr
+++ b/src/test/ui/issue-28568.stderr
@@ -9,3 +9,4 @@ error[E0119]: conflicting implementations of trait `std::ops::Drop` for type `My
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/issue-28776.stderr b/src/test/ui/issue-28776.stderr
index cf24a8312af..e6e88f300e5 100644
--- a/src/test/ui/issue-28776.stderr
+++ b/src/test/ui/issue-28776.stderr
@@ -6,3 +6,4 @@ error[E0133]: call to unsafe function requires unsafe function or block
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0133"
diff --git a/src/test/ui/issue-28837.stderr b/src/test/ui/issue-28837.stderr
index 8d9afb5be79..6999a745034 100644
--- a/src/test/ui/issue-28837.stderr
+++ b/src/test/ui/issue-28837.stderr
@@ -120,3 +120,4 @@ error[E0369]: binary operation `>=` cannot be applied to type `A`
 
 error: aborting due to 15 previous errors
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/issue-28971.stderr b/src/test/ui/issue-28971.stderr
index 6237aae67be..5b753e6f385 100644
--- a/src/test/ui/issue-28971.stderr
+++ b/src/test/ui/issue-28971.stderr
@@ -9,3 +9,4 @@ error[E0599]: no variant named `Baz` found for type `Foo` in the current scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-29124.stderr b/src/test/ui/issue-29124.stderr
index 0b81526d655..32e40787758 100644
--- a/src/test/ui/issue-29124.stderr
+++ b/src/test/ui/issue-29124.stderr
@@ -16,3 +16,4 @@ error[E0599]: no method named `x` found for type `fn() -> ret {func}` in the cur
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/issue-29723.stderr b/src/test/ui/issue-29723.stderr
index 061c3d49323..9564e225f64 100644
--- a/src/test/ui/issue-29723.stderr
+++ b/src/test/ui/issue-29723.stderr
@@ -11,3 +11,4 @@ error[E0382]: use of moved value: `s`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/issue-3008-1.stderr b/src/test/ui/issue-3008-1.stderr
index 7d8e10a7606..4f080774073 100644
--- a/src/test/ui/issue-3008-1.stderr
+++ b/src/test/ui/issue-3008-1.stderr
@@ -11,3 +11,4 @@ error[E0072]: recursive type `Bar` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/issue-3008-2.stderr b/src/test/ui/issue-3008-2.stderr
index 2d5e2966df9..d5e21463b60 100644
--- a/src/test/ui/issue-3008-2.stderr
+++ b/src/test/ui/issue-3008-2.stderr
@@ -10,3 +10,4 @@ error[E0072]: recursive type `bar` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/issue-30255.stderr b/src/test/ui/issue-30255.stderr
index b0c314912cc..edd4549f09a 100644
--- a/src/test/ui/issue-30255.stderr
+++ b/src/test/ui/issue-30255.stderr
@@ -24,3 +24,4 @@ error[E0106]: missing lifetime specifier
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/issue-3044.stderr b/src/test/ui/issue-3044.stderr
index 14f2d5195d6..d6d37753c4d 100644
--- a/src/test/ui/issue-3044.stderr
+++ b/src/test/ui/issue-3044.stderr
@@ -6,3 +6,4 @@ error[E0061]: this function takes 2 parameters but 1 parameter was supplied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/issue-32326.stderr b/src/test/ui/issue-32326.stderr
index f907e3adaf1..24eaf17e6a7 100644
--- a/src/test/ui/issue-32326.stderr
+++ b/src/test/ui/issue-32326.stderr
@@ -12,3 +12,4 @@ error[E0072]: recursive type `Expr` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/issue-33525.stderr b/src/test/ui/issue-33525.stderr
index 4909340fa4c..dfb94fefda1 100644
--- a/src/test/ui/issue-33525.stderr
+++ b/src/test/ui/issue-33525.stderr
@@ -18,3 +18,5 @@ error[E0609]: no field `ipsum` on type `&'static str`
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0425, E0609
+If you want more information on an error, try using "rustc --explain E0425"
diff --git a/src/test/ui/issue-33941.stderr b/src/test/ui/issue-33941.stderr
index 78c9ce9a1b1..c71f6956122 100644
--- a/src/test/ui/issue-33941.stderr
+++ b/src/test/ui/issue-33941.stderr
@@ -19,3 +19,4 @@ error[E0271]: type mismatch resolving `<std::collections::hash_map::Iter<'_, _,
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0271"
diff --git a/src/test/ui/issue-34047.stderr b/src/test/ui/issue-34047.stderr
index 0c109bffb24..f8c26beb127 100644
--- a/src/test/ui/issue-34047.stderr
+++ b/src/test/ui/issue-34047.stderr
@@ -9,3 +9,4 @@ error[E0530]: match bindings cannot shadow constants
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0530"
diff --git a/src/test/ui/issue-34209.stderr b/src/test/ui/issue-34209.stderr
index a832aab4c26..9033e864706 100644
--- a/src/test/ui/issue-34209.stderr
+++ b/src/test/ui/issue-34209.stderr
@@ -8,3 +8,4 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0223"
diff --git a/src/test/ui/issue-35139.stderr b/src/test/ui/issue-35139.stderr
index 19356cad317..ec6b1029915 100644
--- a/src/test/ui/issue-35139.stderr
+++ b/src/test/ui/issue-35139.stderr
@@ -6,3 +6,4 @@ error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait,
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0207"
diff --git a/src/test/ui/issue-35241.stderr b/src/test/ui/issue-35241.stderr
index 25cef738897..09cc49e1b4d 100644
--- a/src/test/ui/issue-35241.stderr
+++ b/src/test/ui/issue-35241.stderr
@@ -13,3 +13,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-35675.stderr b/src/test/ui/issue-35675.stderr
index c4d0e51c07e..d8b357e0cee 100644
--- a/src/test/ui/issue-35675.stderr
+++ b/src/test/ui/issue-35675.stderr
@@ -65,3 +65,5 @@ error[E0573]: expected type, found variant `Some`
 
 error: aborting due to 7 previous errors
 
+You've got a few errors: E0412, E0425, E0573
+If you want more information on an error, try using "rustc --explain E0412"
diff --git a/src/test/ui/issue-35869.stderr b/src/test/ui/issue-35869.stderr
index 5d2772b06a2..001aa6ed86b 100644
--- a/src/test/ui/issue-35869.stderr
+++ b/src/test/ui/issue-35869.stderr
@@ -48,3 +48,4 @@ error[E0053]: method `qux` has an incompatible type for trait
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0053"
diff --git a/src/test/ui/issue-36163.stderr b/src/test/ui/issue-36163.stderr
index d0337fc32b0..22e1f8c91ae 100644
--- a/src/test/ui/issue-36163.stderr
+++ b/src/test/ui/issue-36163.stderr
@@ -18,3 +18,4 @@ note: ...which then requires const-evaluating `A`...
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/issue-36400.stderr b/src/test/ui/issue-36400.stderr
index 84e6855e23b..22003fe2d03 100644
--- a/src/test/ui/issue-36400.stderr
+++ b/src/test/ui/issue-36400.stderr
@@ -8,3 +8,4 @@ error[E0596]: cannot borrow immutable `Box` content `*x` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/issue-36708.stderr b/src/test/ui/issue-36708.stderr
index 016841de169..7d06b0b7e72 100644
--- a/src/test/ui/issue-36708.stderr
+++ b/src/test/ui/issue-36708.stderr
@@ -6,3 +6,4 @@ error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0049"
diff --git a/src/test/ui/issue-3779.stderr b/src/test/ui/issue-3779.stderr
index 538304803b4..2c0ed7b34e0 100644
--- a/src/test/ui/issue-3779.stderr
+++ b/src/test/ui/issue-3779.stderr
@@ -11,3 +11,4 @@ error[E0072]: recursive type `S` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/issue-37884.stderr b/src/test/ui/issue-37884.stderr
index c4ad232ae7e..10dddd2b227 100644
--- a/src/test/ui/issue-37884.stderr
+++ b/src/test/ui/issue-37884.stderr
@@ -29,3 +29,4 @@ note: ...does not necessarily outlive the lifetime 'a as defined on the impl at
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-38875/issue_38875.stderr b/src/test/ui/issue-38875/issue_38875.stderr
index d49741f25b9..4cdf4ece5cf 100644
--- a/src/test/ui/issue-38875/issue_38875.stderr
+++ b/src/test/ui/issue-38875/issue_38875.stderr
@@ -12,3 +12,4 @@ note: for constant expression here
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr b/src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr
index 173a60b0f08..902f8cd607d 100644
--- a/src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr
+++ b/src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr
@@ -9,3 +9,4 @@ error[E0507]: cannot move out of indexed content
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0507"
diff --git a/src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr b/src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr
index 7b992e376dc..023ed328da1 100644
--- a/src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr
+++ b/src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr
@@ -9,3 +9,4 @@ error[E0507]: cannot move out of indexed content
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0507"
diff --git a/src/test/ui/issue-41652/issue_41652.stderr b/src/test/ui/issue-41652/issue_41652.stderr
index 373dff27f2e..7dce5cc4291 100644
--- a/src/test/ui/issue-41652/issue_41652.stderr
+++ b/src/test/ui/issue-41652/issue_41652.stderr
@@ -10,3 +10,4 @@ help: you must specify a concrete type for this numeric value, like `i32`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0689"
diff --git a/src/test/ui/issue-42106.stderr b/src/test/ui/issue-42106.stderr
index 138f7693ebe..b9f9a92b60a 100644
--- a/src/test/ui/issue-42106.stderr
+++ b/src/test/ui/issue-42106.stderr
@@ -10,3 +10,4 @@ error[E0502]: cannot borrow `*collection` as mutable because `collection` is als
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0502"
diff --git a/src/test/ui/issue-4335.stderr b/src/test/ui/issue-4335.stderr
index 5840838b823..bb713a4af2f 100644
--- a/src/test/ui/issue-4335.stderr
+++ b/src/test/ui/issue-4335.stderr
@@ -18,3 +18,5 @@ error[E0507]: cannot move out of borrowed content
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0373, E0507
+If you want more information on an error, try using "rustc --explain E0373"
diff --git a/src/test/ui/issue-44023.stderr b/src/test/ui/issue-44023.stderr
index fc6363dc921..7cc1b834126 100644
--- a/src/test/ui/issue-44023.stderr
+++ b/src/test/ui/issue-44023.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-45157.stderr b/src/test/ui/issue-45157.stderr
index e133aab31bc..9df58ac4b83 100644
--- a/src/test/ui/issue-45157.stderr
+++ b/src/test/ui/issue-45157.stderr
@@ -18,3 +18,4 @@ error[E0502]: cannot borrow `u.s.a` as mutable because it is also borrowed as im
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0502"
diff --git a/src/test/ui/issue-45697-1.stderr b/src/test/ui/issue-45697-1.stderr
index 09f32b93acc..68d5aac612a 100644
--- a/src/test/ui/issue-45697-1.stderr
+++ b/src/test/ui/issue-45697-1.stderr
@@ -16,3 +16,5 @@ error[E0503]: cannot use `*y.pointer` because it was mutably borrowed (Mir)
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0503, E0506
+If you want more information on an error, try using "rustc --explain E0503"
diff --git a/src/test/ui/issue-45697.stderr b/src/test/ui/issue-45697.stderr
index e9b723d57b5..a177b5946a7 100644
--- a/src/test/ui/issue-45697.stderr
+++ b/src/test/ui/issue-45697.stderr
@@ -16,3 +16,5 @@ error[E0503]: cannot use `*y.pointer` because it was mutably borrowed (Mir)
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0503, E0506
+If you want more information on an error, try using "rustc --explain E0503"
diff --git a/src/test/ui/issue-45730.stderr b/src/test/ui/issue-45730.stderr
index 94d39239117..0585720e3ac 100644
--- a/src/test/ui/issue-45730.stderr
+++ b/src/test/ui/issue-45730.stderr
@@ -30,3 +30,4 @@ error[E0641]: cannot cast to a pointer of an unknown kind
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0641"
diff --git a/src/test/ui/issue-46112.stderr b/src/test/ui/issue-46112.stderr
index b9b87a941fd..2a5ca097594 100644
--- a/src/test/ui/issue-46112.stderr
+++ b/src/test/ui/issue-46112.stderr
@@ -12,3 +12,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-46332.stderr b/src/test/ui/issue-46332.stderr
index 6aef8456835..70b8e4ec475 100644
--- a/src/test/ui/issue-46332.stderr
+++ b/src/test/ui/issue-46332.stderr
@@ -6,3 +6,4 @@ error[E0422]: cannot find struct, variant or union type `TyUInt` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0422"
diff --git a/src/test/ui/issue-46471-1.stderr b/src/test/ui/issue-46471-1.stderr
index 97dfb458d2d..1f8e7fec1e2 100644
--- a/src/test/ui/issue-46471-1.stderr
+++ b/src/test/ui/issue-46471-1.stderr
@@ -22,3 +22,4 @@ error[E0597]: `z` does not live long enough (Mir)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/issue-46471.stderr b/src/test/ui/issue-46471.stderr
index 4c196bba5a1..21529e8eb8e 100644
--- a/src/test/ui/issue-46471.stderr
+++ b/src/test/ui/issue-46471.stderr
@@ -22,3 +22,4 @@ error[E0597]: `x` does not live long enough (Mir)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/issue-46472.stderr b/src/test/ui/issue-46472.stderr
index 7b5cce218e9..c4fa80e0eb4 100644
--- a/src/test/ui/issue-46472.stderr
+++ b/src/test/ui/issue-46472.stderr
@@ -30,3 +30,4 @@ note: borrowed value must be valid for the lifetime 'a as defined on the functio
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/issue-46983.stderr b/src/test/ui/issue-46983.stderr
index ac8417a7a24..dd7a55baf58 100644
--- a/src/test/ui/issue-46983.stderr
+++ b/src/test/ui/issue-46983.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/issue-47377.stderr b/src/test/ui/issue-47377.stderr
index 13b3ff58697..76c75ca7c16 100644
--- a/src/test/ui/issue-47377.stderr
+++ b/src/test/ui/issue-47377.stderr
@@ -10,3 +10,4 @@ help: `to_owned()` can be used to create an owned `String` from a string referen
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/issue-47380.stderr b/src/test/ui/issue-47380.stderr
index 6c9f79b5a94..0442017ebf0 100644
--- a/src/test/ui/issue-47380.stderr
+++ b/src/test/ui/issue-47380.stderr
@@ -10,3 +10,4 @@ help: `to_owned()` can be used to create an owned `String` from a string referen
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/issue-47511.stderr b/src/test/ui/issue-47511.stderr
index fabd6b6c253..aaae6d708ae 100644
--- a/src/test/ui/issue-47511.stderr
+++ b/src/test/ui/issue-47511.stderr
@@ -14,3 +14,4 @@ error[E0581]: return type references lifetime `'a`, which is not constrained by
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0581"
diff --git a/src/test/ui/issue-47623.stderr b/src/test/ui/issue-47623.stderr
index c5a42d4d846..e5143d30d00 100644
--- a/src/test/ui/issue-47623.stderr
+++ b/src/test/ui/issue-47623.stderr
@@ -6,3 +6,4 @@ error[E0429]: `self` imports are only allowed within a { } list
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0429"
diff --git a/src/test/ui/issue-47706-trait.stderr b/src/test/ui/issue-47706-trait.stderr
index 320e98dee4a..8da397c33bc 100644
--- a/src/test/ui/issue-47706-trait.stderr
+++ b/src/test/ui/issue-47706-trait.stderr
@@ -10,3 +10,5 @@ error[E0593]: function is expected to take a single 0-tuple as argument, but it
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0593, E0601
+If you want more information on an error, try using "rustc --explain E0593"
diff --git a/src/test/ui/issue-47706.stderr b/src/test/ui/issue-47706.stderr
index e197c09062d..f2afbb2052a 100644
--- a/src/test/ui/issue-47706.stderr
+++ b/src/test/ui/issue-47706.stderr
@@ -28,3 +28,4 @@ note: required by `foo`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0593"
diff --git a/src/test/ui/issue-4935.stderr b/src/test/ui/issue-4935.stderr
index 654fe53c07f..0ea88a31301 100644
--- a/src/test/ui/issue-4935.stderr
+++ b/src/test/ui/issue-4935.stderr
@@ -9,3 +9,4 @@ error[E0061]: this function takes 1 parameter but 2 parameters were supplied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/issue-5239-1.stderr b/src/test/ui/issue-5239-1.stderr
index b97b58981de..4a225f4acd0 100644
--- a/src/test/ui/issue-5239-1.stderr
+++ b/src/test/ui/issue-5239-1.stderr
@@ -8,3 +8,4 @@ error[E0368]: binary assignment operation `+=` cannot be applied to type `&isize
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0368"
diff --git a/src/test/ui/issue-6458-3.stderr b/src/test/ui/issue-6458-3.stderr
index 761a9b38f6f..fc2c54abfa3 100644
--- a/src/test/ui/issue-6458-3.stderr
+++ b/src/test/ui/issue-6458-3.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/issue-6458-4.stderr b/src/test/ui/issue-6458-4.stderr
index 6cc1edcd9fa..6beeca554ff 100644
--- a/src/test/ui/issue-6458-4.stderr
+++ b/src/test/ui/issue-6458-4.stderr
@@ -13,3 +13,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/issue-6458.stderr b/src/test/ui/issue-6458.stderr
index b5d4ac83139..2da6c4d1217 100644
--- a/src/test/ui/issue-6458.stderr
+++ b/src/test/ui/issue-6458.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/issue-7813.stderr b/src/test/ui/issue-7813.stderr
index 11f8e4d00fd..99112b240b1 100644
--- a/src/test/ui/issue-7813.stderr
+++ b/src/test/ui/issue-7813.stderr
@@ -8,3 +8,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr b/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr
index f91b286bc4a..2399520b9a1 100644
--- a/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr
+++ b/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr
@@ -52,3 +52,4 @@ error[E0106]: missing lifetime specifier
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/lifetime-errors/42701_one_named_and_one_anonymous.stderr b/src/test/ui/lifetime-errors/42701_one_named_and_one_anonymous.stderr
index 9bfa72c2f36..5337f5167af 100644
--- a/src/test/ui/lifetime-errors/42701_one_named_and_one_anonymous.stderr
+++ b/src/test/ui/lifetime-errors/42701_one_named_and_one_anonymous.stderr
@@ -9,3 +9,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.stderr
index 4c5e37b8f10..bdaee89f2f7 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.stderr
@@ -9,3 +9,4 @@ error[E0621]: explicit lifetime required in the type of `other`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr
index 457e347faaa..824102de3fb 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr
index 8c3592379ef..748dfa992fd 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in parameter type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr
index d5d1d16a424..72d62477aaf 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr
index 23b9c0cf250..fff6c57593e 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr
@@ -9,3 +9,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
index f418e1c01f2..17df0294bb9 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
@@ -11,3 +11,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr
index b28f102cd5a..edf0cddffe3 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `y`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
index d26cb6be709..92a6ac9acea 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
@@ -11,3 +11,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
index 0430e4c2715..fb20ff69496 100644
--- a/src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
+++ b/src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
@@ -11,3 +11,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr b/src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr
index 7cd5ca65981..a7cee33978e 100644
--- a/src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr
+++ b/src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr
@@ -8,3 +8,4 @@ error[E0106]: missing lifetime specifier
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0106"
diff --git a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr
index 7abc093512b..d44900f538f 100644
--- a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr
+++ b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-early-bound.stderr b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-early-bound.stderr
index ca522596fbf..97f7a14bcea 100644
--- a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-early-bound.stderr
+++ b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name-early-bound.stderr
@@ -9,3 +9,4 @@ error[E0621]: explicit lifetime required in the type of `y`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr
index 5d8f2c1decb..1bdf23ec979 100644
--- a/src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr
+++ b/src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr
@@ -8,3 +8,4 @@ error[E0621]: explicit lifetime required in the type of `y`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr b/src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr
index 69ff29db357..626f8c28ed5 100644
--- a/src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr
+++ b/src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr b/src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr
index dacb0708b05..5f6e98892db 100644
--- a/src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr
+++ b/src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr
@@ -9,3 +9,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr b/src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr
index e30355891ee..b84072140a5 100644
--- a/src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr
+++ b/src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr b/src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr
index 841555c1fcb..09e4290eb13 100644
--- a/src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr
+++ b/src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-2.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-2.stderr
index 5e1a4593ae4..57c6740cfe8 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-2.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-2.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-3.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-3.stderr
index b5b90c077d0..0c3e444a7c7 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-3.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-3.stderr
@@ -16,3 +16,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-4.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-4.stderr
index b159e147869..19339800a7a 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-4.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-4.stderr
@@ -16,3 +16,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
index e7317e63ab4..7ac8c7ac25b 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-2.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
index 71eef13a67d..40121ecca1d 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.stderr
@@ -10,3 +10,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.stderr
index 61b59b8f121..639849ab1a3 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.stderr
@@ -10,3 +10,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
index 0b1b01d86b8..896fa2d9855 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-earlybound-regions.stderr
@@ -9,3 +9,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
index 36885b7e076..5344afc7d31 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs-latebound-regions.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
index 961b8e310fe..0ecfa772aad 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-both-are-structs.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
index b70d26a99d7..97386ce4bf3 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-latebound-regions.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
index 7a503713063..18d63aa09f3 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-2.stderr
@@ -10,3 +10,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
index 66155bec0bb..a74592625e4 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-3.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
index d47cffbc622..9944db0ea18 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct-4.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
index 43c85e43e77..4fb91b6ef9d 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-one-is-struct.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
index 73927f0c1d3..87f40f55ab8 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.stderr
@@ -10,3 +10,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
index edb7ce2d6e9..07375c2e44a 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.stderr
@@ -10,3 +10,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
index 065b669e692..efc34461273 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
index 20badfccd8e..587ff105465 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-impl-items.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
index b8a4d9ed24e..1f0fed6ad5f 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions.stderr
index 2a30172c43a..8ff1220c109 100644
--- a/src/test/ui/lifetime-errors/ex3-both-anon-regions.stderr
+++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions.stderr
@@ -8,3 +8,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/lifetime-errors/liveness-assign-imm-local-notes.stderr b/src/test/ui/lifetime-errors/liveness-assign-imm-local-notes.stderr
index b8f738e445e..a66c6efe670 100644
--- a/src/test/ui/lifetime-errors/liveness-assign-imm-local-notes.stderr
+++ b/src/test/ui/lifetime-errors/liveness-assign-imm-local-notes.stderr
@@ -62,3 +62,4 @@ error[E0384]: cannot assign twice to immutable variable `x` (Mir)
 
 error: aborting due to 8 previous errors
 
+If you want more information on this error, try using "rustc --explain E0384"
diff --git a/src/test/ui/lifetimes/borrowck-let-suggestion.stderr b/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
index 66be3f964ec..a33ef772649 100644
--- a/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
+++ b/src/test/ui/lifetimes/borrowck-let-suggestion.stderr
@@ -13,3 +13,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
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 05908606da7..a92213e60e5 100644
--- a/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr
+++ b/src/test/ui/lifetimes/lifetime-doesnt-live-long-enough.stderr
@@ -111,3 +111,5 @@ note: ...so that the reference type `&'a Nested<M>` does not outlive the data it
 
 error: aborting due to 7 previous errors
 
+You've got a few errors: E0309, E0310
+If you want more information on an error, try using "rustc --explain E0309"
diff --git a/src/test/ui/lint-forbid-attr.stderr b/src/test/ui/lint-forbid-attr.stderr
index dcef7fb9ac0..a0e66611567 100644
--- a/src/test/ui/lint-forbid-attr.stderr
+++ b/src/test/ui/lint-forbid-attr.stderr
@@ -9,3 +9,4 @@ error[E0453]: allow(deprecated) overruled by outer forbid(deprecated)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0453"
diff --git a/src/test/ui/lint/outer-forbid.stderr b/src/test/ui/lint/outer-forbid.stderr
index 0bc4e4dcf5f..75ec71e729f 100644
--- a/src/test/ui/lint/outer-forbid.stderr
+++ b/src/test/ui/lint/outer-forbid.stderr
@@ -27,3 +27,4 @@ error[E0453]: allow(bad_style) overruled by outer forbid(non_snake_case)
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0453"
diff --git a/src/test/ui/lint/use_suggestion_json.stderr b/src/test/ui/lint/use_suggestion_json.stderr
index 86c2ad4c0e7..368b223722d 100644
--- a/src/test/ui/lint/use_suggestion_json.stderr
+++ b/src/test/ui/lint/use_suggestion_json.stderr
@@ -384,6 +384,7 @@ help: possible candidates are found in other modules, you can import them into s
    |
 and 8 other candidates
 
+If you want more information on this error, try using /"rustc --explain E0412/"
 "
 }
 {
diff --git a/src/test/ui/liveness-return-last-stmt-semi.stderr b/src/test/ui/liveness-return-last-stmt-semi.stderr
index 2057e14d55f..ede41118891 100644
--- a/src/test/ui/liveness-return-last-stmt-semi.stderr
+++ b/src/test/ui/liveness-return-last-stmt-semi.stderr
@@ -49,3 +49,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/loop-break-value-no-repeat.stderr b/src/test/ui/loop-break-value-no-repeat.stderr
index 982de00b4fa..427fade0ce0 100644
--- a/src/test/ui/loop-break-value-no-repeat.stderr
+++ b/src/test/ui/loop-break-value-no-repeat.stderr
@@ -10,3 +10,4 @@ help: instead, use `break` on its own without a value inside this `for` loop
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0571"
diff --git a/src/test/ui/lub-glb/old-lub-glb-hr.stderr b/src/test/ui/lub-glb/old-lub-glb-hr.stderr
index 105de33fac4..d308ae10f14 100644
--- a/src/test/ui/lub-glb/old-lub-glb-hr.stderr
+++ b/src/test/ui/lub-glb/old-lub-glb-hr.stderr
@@ -16,3 +16,4 @@ error[E0308]: match arms have incompatible types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/lub-glb/old-lub-glb-object.stderr b/src/test/ui/lub-glb/old-lub-glb-object.stderr
index 3550314d44b..21e1d3a04a2 100644
--- a/src/test/ui/lub-glb/old-lub-glb-object.stderr
+++ b/src/test/ui/lub-glb/old-lub-glb-object.stderr
@@ -16,3 +16,4 @@ error[E0308]: match arms have incompatible types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/macros/macro-backtrace-invalid-internals.stderr b/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
index b9cad7e113d..b11a0b63bcb 100644
--- a/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
+++ b/src/test/ui/macros/macro-backtrace-invalid-internals.stderr
@@ -80,3 +80,5 @@ help: you must specify a concrete type for this numeric value, like `f32`
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0599, E0609, E0610, E0689
+If you want more information on an error, try using "rustc --explain E0599"
diff --git a/src/test/ui/macros/macro-backtrace-nested.stderr b/src/test/ui/macros/macro-backtrace-nested.stderr
index ee4a38312e2..2d3ce35c65f 100644
--- a/src/test/ui/macros/macro-backtrace-nested.stderr
+++ b/src/test/ui/macros/macro-backtrace-nested.stderr
@@ -18,3 +18,4 @@ error[E0425]: cannot find value `fake` in this scope
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/macros/macro_path_as_generic_bound.stderr b/src/test/ui/macros/macro_path_as_generic_bound.stderr
index d59bcaa316e..fc5e915d9b0 100644
--- a/src/test/ui/macros/macro_path_as_generic_bound.stderr
+++ b/src/test/ui/macros/macro_path_as_generic_bound.stderr
@@ -6,3 +6,4 @@ error[E0433]: failed to resolve. Use of undeclared type or module `m`
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0433"
diff --git a/src/test/ui/macros/span-covering-argument-1.stderr b/src/test/ui/macros/span-covering-argument-1.stderr
index 677d2f10fd6..a35eb4e34ca 100644
--- a/src/test/ui/macros/span-covering-argument-1.stderr
+++ b/src/test/ui/macros/span-covering-argument-1.stderr
@@ -11,3 +11,4 @@ error[E0596]: cannot borrow immutable local variable `foo` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/main-wrong-location.stderr b/src/test/ui/main-wrong-location.stderr
index cb9740b8779..7dadb495cf1 100644
--- a/src/test/ui/main-wrong-location.stderr
+++ b/src/test/ui/main-wrong-location.stderr
@@ -9,3 +9,4 @@ note: here is a function named 'main'
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/method-call-err-msg.stderr b/src/test/ui/method-call-err-msg.stderr
index f9524696ed7..7def583e92a 100644
--- a/src/test/ui/method-call-err-msg.stderr
+++ b/src/test/ui/method-call-err-msg.stderr
@@ -43,3 +43,5 @@ error[E0599]: no method named `take` found for type `Foo` in the current scope
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0061, E0599
+If you want more information on an error, try using "rustc --explain E0061"
diff --git a/src/test/ui/method-missing-call.stderr b/src/test/ui/method-missing-call.stderr
index d4cffbff4ef..675855dcf34 100644
--- a/src/test/ui/method-missing-call.stderr
+++ b/src/test/ui/method-missing-call.stderr
@@ -16,3 +16,4 @@ error[E0615]: attempted to take value of method `filter_map` on type `std::iter:
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0615"
diff --git a/src/test/ui/mismatched_types/E0053.stderr b/src/test/ui/mismatched_types/E0053.stderr
index 226cb473e77..e63fd140f11 100644
--- a/src/test/ui/mismatched_types/E0053.stderr
+++ b/src/test/ui/mismatched_types/E0053.stderr
@@ -24,3 +24,4 @@ error[E0053]: method `bar` has an incompatible type for trait
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0053"
diff --git a/src/test/ui/mismatched_types/E0409.stderr b/src/test/ui/mismatched_types/E0409.stderr
index cc7c0179070..676a296661e 100644
--- a/src/test/ui/mismatched_types/E0409.stderr
+++ b/src/test/ui/mismatched_types/E0409.stderr
@@ -17,3 +17,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0308, E0409
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/E0631.stderr b/src/test/ui/mismatched_types/E0631.stderr
index 53f2f54325d..722c246f032 100644
--- a/src/test/ui/mismatched_types/E0631.stderr
+++ b/src/test/ui/mismatched_types/E0631.stderr
@@ -58,3 +58,4 @@ note: required by `bar`
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0631"
diff --git a/src/test/ui/mismatched_types/abridged.stderr b/src/test/ui/mismatched_types/abridged.stderr
index 2e1e5afad32..a52f2d3f6a1 100644
--- a/src/test/ui/mismatched_types/abridged.stderr
+++ b/src/test/ui/mismatched_types/abridged.stderr
@@ -68,3 +68,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/binops.stderr b/src/test/ui/mismatched_types/binops.stderr
index 828cf636951..7bc3e878099 100644
--- a/src/test/ui/mismatched_types/binops.stderr
+++ b/src/test/ui/mismatched_types/binops.stderr
@@ -48,3 +48,4 @@ error[E0277]: the trait bound `{integer}: std::cmp::PartialEq<std::result::Resul
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/mismatched_types/cast-rfc0401.stderr b/src/test/ui/mismatched_types/cast-rfc0401.stderr
index fa4f5903621..5c0a23031f3 100644
--- a/src/test/ui/mismatched_types/cast-rfc0401.stderr
+++ b/src/test/ui/mismatched_types/cast-rfc0401.stderr
@@ -248,3 +248,5 @@ help: did you mean `*s`?
 
 error: aborting due to 34 previous errors
 
+You've got a few errors: E0054, E0277, E0604, E0605, E0606, E0607, E0609
+If you want more information on an error, try using "rustc --explain E0054"
diff --git a/src/test/ui/mismatched_types/closure-arg-count-expected-type-issue-47244.stderr b/src/test/ui/mismatched_types/closure-arg-count-expected-type-issue-47244.stderr
index 34934b8d195..1ab2a8c872a 100644
--- a/src/test/ui/mismatched_types/closure-arg-count-expected-type-issue-47244.stderr
+++ b/src/test/ui/mismatched_types/closure-arg-count-expected-type-issue-47244.stderr
@@ -12,3 +12,4 @@ help: change the closure to accept a tuple instead of individual arguments
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0593"
diff --git a/src/test/ui/mismatched_types/closure-arg-count.stderr b/src/test/ui/mismatched_types/closure-arg-count.stderr
index d2a6d6da814..79e1df0d4cf 100644
--- a/src/test/ui/mismatched_types/closure-arg-count.stderr
+++ b/src/test/ui/mismatched_types/closure-arg-count.stderr
@@ -118,3 +118,4 @@ error[E0593]: function is expected to take 1 argument, but it takes 2 arguments
 
 error: aborting due to 12 previous errors
 
+If you want more information on this error, try using "rustc --explain E0593"
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 dfd02fe23b6..673993e5265 100644
--- a/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr
+++ b/src/test/ui/mismatched_types/closure-arg-type-mismatch.stderr
@@ -51,3 +51,5 @@ note: required by `baz`
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0271, E0631
+If you want more information on an error, try using "rustc --explain E0271"
diff --git a/src/test/ui/mismatched_types/closure-mismatch.stderr b/src/test/ui/mismatched_types/closure-mismatch.stderr
index 01de7e07495..ba004625e99 100644
--- a/src/test/ui/mismatched_types/closure-mismatch.stderr
+++ b/src/test/ui/mismatched_types/closure-mismatch.stderr
@@ -28,3 +28,5 @@ note: required by `baz`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0271, E0631
+If you want more information on an error, try using "rustc --explain E0271"
diff --git a/src/test/ui/mismatched_types/const-fn-in-trait.stderr b/src/test/ui/mismatched_types/const-fn-in-trait.stderr
index 4911db6b2eb..efb99e30aad 100644
--- a/src/test/ui/mismatched_types/const-fn-in-trait.stderr
+++ b/src/test/ui/mismatched_types/const-fn-in-trait.stderr
@@ -12,3 +12,4 @@ error[E0379]: trait fns cannot be declared const
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0379"
diff --git a/src/test/ui/mismatched_types/fn-variance-1.stderr b/src/test/ui/mismatched_types/fn-variance-1.stderr
index 64c260c30ed..1dcbd28169c 100644
--- a/src/test/ui/mismatched_types/fn-variance-1.stderr
+++ b/src/test/ui/mismatched_types/fn-variance-1.stderr
@@ -30,3 +30,4 @@ note: required by `apply`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0631"
diff --git a/src/test/ui/mismatched_types/for-loop-has-unit-body.stderr b/src/test/ui/mismatched_types/for-loop-has-unit-body.stderr
index 4a619804a6c..b84909f6484 100644
--- a/src/test/ui/mismatched_types/for-loop-has-unit-body.stderr
+++ b/src/test/ui/mismatched_types/for-loop-has-unit-body.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/issue-19109.stderr b/src/test/ui/mismatched_types/issue-19109.stderr
index 2942619f649..0f3ee720683 100644
--- a/src/test/ui/mismatched_types/issue-19109.stderr
+++ b/src/test/ui/mismatched_types/issue-19109.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/issue-26480.stderr b/src/test/ui/mismatched_types/issue-26480.stderr
index 5d25cb2f93c..eaef2603a20 100644
--- a/src/test/ui/mismatched_types/issue-26480.stderr
+++ b/src/test/ui/mismatched_types/issue-26480.stderr
@@ -20,3 +20,5 @@ error[E0605]: non-primitive cast: `{integer}` as `()`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0308, E0605
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/issue-35030.stderr b/src/test/ui/mismatched_types/issue-35030.stderr
index 3ec5d1b7b40..54e348223e5 100644
--- a/src/test/ui/mismatched_types/issue-35030.stderr
+++ b/src/test/ui/mismatched_types/issue-35030.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "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 71a3a0a5714..45c93ae3944 100644
--- a/src/test/ui/mismatched_types/issue-36053-2.stderr
+++ b/src/test/ui/mismatched_types/issue-36053-2.stderr
@@ -18,3 +18,5 @@ error[E0631]: type mismatch in closure arguments
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0599, E0631
+If you want more information on an error, try using "rustc --explain E0599"
diff --git a/src/test/ui/mismatched_types/issue-38371.stderr b/src/test/ui/mismatched_types/issue-38371.stderr
index d34f05e054a..a796d768a87 100644
--- a/src/test/ui/mismatched_types/issue-38371.stderr
+++ b/src/test/ui/mismatched_types/issue-38371.stderr
@@ -35,3 +35,5 @@ error[E0529]: expected an array or slice, found `u32`
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0308, E0529
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/main.stderr b/src/test/ui/mismatched_types/main.stderr
index 41e4c512398..310dae195ea 100644
--- a/src/test/ui/mismatched_types/main.stderr
+++ b/src/test/ui/mismatched_types/main.stderr
@@ -11,3 +11,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr b/src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr
index ab5b3e17915..22765e8fc6c 100644
--- a/src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr
+++ b/src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr
@@ -9,3 +9,4 @@ error[E0599]: no method named `unwrap` found for type `std::result::Result<(), F
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
index 1d4adc7d6d5..3ec71e03a8c 100644
--- a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
+++ b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
@@ -21,3 +21,5 @@ error[E0057]: this function takes 1 parameter but 2 parameters were supplied
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0057, E0308
+If you want more information on an error, try using "rustc --explain E0057"
diff --git a/src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr b/src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr
index ccc9fb56772..8f8b7aa459f 100644
--- a/src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr
+++ b/src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr b/src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr
index f3cf1d56615..e45ca366f64 100644
--- a/src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr
+++ b/src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr
@@ -24,3 +24,4 @@ error[E0053]: method `bar` has an incompatible type for trait
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0053"
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 9c9bbd19c75..9f9082309f3 100644
--- a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
+++ b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
@@ -15,3 +15,4 @@ note: required by `call_it`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0631"
diff --git a/src/test/ui/missing-items/issue-40221.stderr b/src/test/ui/missing-items/issue-40221.stderr
index 883c4329f4d..584625ff2da 100644
--- a/src/test/ui/missing-items/issue-40221.stderr
+++ b/src/test/ui/missing-items/issue-40221.stderr
@@ -6,3 +6,4 @@ error[E0004]: non-exhaustive patterns: `C(QA)` not covered
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/missing-items/m2.stderr b/src/test/ui/missing-items/m2.stderr
index 8c57214ec77..6c2bbf376eb 100644
--- a/src/test/ui/missing-items/m2.stderr
+++ b/src/test/ui/missing-items/m2.stderr
@@ -12,3 +12,5 @@ error[E0046]: not all trait items implemented, missing: `CONSTANT`, `Type`, `met
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0046, E0601
+If you want more information on an error, try using "rustc --explain E0046"
diff --git a/src/test/ui/missing-items/missing-type-parameter.stderr b/src/test/ui/missing-items/missing-type-parameter.stderr
index 1cb9e5f56d3..e91af3b2ea9 100644
--- a/src/test/ui/missing-items/missing-type-parameter.stderr
+++ b/src/test/ui/missing-items/missing-type-parameter.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr b/src/test/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr
index 3ba71d32a31..84fe36560f5 100644
--- a/src/test/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr
+++ b/src/test/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr
@@ -8,3 +8,4 @@ error[E0583]: file not found for module `missing`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0583"
diff --git a/src/test/ui/moves-based-on-type-block-bad.stderr b/src/test/ui/moves-based-on-type-block-bad.stderr
index 5fc26a8ad68..d893c6a1155 100644
--- a/src/test/ui/moves-based-on-type-block-bad.stderr
+++ b/src/test/ui/moves-based-on-type-block-bad.stderr
@@ -9,3 +9,4 @@ error[E0507]: cannot move out of borrowed content
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0507"
diff --git a/src/test/ui/moves-based-on-type-match-bindings.stderr b/src/test/ui/moves-based-on-type-match-bindings.stderr
index 5256b55f01c..cd2ad697c8b 100644
--- a/src/test/ui/moves-based-on-type-match-bindings.stderr
+++ b/src/test/ui/moves-based-on-type-match-bindings.stderr
@@ -11,3 +11,4 @@ error[E0382]: use of partially moved value: `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/moves-based-on-type-tuple.stderr b/src/test/ui/moves-based-on-type-tuple.stderr
index e1667107c92..95929eb9dbc 100644
--- a/src/test/ui/moves-based-on-type-tuple.stderr
+++ b/src/test/ui/moves-based-on-type-tuple.stderr
@@ -20,3 +20,4 @@ error[E0382]: use of moved value: `x` (Mir)
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0382"
diff --git a/src/test/ui/nested_impl_trait.stderr b/src/test/ui/nested_impl_trait.stderr
index 094926120cd..6849a8e08e2 100644
--- a/src/test/ui/nested_impl_trait.stderr
+++ b/src/test/ui/nested_impl_trait.stderr
@@ -48,3 +48,5 @@ error[E0562]: `impl Trait` not allowed outside of function and inherent method r
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0562, E0666
+If you want more information on an error, try using "rustc --explain E0562"
diff --git a/src/test/ui/nll/borrowed-match-issue-45045.stderr b/src/test/ui/nll/borrowed-match-issue-45045.stderr
index f5271b99c4b..5dada7a4895 100644
--- a/src/test/ui/nll/borrowed-match-issue-45045.stderr
+++ b/src/test/ui/nll/borrowed-match-issue-45045.stderr
@@ -22,3 +22,4 @@ error[E0503]: cannot use `e` because it was mutably borrowed
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0503"
diff --git a/src/test/ui/nll/borrowed-referent-issue-38899.stderr b/src/test/ui/nll/borrowed-referent-issue-38899.stderr
index 3031fec2d0b..8115057f255 100644
--- a/src/test/ui/nll/borrowed-referent-issue-38899.stderr
+++ b/src/test/ui/nll/borrowed-referent-issue-38899.stderr
@@ -9,3 +9,4 @@ error[E0502]: cannot borrow `*block.current` as immutable because it is also bor
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0502"
diff --git a/src/test/ui/nll/capture-ref-in-struct.stderr b/src/test/ui/nll/capture-ref-in-struct.stderr
index d05ec91be30..a1fc2de318a 100644
--- a/src/test/ui/nll/capture-ref-in-struct.stderr
+++ b/src/test/ui/nll/capture-ref-in-struct.stderr
@@ -14,3 +14,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/closure-requirements/escape-argument.stderr b/src/test/ui/nll/closure-requirements/escape-argument.stderr
index ee29f2f9c5c..2feaa82ea5a 100644
--- a/src/test/ui/nll/closure-requirements/escape-argument.stderr
+++ b/src/test/ui/nll/closure-requirements/escape-argument.stderr
@@ -39,3 +39,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr b/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr
index 501d2991547..bfd1f286b39 100644
--- a/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr
+++ b/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr
@@ -66,3 +66,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr b/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr
index 556cd020f7f..5e85ced7d9a 100644
--- a/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr
+++ b/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr
@@ -43,3 +43,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr
index f9a6999243a..b83fd8bebb4 100644
--- a/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr
@@ -49,3 +49,4 @@ note: No external requirements
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
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 290377996c9..d7fd67afcf7 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
@@ -83,3 +83,4 @@ error[E0597]: `a` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr
index 64766296e65..370bc50e800 100644
--- a/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr
@@ -49,3 +49,4 @@ note: No external requirements
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr b/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr
index aefa160fcbc..0579ac624ca 100644
--- a/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr
+++ b/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr
@@ -60,3 +60,4 @@ note: No external requirements
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/closure-requirements/region-lbr-anon-does-not-outlive-static.stderr b/src/test/ui/nll/closure-requirements/region-lbr-anon-does-not-outlive-static.stderr
index 2a1122cbda7..bbb63fe5066 100644
--- a/src/test/ui/nll/closure-requirements/region-lbr-anon-does-not-outlive-static.stderr
+++ b/src/test/ui/nll/closure-requirements/region-lbr-anon-does-not-outlive-static.stderr
@@ -14,3 +14,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr b/src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr
index efe0b73f195..96ac719bd5e 100644
--- a/src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr
+++ b/src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr
@@ -16,3 +16,4 @@ error[E0623]: lifetime mismatch
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0623"
diff --git a/src/test/ui/nll/drop-no-may-dangle.stderr b/src/test/ui/nll/drop-no-may-dangle.stderr
index dee5873ba3b..f6a06835e5b 100644
--- a/src/test/ui/nll/drop-no-may-dangle.stderr
+++ b/src/test/ui/nll/drop-no-may-dangle.stderr
@@ -23,3 +23,4 @@ error[E0506]: cannot assign to `v[..]` because it is borrowed
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/get_default.stderr b/src/test/ui/nll/get_default.stderr
index ed2c305090c..a47a1a58daa 100644
--- a/src/test/ui/nll/get_default.stderr
+++ b/src/test/ui/nll/get_default.stderr
@@ -48,3 +48,4 @@ error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as imm
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0502"
diff --git a/src/test/ui/nll/guarantor-issue-46974.stderr b/src/test/ui/nll/guarantor-issue-46974.stderr
index 4f0bd88f988..7e40a3ac118 100644
--- a/src/test/ui/nll/guarantor-issue-46974.stderr
+++ b/src/test/ui/nll/guarantor-issue-46974.stderr
@@ -18,3 +18,5 @@ error[E0621]: explicit lifetime required in the type of `s`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0506, E0621
+If you want more information on an error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr b/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr
index fbaaf5511cc..b503208b555 100644
--- a/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr
+++ b/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr
@@ -12,3 +12,4 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/maybe-initialized-drop-with-fragment.stderr b/src/test/ui/nll/maybe-initialized-drop-with-fragment.stderr
index 5d526cda042..a093a57ff39 100644
--- a/src/test/ui/nll/maybe-initialized-drop-with-fragment.stderr
+++ b/src/test/ui/nll/maybe-initialized-drop-with-fragment.stderr
@@ -11,3 +11,4 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/maybe-initialized-drop-with-uninitialized-fragments.stderr b/src/test/ui/nll/maybe-initialized-drop-with-uninitialized-fragments.stderr
index ecd60821194..165d9afaef6 100644
--- a/src/test/ui/nll/maybe-initialized-drop-with-uninitialized-fragments.stderr
+++ b/src/test/ui/nll/maybe-initialized-drop-with-uninitialized-fragments.stderr
@@ -12,3 +12,4 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/maybe-initialized-drop.stderr b/src/test/ui/nll/maybe-initialized-drop.stderr
index 874d63a0441..e2f5c049a55 100644
--- a/src/test/ui/nll/maybe-initialized-drop.stderr
+++ b/src/test/ui/nll/maybe-initialized-drop.stderr
@@ -10,3 +10,4 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0506"
diff --git a/src/test/ui/nll/return-ref-mut-issue-46557.stderr b/src/test/ui/nll/return-ref-mut-issue-46557.stderr
index cd77569dae0..bd42bf8e43c 100644
--- a/src/test/ui/nll/return-ref-mut-issue-46557.stderr
+++ b/src/test/ui/nll/return-ref-mut-issue-46557.stderr
@@ -11,3 +11,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/nll/trait-associated-constant.stderr b/src/test/ui/nll/trait-associated-constant.stderr
index 21c1a6ded93..38dc09debd0 100644
--- a/src/test/ui/nll/trait-associated-constant.stderr
+++ b/src/test/ui/nll/trait-associated-constant.stderr
@@ -38,3 +38,4 @@ note: ...does not necessarily outlive the lifetime 'b as defined on the impl at
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/nll/ty-outlives/impl-trait-captures.stderr b/src/test/ui/nll/ty-outlives/impl-trait-captures.stderr
index 4cfd12002e7..c3dd8a148df 100644
--- a/src/test/ui/nll/ty-outlives/impl-trait-captures.stderr
+++ b/src/test/ui/nll/ty-outlives/impl-trait-captures.stderr
@@ -14,3 +14,4 @@ error[E0621]: explicit lifetime required in the type of `x`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0621"
diff --git a/src/test/ui/nll/ty-outlives/impl-trait-outlives.stderr b/src/test/ui/nll/ty-outlives/impl-trait-outlives.stderr
index 5916d0060a0..f5ec12a0956 100644
--- a/src/test/ui/nll/ty-outlives/impl-trait-outlives.stderr
+++ b/src/test/ui/nll/ty-outlives/impl-trait-outlives.stderr
@@ -28,3 +28,4 @@ error[E0309]: the parameter type `T` may not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/projection-implied-bounds.stderr b/src/test/ui/nll/ty-outlives/projection-implied-bounds.stderr
index a49bdbbf09e..93405867c01 100644
--- a/src/test/ui/nll/ty-outlives/projection-implied-bounds.stderr
+++ b/src/test/ui/nll/ty-outlives/projection-implied-bounds.stderr
@@ -14,3 +14,4 @@ error[E0310]: the parameter type `T` may not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0310"
diff --git a/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr b/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr
index 30669dc4c2f..dd767db3146 100644
--- a/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr
+++ b/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr
@@ -159,3 +159,4 @@ note: No external requirements
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/projection-no-regions-fn.stderr b/src/test/ui/nll/ty-outlives/projection-no-regions-fn.stderr
index d309bf2ce6c..988ce6ddbe7 100644
--- a/src/test/ui/nll/ty-outlives/projection-no-regions-fn.stderr
+++ b/src/test/ui/nll/ty-outlives/projection-no-regions-fn.stderr
@@ -28,3 +28,4 @@ error[E0309]: the associated type `<T as std::iter::Iterator>::Item` may not liv
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr b/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr
index 946c1a8f372..9b961a73e73 100644
--- a/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr
+++ b/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr
@@ -198,3 +198,4 @@ note: No external requirements
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr
index 78775ce94ad..aa7c5866ff1 100644
--- a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr
+++ b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr
@@ -330,3 +330,4 @@ note: No external requirements
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr
index f68a76c3d0d..a0e7e7720cf 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr
@@ -85,3 +85,4 @@ note: No external requirements
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr
index b7120017a2c..3113046ef5e 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr
@@ -60,3 +60,4 @@ error[E0309]: the parameter type `T` may not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr
index ed4d4b1e68f..95a86ccae31 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr
@@ -193,3 +193,4 @@ note: No external requirements
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-fn-body-nll-feature.stderr b/src/test/ui/nll/ty-outlives/ty-param-fn-body-nll-feature.stderr
index fa9105df070..3e2cab84b62 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-fn-body-nll-feature.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-fn-body-nll-feature.stderr
@@ -8,3 +8,4 @@ error[E0309]: the parameter type `T` may not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-fn-body.stderr b/src/test/ui/nll/ty-outlives/ty-param-fn-body.stderr
index 3334f4ecc7c..cbfd2d412ef 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-fn-body.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-fn-body.stderr
@@ -14,3 +14,4 @@ error[E0309]: the parameter type `T` may not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/nll/ty-outlives/ty-param-fn.stderr b/src/test/ui/nll/ty-outlives/ty-param-fn.stderr
index 1e659e2e9f0..cf97c835013 100644
--- a/src/test/ui/nll/ty-outlives/ty-param-fn.stderr
+++ b/src/test/ui/nll/ty-outlives/ty-param-fn.stderr
@@ -28,3 +28,4 @@ error[E0309]: the parameter type `T` may not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0309"
diff --git a/src/test/ui/no-patterns-in-args.stderr b/src/test/ui/no-patterns-in-args.stderr
index 0db9eb9ded3..bbf8e3b8a47 100644
--- a/src/test/ui/no-patterns-in-args.stderr
+++ b/src/test/ui/no-patterns-in-args.stderr
@@ -30,3 +30,5 @@ error[E0561]: patterns aren't allowed in function pointer types
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0130, E0561
+If you want more information on an error, try using "rustc --explain E0130"
diff --git a/src/test/ui/non-constant-expr-for-arr-len.stderr b/src/test/ui/non-constant-expr-for-arr-len.stderr
index be7e8583824..a3c3be65406 100644
--- a/src/test/ui/non-constant-expr-for-arr-len.stderr
+++ b/src/test/ui/non-constant-expr-for-arr-len.stderr
@@ -6,3 +6,4 @@ error[E0435]: attempt to use a non-constant value in a constant
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0435"
diff --git a/src/test/ui/non-exhaustive-pattern-witness.stderr b/src/test/ui/non-exhaustive-pattern-witness.stderr
index f012dfed0b8..f2d8737b5c0 100644
--- a/src/test/ui/non-exhaustive-pattern-witness.stderr
+++ b/src/test/ui/non-exhaustive-pattern-witness.stderr
@@ -42,3 +42,4 @@ error[E0004]: non-exhaustive patterns: `((), false)` not covered
 
 error: aborting due to 7 previous errors
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/non_modrs_mods/non_modrs_mods.stderr b/src/test/ui/non_modrs_mods/non_modrs_mods.stderr
index f60d2e93e36..5ea7e9806d1 100644
--- a/src/test/ui/non_modrs_mods/non_modrs_mods.stderr
+++ b/src/test/ui/non_modrs_mods/non_modrs_mods.stderr
@@ -36,3 +36,4 @@ error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660)
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/not-enough-arguments.stderr b/src/test/ui/not-enough-arguments.stderr
index 291aa6ec4c1..03be5762228 100644
--- a/src/test/ui/not-enough-arguments.stderr
+++ b/src/test/ui/not-enough-arguments.stderr
@@ -9,3 +9,4 @@ error[E0061]: this function takes 4 parameters but 3 parameters were supplied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/numeric-fields.stderr b/src/test/ui/numeric-fields.stderr
index 8261e9034a6..5cb2c0d7427 100644
--- a/src/test/ui/numeric-fields.stderr
+++ b/src/test/ui/numeric-fields.stderr
@@ -14,3 +14,5 @@ error[E0026]: struct `S` does not have a field named `0x1`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0026, E0560
+If you want more information on an error, try using "rustc --explain E0026"
diff --git a/src/test/ui/object-safety-associated-consts.stderr b/src/test/ui/object-safety-associated-consts.stderr
index f63ded9a8b1..ef1ba758eec 100644
--- a/src/test/ui/object-safety-associated-consts.stderr
+++ b/src/test/ui/object-safety-associated-consts.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `Bar` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/object-safety-generics.stderr b/src/test/ui/object-safety-generics.stderr
index 7bc714163c7..168ba2c0887 100644
--- a/src/test/ui/object-safety-generics.stderr
+++ b/src/test/ui/object-safety-generics.stderr
@@ -16,3 +16,4 @@ error[E0038]: the trait `Bar` cannot be made into an object
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/object-safety-mentions-Self.stderr b/src/test/ui/object-safety-mentions-Self.stderr
index 8ed8dcc8031..9f90ce2e377 100644
--- a/src/test/ui/object-safety-mentions-Self.stderr
+++ b/src/test/ui/object-safety-mentions-Self.stderr
@@ -16,3 +16,4 @@ error[E0038]: the trait `Baz` cannot be made into an object
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/object-safety-sized.stderr b/src/test/ui/object-safety-sized.stderr
index a733416ef6c..e6d78e1c043 100644
--- a/src/test/ui/object-safety-sized.stderr
+++ b/src/test/ui/object-safety-sized.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `Bar` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/object-safety-supertrait-mentions-Self.stderr b/src/test/ui/object-safety-supertrait-mentions-Self.stderr
index a5a67553c61..e67da8a3f88 100644
--- a/src/test/ui/object-safety-supertrait-mentions-Self.stderr
+++ b/src/test/ui/object-safety-supertrait-mentions-Self.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `Baz` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/on-unimplemented/bad-annotation.stderr b/src/test/ui/on-unimplemented/bad-annotation.stderr
index 7126cc76eb7..449fd408dd7 100644
--- a/src/test/ui/on-unimplemented/bad-annotation.stderr
+++ b/src/test/ui/on-unimplemented/bad-annotation.stderr
@@ -74,3 +74,5 @@ error[E0232]: this attribute must have a valid value
 
 error: aborting due to 10 previous errors
 
+You've got a few errors: E0230, E0231, E0232
+If you want more information on an error, try using "rustc --explain E0230"
diff --git a/src/test/ui/on-unimplemented/multiple-impls.stderr b/src/test/ui/on-unimplemented/multiple-impls.stderr
index cfac3981be2..efe73dc3b76 100644
--- a/src/test/ui/on-unimplemented/multiple-impls.stderr
+++ b/src/test/ui/on-unimplemented/multiple-impls.stderr
@@ -63,3 +63,4 @@ error[E0277]: the trait bound `[i32]: Index<Bar<u32>>` is not satisfied
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/on-unimplemented/no-debug.stderr b/src/test/ui/on-unimplemented/no-debug.stderr
index af5b1e91211..44b80b2c93b 100644
--- a/src/test/ui/on-unimplemented/no-debug.stderr
+++ b/src/test/ui/on-unimplemented/no-debug.stderr
@@ -36,3 +36,4 @@ error[E0277]: `no_debug::Bar` doesn't implement `std::fmt::Display`
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/on-unimplemented/on-impl.stderr b/src/test/ui/on-unimplemented/on-impl.stderr
index ed2da68f081..8925dc5d064 100644
--- a/src/test/ui/on-unimplemented/on-impl.stderr
+++ b/src/test/ui/on-unimplemented/on-impl.stderr
@@ -21,3 +21,4 @@ error[E0277]: the trait bound `[i32]: Index<u32>` is not satisfied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/on-unimplemented/on-trait.stderr b/src/test/ui/on-unimplemented/on-trait.stderr
index 028200a5558..d55b2b592c2 100644
--- a/src/test/ui/on-unimplemented/on-trait.stderr
+++ b/src/test/ui/on-unimplemented/on-trait.stderr
@@ -26,3 +26,4 @@ note: required by `foobar`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/on-unimplemented/slice-index.stderr b/src/test/ui/on-unimplemented/slice-index.stderr
index a1ecbce770a..5d0d3c380d9 100644
--- a/src/test/ui/on-unimplemented/slice-index.stderr
+++ b/src/test/ui/on-unimplemented/slice-index.stderr
@@ -18,3 +18,4 @@ error[E0277]: the trait bound `std::ops::RangeTo<i32>: std::slice::SliceIndex<[i
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/partialeq_help.stderr b/src/test/ui/partialeq_help.stderr
index 25ae8b12768..36165269f86 100644
--- a/src/test/ui/partialeq_help.stderr
+++ b/src/test/ui/partialeq_help.stderr
@@ -9,3 +9,4 @@ error[E0277]: the trait bound `&T: std::cmp::PartialEq<T>` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/pat-slice-old-style.stderr b/src/test/ui/pat-slice-old-style.stderr
index 29c41c49cc4..cfc0aa3da75 100644
--- a/src/test/ui/pat-slice-old-style.stderr
+++ b/src/test/ui/pat-slice-old-style.stderr
@@ -8,3 +8,4 @@ error[E0658]: non-reference pattern used to match a reference (see issue #42640)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/qualified-path-params-2.stderr b/src/test/ui/qualified-path-params-2.stderr
index 35a9698451f..96c5f151346 100644
--- a/src/test/ui/qualified-path-params-2.stderr
+++ b/src/test/ui/qualified-path-params-2.stderr
@@ -14,3 +14,5 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0109, E0223
+If you want more information on an error, try using "rustc --explain E0109"
diff --git a/src/test/ui/reachable/expr_unary.stderr b/src/test/ui/reachable/expr_unary.stderr
index 39120f0bdf9..a8e90d6e645 100644
--- a/src/test/ui/reachable/expr_unary.stderr
+++ b/src/test/ui/reachable/expr_unary.stderr
@@ -32,3 +32,4 @@ error[E0600]: cannot apply unary operator `!` to type `!`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0600"
diff --git a/src/test/ui/recursive-requirements.stderr b/src/test/ui/recursive-requirements.stderr
index 8cf2c65b1e2..3846915fb7a 100644
--- a/src/test/ui/recursive-requirements.stderr
+++ b/src/test/ui/recursive-requirements.stderr
@@ -12,3 +12,4 @@ error[E0275]: overflow evaluating the requirement `Foo: std::marker::Sync`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0275"
diff --git a/src/test/ui/region-borrow-params-issue-29793-small.stderr b/src/test/ui/region-borrow-params-issue-29793-small.stderr
index 7cdea5b0bd2..af68b0a026b 100644
--- a/src/test/ui/region-borrow-params-issue-29793-small.stderr
+++ b/src/test/ui/region-borrow-params-issue-29793-small.stderr
@@ -244,3 +244,5 @@ help: to force the closure to take ownership of `y` (and any other referenced va
 
 error: aborting due to 20 previous errors
 
+You've got a few errors: E0373, E0597
+If you want more information on an error, try using "rustc --explain E0373"
diff --git a/src/test/ui/regions-fn-subtyping-return-static.stderr b/src/test/ui/regions-fn-subtyping-return-static.stderr
index 4a97537223c..ac7763744c6 100644
--- a/src/test/ui/regions-fn-subtyping-return-static.stderr
+++ b/src/test/ui/regions-fn-subtyping-return-static.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/regions-nested-fns-2.stderr b/src/test/ui/regions-nested-fns-2.stderr
index 5f0bbf6d12b..244338dbb46 100644
--- a/src/test/ui/regions-nested-fns-2.stderr
+++ b/src/test/ui/regions-nested-fns-2.stderr
@@ -13,3 +13,4 @@ help: to force the closure to take ownership of `y` (and any other referenced va
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0373"
diff --git a/src/test/ui/resolve-conflict-item-vs-import.stderr b/src/test/ui/resolve-conflict-item-vs-import.stderr
index e2245b8a8b1..35d31abc5c5 100644
--- a/src/test/ui/resolve-conflict-item-vs-import.stderr
+++ b/src/test/ui/resolve-conflict-item-vs-import.stderr
@@ -15,3 +15,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0255"
diff --git a/src/test/ui/resolve-inconsistent-names.stderr b/src/test/ui/resolve-inconsistent-names.stderr
index 8ae5a6b8a82..606234e00b6 100644
--- a/src/test/ui/resolve-inconsistent-names.stderr
+++ b/src/test/ui/resolve-inconsistent-names.stderr
@@ -16,3 +16,4 @@ error[E0408]: variable `b` is not bound in all patterns
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0408"
diff --git a/src/test/ui/resolve/enums-are-namespaced-xc.stderr b/src/test/ui/resolve/enums-are-namespaced-xc.stderr
index 5acc678df90..ee6d22103e1 100644
--- a/src/test/ui/resolve/enums-are-namespaced-xc.stderr
+++ b/src/test/ui/resolve/enums-are-namespaced-xc.stderr
@@ -30,3 +30,5 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0422, E0425
+If you want more information on an error, try using "rustc --explain E0422"
diff --git a/src/test/ui/resolve/issue-14254.stderr b/src/test/ui/resolve/issue-14254.stderr
index 1bb5a4cab49..1a1cb8b0dd9 100644
--- a/src/test/ui/resolve/issue-14254.stderr
+++ b/src/test/ui/resolve/issue-14254.stderr
@@ -146,3 +146,5 @@ error[E0601]: main function not found
 
 error: aborting due to 25 previous errors
 
+You've got a few errors: E0425, E0601
+If you want more information on an error, try using "rustc --explain E0425"
diff --git a/src/test/ui/resolve/issue-16058.stderr b/src/test/ui/resolve/issue-16058.stderr
index 322a1fea52e..a0ccc2a11cf 100644
--- a/src/test/ui/resolve/issue-16058.stderr
+++ b/src/test/ui/resolve/issue-16058.stderr
@@ -14,3 +14,4 @@ help: possible better candidates are found in other modules, you can import them
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0574"
diff --git a/src/test/ui/resolve/issue-17518.stderr b/src/test/ui/resolve/issue-17518.stderr
index ffb110d5c3a..10e7c9815cc 100644
--- a/src/test/ui/resolve/issue-17518.stderr
+++ b/src/test/ui/resolve/issue-17518.stderr
@@ -10,3 +10,4 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0422"
diff --git a/src/test/ui/resolve/issue-18252.stderr b/src/test/ui/resolve/issue-18252.stderr
index edc7196d846..c26bc052ee1 100644
--- a/src/test/ui/resolve/issue-18252.stderr
+++ b/src/test/ui/resolve/issue-18252.stderr
@@ -6,3 +6,4 @@ error[E0423]: expected function, found struct variant `Foo::Variant`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/issue-19452.stderr b/src/test/ui/resolve/issue-19452.stderr
index 7b14d49af51..b80d4faefa9 100644
--- a/src/test/ui/resolve/issue-19452.stderr
+++ b/src/test/ui/resolve/issue-19452.stderr
@@ -12,3 +12,4 @@ error[E0423]: expected value, found struct variant `issue_19452_aux::Homura::Mad
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/issue-21221-1.stderr b/src/test/ui/resolve/issue-21221-1.stderr
index 88405fd841b..cbf924d91b3 100644
--- a/src/test/ui/resolve/issue-21221-1.stderr
+++ b/src/test/ui/resolve/issue-21221-1.stderr
@@ -47,3 +47,5 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0405, E0412
+If you want more information on an error, try using "rustc --explain E0405"
diff --git a/src/test/ui/resolve/issue-21221-2.stderr b/src/test/ui/resolve/issue-21221-2.stderr
index 0ae8052758d..8a45bd58107 100644
--- a/src/test/ui/resolve/issue-21221-2.stderr
+++ b/src/test/ui/resolve/issue-21221-2.stderr
@@ -12,3 +12,5 @@ error[E0601]: main function not found
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0405, E0601
+If you want more information on an error, try using "rustc --explain E0405"
diff --git a/src/test/ui/resolve/issue-21221-3.stderr b/src/test/ui/resolve/issue-21221-3.stderr
index b26a8cdacb0..731d7bcd655 100644
--- a/src/test/ui/resolve/issue-21221-3.stderr
+++ b/src/test/ui/resolve/issue-21221-3.stderr
@@ -10,3 +10,4 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0405"
diff --git a/src/test/ui/resolve/issue-21221-4.stderr b/src/test/ui/resolve/issue-21221-4.stderr
index 0a22d8e1fe1..446bd0e258d 100644
--- a/src/test/ui/resolve/issue-21221-4.stderr
+++ b/src/test/ui/resolve/issue-21221-4.stderr
@@ -10,3 +10,4 @@ help: possible candidate is found in another module, you can import it into scop
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0405"
diff --git a/src/test/ui/resolve/issue-23305.stderr b/src/test/ui/resolve/issue-23305.stderr
index a0b4d424ec9..2da2044ca95 100644
--- a/src/test/ui/resolve/issue-23305.stderr
+++ b/src/test/ui/resolve/issue-23305.stderr
@@ -13,3 +13,4 @@ note: the cycle begins when processing `<impl at $DIR/issue-23305.rs:15:1: 15:20
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0391"
diff --git a/src/test/ui/resolve/issue-2356.stderr b/src/test/ui/resolve/issue-2356.stderr
index db68167a573..5238af220b3 100644
--- a/src/test/ui/resolve/issue-2356.stderr
+++ b/src/test/ui/resolve/issue-2356.stderr
@@ -108,3 +108,5 @@ error[E0424]: expected value, found module `self`
 
 error: aborting due to 17 previous errors
 
+You've got a few errors: E0424, E0425
+If you want more information on an error, try using "rustc --explain E0424"
diff --git a/src/test/ui/resolve/issue-24968.stderr b/src/test/ui/resolve/issue-24968.stderr
index 111710d515a..2a61cee830b 100644
--- a/src/test/ui/resolve/issue-24968.stderr
+++ b/src/test/ui/resolve/issue-24968.stderr
@@ -6,3 +6,4 @@ error[E0411]: cannot find type `Self` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0411"
diff --git a/src/test/ui/resolve/issue-33876.stderr b/src/test/ui/resolve/issue-33876.stderr
index 5dbecc4f0c5..f47c3fe574e 100644
--- a/src/test/ui/resolve/issue-33876.stderr
+++ b/src/test/ui/resolve/issue-33876.stderr
@@ -6,3 +6,4 @@ error[E0423]: expected value, found trait `Bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/issue-3907-2.stderr b/src/test/ui/resolve/issue-3907-2.stderr
index 2ef8c830eb2..796b90dc3fa 100644
--- a/src/test/ui/resolve/issue-3907-2.stderr
+++ b/src/test/ui/resolve/issue-3907-2.stderr
@@ -8,3 +8,4 @@ error[E0038]: the trait `issue_3907::Foo` cannot be made into an object
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0038"
diff --git a/src/test/ui/resolve/issue-3907.stderr b/src/test/ui/resolve/issue-3907.stderr
index 26ff7e70fd0..59134fe714d 100644
--- a/src/test/ui/resolve/issue-3907.stderr
+++ b/src/test/ui/resolve/issue-3907.stderr
@@ -10,3 +10,4 @@ help: possible better candidate is found in another module, you can import it in
 
 error: cannot continue compilation due to previous error
 
+If you want more information on this error, try using "rustc --explain E0404"
diff --git a/src/test/ui/resolve/issue-39226.stderr b/src/test/ui/resolve/issue-39226.stderr
index f6ee0b025bb..f07b6221dfc 100644
--- a/src/test/ui/resolve/issue-39226.stderr
+++ b/src/test/ui/resolve/issue-39226.stderr
@@ -9,3 +9,4 @@ error[E0423]: expected value, found struct `Handle`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/issue-5035-2.stderr b/src/test/ui/resolve/issue-5035-2.stderr
index 791b20725f3..465b93f47f9 100644
--- a/src/test/ui/resolve/issue-5035-2.stderr
+++ b/src/test/ui/resolve/issue-5035-2.stderr
@@ -9,3 +9,4 @@ error[E0277]: the trait bound `I + 'static: std::marker::Sized` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/resolve/issue-5035.stderr b/src/test/ui/resolve/issue-5035.stderr
index 3b37f5d4c83..fbdc7095ad8 100644
--- a/src/test/ui/resolve/issue-5035.stderr
+++ b/src/test/ui/resolve/issue-5035.stderr
@@ -15,3 +15,5 @@ error[E0404]: expected trait, found type alias `K`
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0404, E0432
+If you want more information on an error, try using "rustc --explain E0404"
diff --git a/src/test/ui/resolve/issue-6702.stderr b/src/test/ui/resolve/issue-6702.stderr
index b50295752f2..bdc45734d65 100644
--- a/src/test/ui/resolve/issue-6702.stderr
+++ b/src/test/ui/resolve/issue-6702.stderr
@@ -6,3 +6,4 @@ error[E0423]: expected function, found struct `Monster`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/levenshtein.stderr b/src/test/ui/resolve/levenshtein.stderr
index 68d46ccf685..2707c94bc65 100644
--- a/src/test/ui/resolve/levenshtein.stderr
+++ b/src/test/ui/resolve/levenshtein.stderr
@@ -48,3 +48,5 @@ error[E0425]: cannot find value `second` in module `m`
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0412, E0425
+If you want more information on an error, try using "rustc --explain E0412"
diff --git a/src/test/ui/resolve/name-clash-nullary.stderr b/src/test/ui/resolve/name-clash-nullary.stderr
index 014b1fe1b5b..6fd2de502a8 100644
--- a/src/test/ui/resolve/name-clash-nullary.stderr
+++ b/src/test/ui/resolve/name-clash-nullary.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/resolve/privacy-enum-ctor.stderr b/src/test/ui/resolve/privacy-enum-ctor.stderr
index c4f6d1f5b74..8a02a0e85f1 100644
--- a/src/test/ui/resolve/privacy-enum-ctor.stderr
+++ b/src/test/ui/resolve/privacy-enum-ctor.stderr
@@ -223,3 +223,5 @@ help: `E::Unit` is a unit variant, you need to write it without the parenthesis
 
 error: aborting due to 23 previous errors
 
+You've got a few errors: E0308, E0412, E0423, E0603, E0618
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/resolve/privacy-struct-ctor.stderr b/src/test/ui/resolve/privacy-struct-ctor.stderr
index e97a4e4143c..d7c19a5a468 100644
--- a/src/test/ui/resolve/privacy-struct-ctor.stderr
+++ b/src/test/ui/resolve/privacy-struct-ctor.stderr
@@ -75,3 +75,5 @@ error[E0603]: tuple struct `Z` is private
 
 error: aborting due to 10 previous errors
 
+You've got a few errors: E0423, E0603
+If you want more information on an error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/resolve-assoc-suggestions.stderr b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
index 3a6eeda833a..93e23bdef7f 100644
--- a/src/test/ui/resolve/resolve-assoc-suggestions.stderr
+++ b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
@@ -54,3 +54,5 @@ error[E0425]: cannot find value `method` in this scope
 
 error: aborting due to 9 previous errors
 
+You've got a few errors: E0412, E0425, E0531
+If you want more information on an error, try using "rustc --explain E0412"
diff --git a/src/test/ui/resolve/resolve-hint-macro.stderr b/src/test/ui/resolve/resolve-hint-macro.stderr
index ffb3f848430..65acbda8c97 100644
--- a/src/test/ui/resolve/resolve-hint-macro.stderr
+++ b/src/test/ui/resolve/resolve-hint-macro.stderr
@@ -6,3 +6,4 @@ error[E0423]: expected function, found macro `assert`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/resolve-speculative-adjustment.stderr b/src/test/ui/resolve/resolve-speculative-adjustment.stderr
index 45512b26705..b6bd4c5460d 100644
--- a/src/test/ui/resolve/resolve-speculative-adjustment.stderr
+++ b/src/test/ui/resolve/resolve-speculative-adjustment.stderr
@@ -24,3 +24,4 @@ error[E0425]: cannot find function `method` in this scope
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr b/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr
index 861026ade18..5cdeb0d52d9 100644
--- a/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr
+++ b/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr
@@ -76,3 +76,5 @@ error[E0601]: main function not found
 
 error: aborting due to 10 previous errors
 
+You've got a few errors: E0423, E0601
+If you want more information on an error, try using "rustc --explain E0423"
diff --git a/src/test/ui/resolve/token-error-correct-2.stderr b/src/test/ui/resolve/token-error-correct-2.stderr
index 00bd5dba8d9..9295bb27040 100644
--- a/src/test/ui/resolve/token-error-correct-2.stderr
+++ b/src/test/ui/resolve/token-error-correct-2.stderr
@@ -18,3 +18,4 @@ error[E0425]: cannot find value `foo` in this scope
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/resolve/token-error-correct-3.stderr b/src/test/ui/resolve/token-error-correct-3.stderr
index 33cf1d87817..1c9867476a2 100644
--- a/src/test/ui/resolve/token-error-correct-3.stderr
+++ b/src/test/ui/resolve/token-error-correct-3.stderr
@@ -44,3 +44,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0308, E0425
+If you want more information on an error, try using "rustc --explain E0308"
diff --git a/src/test/ui/resolve/tuple-struct-alias.stderr b/src/test/ui/resolve/tuple-struct-alias.stderr
index 843d7c20ffd..144eb7966e0 100644
--- a/src/test/ui/resolve/tuple-struct-alias.stderr
+++ b/src/test/ui/resolve/tuple-struct-alias.stderr
@@ -32,3 +32,5 @@ error[E0532]: expected tuple struct/variant, found type alias `A`
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0423, E0532
+If you want more information on an error, try using "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 eaee35451ec..028a0931c71 100644
--- a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
+++ b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
@@ -12,3 +12,5 @@ error[E0404]: expected trait, found type alias `Typedef`
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0404, E0405
+If you want more information on an error, try using "rustc --explain E0404"
diff --git a/src/test/ui/resolve/unresolved_static_type_field.stderr b/src/test/ui/resolve/unresolved_static_type_field.stderr
index 014e03eb252..ea58281a331 100644
--- a/src/test/ui/resolve/unresolved_static_type_field.stderr
+++ b/src/test/ui/resolve/unresolved_static_type_field.stderr
@@ -9,3 +9,4 @@ error[E0425]: cannot find value `cx` in this scope
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/resolve/use_suggestion_placement.stderr b/src/test/ui/resolve/use_suggestion_placement.stderr
index 3607aa5e9ab..c46a1d5bfc8 100644
--- a/src/test/ui/resolve/use_suggestion_placement.stderr
+++ b/src/test/ui/resolve/use_suggestion_placement.stderr
@@ -32,3 +32,5 @@ help: possible candidates are found in other modules, you can import them into s
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0412, E0425
+If you want more information on an error, try using "rustc --explain E0412"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/const.stderr b/src/test/ui/rfc-2005-default-binding-mode/const.stderr
index afcbf76c1a4..9dd3a6d62d3 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/const.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/const.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
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 052ab5892d2..50d713f43a3 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr
@@ -24,3 +24,4 @@ error[E0594]: cannot assign to immutable borrowed content `*x`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "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 c1c59fe6785..360a4555c7b 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
@@ -24,3 +24,4 @@ error[E0594]: cannot assign to immutable borrowed content `*n`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0594"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/for.stderr b/src/test/ui/rfc-2005-default-binding-mode/for.stderr
index 795dffb722a..5a52cb9c519 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/for.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/for.stderr
@@ -8,3 +8,4 @@ error[E0009]: cannot bind by-move and by-ref in the same pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0009"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/issue-44912-or.stderr b/src/test/ui/rfc-2005-default-binding-mode/issue-44912-or.stderr
index 7430dc2c87f..87a1eb53100 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/issue-44912-or.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/issue-44912-or.stderr
@@ -6,3 +6,4 @@ error[E0409]: variable `x` is bound in inconsistent ways within the same match a
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0409"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/lit.stderr b/src/test/ui/rfc-2005-default-binding-mode/lit.stderr
index f5ed7ee7181..33d1e5def12 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/lit.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/lit.stderr
@@ -18,3 +18,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/no-double-error.stderr b/src/test/ui/rfc-2005-default-binding-mode/no-double-error.stderr
index 83042287588..69225240521 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/no-double-error.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/no-double-error.stderr
@@ -6,3 +6,4 @@ error[E0599]: no associated item named `XXX` found for type `u32` in the current
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/slice.stderr b/src/test/ui/rfc-2005-default-binding-mode/slice.stderr
index ec2225c9f92..898c1fe16ee 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/slice.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/slice.stderr
@@ -6,3 +6,4 @@ error[E0004]: non-exhaustive patterns: `&[]` not covered
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0004"
diff --git a/src/test/ui/rfc-2005-default-binding-mode/suggestion.stderr b/src/test/ui/rfc-2005-default-binding-mode/suggestion.stderr
index 8aa17adbcb3..92e915864f5 100644
--- a/src/test/ui/rfc-2005-default-binding-mode/suggestion.stderr
+++ b/src/test/ui/rfc-2005-default-binding-mode/suggestion.stderr
@@ -8,3 +8,4 @@ error[E0658]: non-reference pattern used to match a reference (see issue #42640)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr
index e74592fa9ff..a51ced75444 100644
--- a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr
+++ b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr
@@ -6,3 +6,4 @@ error[E0110]: lifetime parameters are not allowed on this type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0110"
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 587be7113ce..63620971132 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
@@ -30,3 +30,5 @@ error[E0110]: lifetime parameters are not allowed on this type
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0110, E0261
+If you want more information on an error, try using "rustc --explain E0110"
diff --git a/src/test/ui/rfc1598-generic-associated-types/iterable.stderr b/src/test/ui/rfc1598-generic-associated-types/iterable.stderr
index d12ca5e5d4e..8148a961553 100644
--- a/src/test/ui/rfc1598-generic-associated-types/iterable.stderr
+++ b/src/test/ui/rfc1598-generic-associated-types/iterable.stderr
@@ -18,3 +18,4 @@ error[E0110]: lifetime parameters are not allowed on this type
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0110"
diff --git a/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr b/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr
index cc7f06f3b86..933a6245f98 100644
--- a/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr
+++ b/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr
@@ -24,3 +24,4 @@ error[E0109]: type parameters are not allowed on this type
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0109"
diff --git a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr
index b1908d022ed..25d1f5903bf 100644
--- a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr
+++ b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr
@@ -18,3 +18,4 @@ error[E0110]: lifetime parameters are not allowed on this type
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0110"
diff --git a/src/test/ui/self-impl.stderr b/src/test/ui/self-impl.stderr
index e1be5c18a68..a662b2a0645 100644
--- a/src/test/ui/self-impl.stderr
+++ b/src/test/ui/self-impl.stderr
@@ -16,3 +16,4 @@ error[E0223]: ambiguous associated type
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0223"
diff --git a/src/test/ui/shadowed-lifetime.stderr b/src/test/ui/shadowed-lifetime.stderr
index 8eaa3e59565..54a241d17de 100644
--- a/src/test/ui/shadowed-lifetime.stderr
+++ b/src/test/ui/shadowed-lifetime.stderr
@@ -16,3 +16,4 @@ error[E0496]: lifetime name `'b` shadows a lifetime name that is already in scop
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0496"
diff --git a/src/test/ui/shadowed-type-parameter.stderr b/src/test/ui/shadowed-type-parameter.stderr
index a16a9c0244f..c5759ef04d0 100644
--- a/src/test/ui/shadowed-type-parameter.stderr
+++ b/src/test/ui/shadowed-type-parameter.stderr
@@ -26,3 +26,4 @@ error[E0194]: type parameter `T` shadows another type parameter of the same name
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0194"
diff --git a/src/test/ui/span/E0046.stderr b/src/test/ui/span/E0046.stderr
index fb13f21fe00..02f2a8cfc6c 100644
--- a/src/test/ui/span/E0046.stderr
+++ b/src/test/ui/span/E0046.stderr
@@ -9,3 +9,4 @@ error[E0046]: not all trait items implemented, missing: `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0046"
diff --git a/src/test/ui/span/E0057.stderr b/src/test/ui/span/E0057.stderr
index 450c87ca032..f0c40578ddb 100644
--- a/src/test/ui/span/E0057.stderr
+++ b/src/test/ui/span/E0057.stderr
@@ -12,3 +12,4 @@ error[E0057]: this function takes 1 parameter but 2 parameters were supplied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0057"
diff --git a/src/test/ui/span/E0072.stderr b/src/test/ui/span/E0072.stderr
index 82b8579d5a1..22319e6552e 100644
--- a/src/test/ui/span/E0072.stderr
+++ b/src/test/ui/span/E0072.stderr
@@ -11,3 +11,4 @@ error[E0072]: recursive type `ListNode` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/span/E0204.stderr b/src/test/ui/span/E0204.stderr
index 0d9617c4c73..0c0d431f38f 100644
--- a/src/test/ui/span/E0204.stderr
+++ b/src/test/ui/span/E0204.stderr
@@ -36,3 +36,4 @@ error[E0204]: the trait `Copy` may not be implemented for this type
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0204"
diff --git a/src/test/ui/span/E0493.stderr b/src/test/ui/span/E0493.stderr
index d7996eaef3a..c8bdd04394e 100644
--- a/src/test/ui/span/E0493.stderr
+++ b/src/test/ui/span/E0493.stderr
@@ -6,3 +6,4 @@ error[E0493]: destructors cannot be evaluated at compile-time
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0493"
diff --git a/src/test/ui/span/E0535.stderr b/src/test/ui/span/E0535.stderr
index 23070e1555b..e271a8018bc 100644
--- a/src/test/ui/span/E0535.stderr
+++ b/src/test/ui/span/E0535.stderr
@@ -6,3 +6,4 @@ error[E0535]: invalid argument
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0535"
diff --git a/src/test/ui/span/E0536.stderr b/src/test/ui/span/E0536.stderr
index c33b89953e2..9903896fd77 100644
--- a/src/test/ui/span/E0536.stderr
+++ b/src/test/ui/span/E0536.stderr
@@ -6,3 +6,4 @@ error[E0536]: expected 1 cfg-pattern
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0536"
diff --git a/src/test/ui/span/E0537.stderr b/src/test/ui/span/E0537.stderr
index 9d66ddbaae3..f08e7a7357b 100644
--- a/src/test/ui/span/E0537.stderr
+++ b/src/test/ui/span/E0537.stderr
@@ -6,3 +6,4 @@ error[E0537]: invalid predicate `unknown`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0537"
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 2d580e7c20e..3230766af8a 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
@@ -84,3 +84,5 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 
 error: aborting due to 10 previous errors
 
+You've got a few errors: E0499, E0596
+If you want more information on an error, try using "rustc --explain E0499"
diff --git a/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr b/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr
index 3d380a9a2e8..031d0e1e92d 100644
--- a/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr
+++ b/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr
@@ -32,3 +32,4 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0596"
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 581b366af1c..adbe560f633 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,3 +46,5 @@ error[E0507]: cannot move out of captured outer variable in an `FnMut` closure
 
 error: aborting due to 5 previous errors
 
+You've got a few errors: E0499, E0504, E0507, E0596
+If you want more information on an error, try using "rustc --explain E0499"
diff --git a/src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr b/src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr
index a57cc94b9ba..6a4e030bc39 100644
--- a/src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr
+++ b/src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr
@@ -9,3 +9,4 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/span/borrowck-fn-in-const-b.stderr b/src/test/ui/span/borrowck-fn-in-const-b.stderr
index 45712d1a710..749725bee56 100644
--- a/src/test/ui/span/borrowck-fn-in-const-b.stderr
+++ b/src/test/ui/span/borrowck-fn-in-const-b.stderr
@@ -8,3 +8,4 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr b/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
index e65fd723e5f..fa33899816c 100644
--- a/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
+++ b/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
@@ -50,3 +50,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/borrowck-object-mutability.stderr b/src/test/ui/span/borrowck-object-mutability.stderr
index 530993f399a..1a510a5defc 100644
--- a/src/test/ui/span/borrowck-object-mutability.stderr
+++ b/src/test/ui/span/borrowck-object-mutability.stderr
@@ -18,3 +18,4 @@ error[E0596]: cannot borrow immutable `Box` content `*x` as mutable
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/span/borrowck-ref-into-rvalue.stderr b/src/test/ui/span/borrowck-ref-into-rvalue.stderr
index 80ddd150757..a91cb2def15 100644
--- a/src/test/ui/span/borrowck-ref-into-rvalue.stderr
+++ b/src/test/ui/span/borrowck-ref-into-rvalue.stderr
@@ -14,3 +14,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/coerce-suggestions.stderr b/src/test/ui/span/coerce-suggestions.stderr
index 06f0e6ec228..396bbe4793c 100644
--- a/src/test/ui/span/coerce-suggestions.stderr
+++ b/src/test/ui/span/coerce-suggestions.stderr
@@ -61,3 +61,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/span/destructor-restrictions.stderr b/src/test/ui/span/destructor-restrictions.stderr
index abe982c5ce3..e9fede39b91 100644
--- a/src/test/ui/span/destructor-restrictions.stderr
+++ b/src/test/ui/span/destructor-restrictions.stderr
@@ -10,3 +10,4 @@ error[E0597]: `*a` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/dropck-object-cycle.stderr b/src/test/ui/span/dropck-object-cycle.stderr
index 2b760415a1a..39f8bd9f9e2 100644
--- a/src/test/ui/span/dropck-object-cycle.stderr
+++ b/src/test/ui/span/dropck-object-cycle.stderr
@@ -11,3 +11,4 @@ error[E0597]: `*m` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/dropck_arr_cycle_checked.stderr b/src/test/ui/span/dropck_arr_cycle_checked.stderr
index 1225c36ab3d..412cc6f35f0 100644
--- a/src/test/ui/span/dropck_arr_cycle_checked.stderr
+++ b/src/test/ui/span/dropck_arr_cycle_checked.stderr
@@ -66,3 +66,4 @@ error[E0597]: `b2` does not live long enough
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/dropck_direct_cycle_with_drop.stderr b/src/test/ui/span/dropck_direct_cycle_with_drop.stderr
index 462b291f4fa..e6ea657b2e9 100644
--- a/src/test/ui/span/dropck_direct_cycle_with_drop.stderr
+++ b/src/test/ui/span/dropck_direct_cycle_with_drop.stderr
@@ -22,3 +22,4 @@ error[E0597]: `d1` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/dropck_misc_variants.stderr b/src/test/ui/span/dropck_misc_variants.stderr
index b839701f08b..d1c91430cf8 100644
--- a/src/test/ui/span/dropck_misc_variants.stderr
+++ b/src/test/ui/span/dropck_misc_variants.stderr
@@ -21,3 +21,4 @@ error[E0597]: `v` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/dropck_vec_cycle_checked.stderr b/src/test/ui/span/dropck_vec_cycle_checked.stderr
index 799dfb8e201..1171d3972bf 100644
--- a/src/test/ui/span/dropck_vec_cycle_checked.stderr
+++ b/src/test/ui/span/dropck_vec_cycle_checked.stderr
@@ -66,3 +66,4 @@ error[E0597]: `c2` does not live long enough
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/gated-features-attr-spans.stderr b/src/test/ui/span/gated-features-attr-spans.stderr
index f15c4a72c5a..f99dafed27a 100644
--- a/src/test/ui/span/gated-features-attr-spans.stderr
+++ b/src/test/ui/span/gated-features-attr-spans.stderr
@@ -24,3 +24,4 @@ warning: `#[must_use]` on functions is experimental (see issue #43302)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
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 6473b24dec5..95114577dc3 100644
--- a/src/test/ui/span/impl-wrong-item-for-trait.stderr
+++ b/src/test/ui/span/impl-wrong-item-for-trait.stderr
@@ -68,3 +68,5 @@ error[E0046]: not all trait items implemented, missing: `fmt`
 
 error: aborting due to 8 previous errors
 
+You've got a few errors: E0046, E0323, E0324, E0325, E0437
+If you want more information on an error, try using "rustc --explain E0046"
diff --git a/src/test/ui/span/issue-11925.stderr b/src/test/ui/span/issue-11925.stderr
index 01cd7661fb7..9e5d5acb862 100644
--- a/src/test/ui/span/issue-11925.stderr
+++ b/src/test/ui/span/issue-11925.stderr
@@ -12,3 +12,4 @@ error[E0597]: `x` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-15480.stderr b/src/test/ui/span/issue-15480.stderr
index 28841fbea97..35a7390cf5c 100644
--- a/src/test/ui/span/issue-15480.stderr
+++ b/src/test/ui/span/issue-15480.stderr
@@ -13,3 +13,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr b/src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr
index 1c9a64bc213..71a83fe3cc9 100644
--- a/src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr
+++ b/src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr
@@ -20,3 +20,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-23729.stderr b/src/test/ui/span/issue-23729.stderr
index 60bf804ff30..6d112864b03 100644
--- a/src/test/ui/span/issue-23729.stderr
+++ b/src/test/ui/span/issue-23729.stderr
@@ -8,3 +8,4 @@ error[E0046]: not all trait items implemented, missing: `Item`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0046"
diff --git a/src/test/ui/span/issue-23827.stderr b/src/test/ui/span/issue-23827.stderr
index d06d6c03616..7f58fe45e62 100644
--- a/src/test/ui/span/issue-23827.stderr
+++ b/src/test/ui/span/issue-23827.stderr
@@ -8,3 +8,4 @@ error[E0046]: not all trait items implemented, missing: `Output`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0046"
diff --git a/src/test/ui/span/issue-24356.stderr b/src/test/ui/span/issue-24356.stderr
index 58fb943fef8..c529b258cb4 100644
--- a/src/test/ui/span/issue-24356.stderr
+++ b/src/test/ui/span/issue-24356.stderr
@@ -8,3 +8,4 @@ error[E0046]: not all trait items implemented, missing: `Target`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0046"
diff --git a/src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr b/src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr
index f61a0919501..3c6371aa968 100644
--- a/src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr
+++ b/src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr
@@ -11,3 +11,4 @@ error[E0597]: `d1` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-24805-dropck-trait-has-items.stderr b/src/test/ui/span/issue-24805-dropck-trait-has-items.stderr
index 662ec58805d..fcec340a70e 100644
--- a/src/test/ui/span/issue-24805-dropck-trait-has-items.stderr
+++ b/src/test/ui/span/issue-24805-dropck-trait-has-items.stderr
@@ -30,3 +30,4 @@ error[E0597]: `d1` does not live long enough
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-24895-copy-clone-dropck.stderr b/src/test/ui/span/issue-24895-copy-clone-dropck.stderr
index 1c68cacad7c..b10f5d7da1f 100644
--- a/src/test/ui/span/issue-24895-copy-clone-dropck.stderr
+++ b/src/test/ui/span/issue-24895-copy-clone-dropck.stderr
@@ -10,3 +10,4 @@ error[E0597]: `d1` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-25199.stderr b/src/test/ui/span/issue-25199.stderr
index af02e9d6d54..0a768468c51 100644
--- a/src/test/ui/span/issue-25199.stderr
+++ b/src/test/ui/span/issue-25199.stderr
@@ -22,3 +22,4 @@ error[E0597]: `container` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-26656.stderr b/src/test/ui/span/issue-26656.stderr
index 1d632271f81..a1124e6e8ed 100644
--- a/src/test/ui/span/issue-26656.stderr
+++ b/src/test/ui/span/issue-26656.stderr
@@ -10,3 +10,4 @@ error[E0597]: `ticking` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-27522.stderr b/src/test/ui/span/issue-27522.stderr
index dc02ad73ee2..4c816e047de 100644
--- a/src/test/ui/span/issue-27522.stderr
+++ b/src/test/ui/span/issue-27522.stderr
@@ -9,3 +9,4 @@ error[E0307]: invalid `self` type: &SomeType
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0307"
diff --git a/src/test/ui/span/issue-29106.stderr b/src/test/ui/span/issue-29106.stderr
index 24042e23fef..3d3aab1166c 100644
--- a/src/test/ui/span/issue-29106.stderr
+++ b/src/test/ui/span/issue-29106.stderr
@@ -20,3 +20,4 @@ error[E0597]: `x` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-29595.stderr b/src/test/ui/span/issue-29595.stderr
index 9046b90f0e9..61c46f1a4b9 100644
--- a/src/test/ui/span/issue-29595.stderr
+++ b/src/test/ui/span/issue-29595.stderr
@@ -12,3 +12,4 @@ note: required by `Tr::C`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/span/issue-33884.stderr b/src/test/ui/span/issue-33884.stderr
index 5a9c2051a71..48d697e7731 100644
--- a/src/test/ui/span/issue-33884.stderr
+++ b/src/test/ui/span/issue-33884.stderr
@@ -10,3 +10,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/span/issue-34264.stderr b/src/test/ui/span/issue-34264.stderr
index 18860a7456e..eb2b1b84201 100644
--- a/src/test/ui/span/issue-34264.stderr
+++ b/src/test/ui/span/issue-34264.stderr
@@ -45,3 +45,5 @@ error[E0061]: this function takes 2 parameters but 3 parameters were supplied
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0061, E0308
+If you want more information on an error, try using "rustc --explain E0061"
diff --git a/src/test/ui/span/issue-35987.stderr b/src/test/ui/span/issue-35987.stderr
index 5e7a492ca2a..5b09342456e 100644
--- a/src/test/ui/span/issue-35987.stderr
+++ b/src/test/ui/span/issue-35987.stderr
@@ -12,3 +12,5 @@ error[E0601]: main function not found
 
 error: cannot continue compilation due to previous error
 
+You've got a few errors: E0404, E0601
+If you want more information on an error, try using "rustc --explain E0404"
diff --git a/src/test/ui/span/issue-36530.stderr b/src/test/ui/span/issue-36530.stderr
index 7f392104393..8a9375a32e5 100644
--- a/src/test/ui/span/issue-36530.stderr
+++ b/src/test/ui/span/issue-36530.stderr
@@ -16,3 +16,4 @@ error[E0658]: The attribute `foo` is currently unknown to the compiler and may h
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/span/issue-36537.stderr b/src/test/ui/span/issue-36537.stderr
index 255700a55f3..24cabe55d0d 100644
--- a/src/test/ui/span/issue-36537.stderr
+++ b/src/test/ui/span/issue-36537.stderr
@@ -11,3 +11,4 @@ error[E0597]: `a` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-37767.stderr b/src/test/ui/span/issue-37767.stderr
index e9a1fe82f14..eab278d607b 100644
--- a/src/test/ui/span/issue-37767.stderr
+++ b/src/test/ui/span/issue-37767.stderr
@@ -57,3 +57,4 @@ note: candidate #2 is defined in the trait `F`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0034"
diff --git a/src/test/ui/span/issue-39018.stderr b/src/test/ui/span/issue-39018.stderr
index 70f8ecf42cb..e841dfc5840 100644
--- a/src/test/ui/span/issue-39018.stderr
+++ b/src/test/ui/span/issue-39018.stderr
@@ -32,3 +32,4 @@ help: you also need to borrow the `String` on the right to get a `&str`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/span/issue-39698.stderr b/src/test/ui/span/issue-39698.stderr
index 97d802f8398..888eb405a64 100644
--- a/src/test/ui/span/issue-39698.stderr
+++ b/src/test/ui/span/issue-39698.stderr
@@ -40,3 +40,4 @@ error[E0408]: variable `c` is not bound in all patterns
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0408"
diff --git a/src/test/ui/span/issue-40157.stderr b/src/test/ui/span/issue-40157.stderr
index cf33ccf8095..fa5036ae5a4 100644
--- a/src/test/ui/span/issue-40157.stderr
+++ b/src/test/ui/span/issue-40157.stderr
@@ -12,3 +12,4 @@ error[E0597]: `foo` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue-42234-unknown-receiver-type.stderr b/src/test/ui/span/issue-42234-unknown-receiver-type.stderr
index d87cec642f1..567d8f33ed6 100644
--- a/src/test/ui/span/issue-42234-unknown-receiver-type.stderr
+++ b/src/test/ui/span/issue-42234-unknown-receiver-type.stderr
@@ -15,3 +15,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/span/issue-7575.stderr b/src/test/ui/span/issue-7575.stderr
index aeb98e4cabc..df078c1330c 100644
--- a/src/test/ui/span/issue-7575.stderr
+++ b/src/test/ui/span/issue-7575.stderr
@@ -67,3 +67,4 @@ note: candidate #1 is defined in the trait `ManyImplTrait`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/span/issue28498-reject-ex1.stderr b/src/test/ui/span/issue28498-reject-ex1.stderr
index 8ade2f38eee..3504adc1602 100644
--- a/src/test/ui/span/issue28498-reject-ex1.stderr
+++ b/src/test/ui/span/issue28498-reject-ex1.stderr
@@ -22,3 +22,4 @@ error[E0597]: `foo.data` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue28498-reject-lifetime-param.stderr b/src/test/ui/span/issue28498-reject-lifetime-param.stderr
index eb287265dac..5b4a1129d79 100644
--- a/src/test/ui/span/issue28498-reject-lifetime-param.stderr
+++ b/src/test/ui/span/issue28498-reject-lifetime-param.stderr
@@ -22,3 +22,4 @@ error[E0597]: `first_dropped` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue28498-reject-passed-to-fn.stderr b/src/test/ui/span/issue28498-reject-passed-to-fn.stderr
index 53e0e02319f..a7497a1de01 100644
--- a/src/test/ui/span/issue28498-reject-passed-to-fn.stderr
+++ b/src/test/ui/span/issue28498-reject-passed-to-fn.stderr
@@ -22,3 +22,4 @@ error[E0597]: `first_dropped` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/issue28498-reject-trait-bound.stderr b/src/test/ui/span/issue28498-reject-trait-bound.stderr
index 6b53745bbc8..18512847238 100644
--- a/src/test/ui/span/issue28498-reject-trait-bound.stderr
+++ b/src/test/ui/span/issue28498-reject-trait-bound.stderr
@@ -22,3 +22,4 @@ error[E0597]: `first_dropped` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/loan-extend.stderr b/src/test/ui/span/loan-extend.stderr
index 280ddd6581a..af498129fc4 100644
--- a/src/test/ui/span/loan-extend.stderr
+++ b/src/test/ui/span/loan-extend.stderr
@@ -11,3 +11,4 @@ error[E0597]: `short` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/missing-unit-argument.stderr b/src/test/ui/span/missing-unit-argument.stderr
index 77d037d497b..752087ffb92 100644
--- a/src/test/ui/span/missing-unit-argument.stderr
+++ b/src/test/ui/span/missing-unit-argument.stderr
@@ -67,3 +67,4 @@ help: expected the unit value `()`; create it with empty parentheses
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/span/move-closure.stderr b/src/test/ui/span/move-closure.stderr
index 9135a26bbaf..f8f17404cf2 100644
--- a/src/test/ui/span/move-closure.stderr
+++ b/src/test/ui/span/move-closure.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/span/multiline-span-E0072.stderr b/src/test/ui/span/multiline-span-E0072.stderr
index 124a53219a9..314c52e59d3 100644
--- a/src/test/ui/span/multiline-span-E0072.stderr
+++ b/src/test/ui/span/multiline-span-E0072.stderr
@@ -14,3 +14,4 @@ error[E0072]: recursive type `ListNode` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/span/multiline-span-simple.stderr b/src/test/ui/span/multiline-span-simple.stderr
index a18dfeb31d9..b1e48069fed 100644
--- a/src/test/ui/span/multiline-span-simple.stderr
+++ b/src/test/ui/span/multiline-span-simple.stderr
@@ -8,3 +8,4 @@ error[E0277]: cannot add `()` to `u32`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/span/mut-arg-hint.stderr b/src/test/ui/span/mut-arg-hint.stderr
index 02c607ddc37..e79ca70f3d2 100644
--- a/src/test/ui/span/mut-arg-hint.stderr
+++ b/src/test/ui/span/mut-arg-hint.stderr
@@ -24,3 +24,4 @@ error[E0596]: cannot borrow immutable borrowed content `*a` as mutable
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0596"
diff --git a/src/test/ui/span/mut-ptr-cant-outlive-ref.stderr b/src/test/ui/span/mut-ptr-cant-outlive-ref.stderr
index e39af850174..c08d15cd570 100644
--- a/src/test/ui/span/mut-ptr-cant-outlive-ref.stderr
+++ b/src/test/ui/span/mut-ptr-cant-outlive-ref.stderr
@@ -11,3 +11,4 @@ error[E0597]: `b` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/non-existing-module-import.stderr b/src/test/ui/span/non-existing-module-import.stderr
index 74f5dac4937..2b45d92724c 100644
--- a/src/test/ui/span/non-existing-module-import.stderr
+++ b/src/test/ui/span/non-existing-module-import.stderr
@@ -6,3 +6,4 @@ error[E0432]: unresolved import `std::bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0432"
diff --git a/src/test/ui/span/pub-struct-field.stderr b/src/test/ui/span/pub-struct-field.stderr
index 5b303758d2b..fe19259a140 100644
--- a/src/test/ui/span/pub-struct-field.stderr
+++ b/src/test/ui/span/pub-struct-field.stderr
@@ -17,3 +17,4 @@ error[E0124]: field `bar` is already declared
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0124"
diff --git a/src/test/ui/span/range-2.stderr b/src/test/ui/span/range-2.stderr
index 106a8a7667f..e580022dfcb 100644
--- a/src/test/ui/span/range-2.stderr
+++ b/src/test/ui/span/range-2.stderr
@@ -22,3 +22,4 @@ error[E0597]: `b` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/recursive-type-field.stderr b/src/test/ui/span/recursive-type-field.stderr
index bd9f5f032ef..6b8f6530233 100644
--- a/src/test/ui/span/recursive-type-field.stderr
+++ b/src/test/ui/span/recursive-type-field.stderr
@@ -29,3 +29,4 @@ error[E0072]: recursive type `Bar` has infinite size
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr b/src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr
index ca453c22cce..c437fd1b48a 100644
--- a/src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr
+++ b/src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr
@@ -11,3 +11,4 @@ error[E0597]: `c` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr b/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr
index 12f70676220..19290139efc 100644
--- a/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr
+++ b/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr
@@ -11,3 +11,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/regions-close-over-type-parameter-2.stderr b/src/test/ui/span/regions-close-over-type-parameter-2.stderr
index b90e67d5a3c..f4a7ed61928 100644
--- a/src/test/ui/span/regions-close-over-type-parameter-2.stderr
+++ b/src/test/ui/span/regions-close-over-type-parameter-2.stderr
@@ -11,3 +11,4 @@ error[E0597]: `tmp0` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/regions-escape-loop-via-variable.stderr b/src/test/ui/span/regions-escape-loop-via-variable.stderr
index 8cdf4e2d822..780276d770e 100644
--- a/src/test/ui/span/regions-escape-loop-via-variable.stderr
+++ b/src/test/ui/span/regions-escape-loop-via-variable.stderr
@@ -11,3 +11,4 @@ error[E0597]: `x` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
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 73ff449b2b5..71fc4c24ebd 100644
--- a/src/test/ui/span/regions-escape-loop-via-vec.stderr
+++ b/src/test/ui/span/regions-escape-loop-via-vec.stderr
@@ -37,3 +37,5 @@ error[E0506]: cannot assign to `x` because it is borrowed
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0503, E0506, E0597
+If you want more information on an error, try using "rustc --explain E0503"
diff --git a/src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr b/src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr
index 1fc7e05f496..10b6c05b5f4 100644
--- a/src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr
+++ b/src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr
@@ -12,3 +12,4 @@ error[E0597]: `*x` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/send-is-not-static-ensures-scoping.stderr b/src/test/ui/span/send-is-not-static-ensures-scoping.stderr
index 657682d962d..5d8e4ff86ee 100644
--- a/src/test/ui/span/send-is-not-static-ensures-scoping.stderr
+++ b/src/test/ui/span/send-is-not-static-ensures-scoping.stderr
@@ -26,3 +26,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/send-is-not-static-std-sync-2.stderr b/src/test/ui/span/send-is-not-static-std-sync-2.stderr
index af8b7aeaa63..2d7e4667a40 100644
--- a/src/test/ui/span/send-is-not-static-std-sync-2.stderr
+++ b/src/test/ui/span/send-is-not-static-std-sync-2.stderr
@@ -34,3 +34,4 @@ error[E0597]: `x` does not live long enough
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
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 7c61398a864..66e2abba710 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,3 +57,5 @@ error[E0505]: cannot move out of `y` because it is borrowed
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0505, E0597
+If you want more information on an error, try using "rustc --explain E0505"
diff --git a/src/test/ui/span/slice-borrow.stderr b/src/test/ui/span/slice-borrow.stderr
index 540aae0983a..6f6a187a075 100644
--- a/src/test/ui/span/slice-borrow.stderr
+++ b/src/test/ui/span/slice-borrow.stderr
@@ -13,3 +13,4 @@ error[E0597]: borrowed value does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/suggestion-non-ascii.stderr b/src/test/ui/span/suggestion-non-ascii.stderr
index 9ee8ccb01d0..02c0b73c0c7 100644
--- a/src/test/ui/span/suggestion-non-ascii.stderr
+++ b/src/test/ui/span/suggestion-non-ascii.stderr
@@ -6,3 +6,4 @@ error[E0608]: cannot index into a value of type `({integer},)`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0608"
diff --git a/src/test/ui/span/type-binding.stderr b/src/test/ui/span/type-binding.stderr
index dc37acaf3f9..984504071ac 100644
--- a/src/test/ui/span/type-binding.stderr
+++ b/src/test/ui/span/type-binding.stderr
@@ -6,3 +6,4 @@ error[E0220]: associated type `Trget` not found for `std::ops::Deref`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0220"
diff --git a/src/test/ui/span/typo-suggestion.stderr b/src/test/ui/span/typo-suggestion.stderr
index 2a084b1ae67..31247bddbc8 100644
--- a/src/test/ui/span/typo-suggestion.stderr
+++ b/src/test/ui/span/typo-suggestion.stderr
@@ -12,3 +12,4 @@ error[E0425]: cannot find value `fob` in this scope
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0425"
diff --git a/src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr b/src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr
index cc8e58179ed..26417e94b8b 100644
--- a/src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr
+++ b/src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr
@@ -22,3 +22,4 @@ error[E0597]: `c1` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/vec_refs_data_with_early_death.stderr b/src/test/ui/span/vec_refs_data_with_early_death.stderr
index acfc7babe01..8402826a0bc 100644
--- a/src/test/ui/span/vec_refs_data_with_early_death.stderr
+++ b/src/test/ui/span/vec_refs_data_with_early_death.stderr
@@ -22,3 +22,4 @@ error[E0597]: `y` does not live long enough
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/span/wf-method-late-bound-regions.stderr b/src/test/ui/span/wf-method-late-bound-regions.stderr
index 8dd77259035..a0fe9d1ae18 100644
--- a/src/test/ui/span/wf-method-late-bound-regions.stderr
+++ b/src/test/ui/span/wf-method-late-bound-regions.stderr
@@ -11,3 +11,4 @@ error[E0597]: `pointer` does not live long enough
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0597"
diff --git a/src/test/ui/specialization-feature-gate-default.stderr b/src/test/ui/specialization-feature-gate-default.stderr
index 96e0fe13dc9..c1fdb8aea13 100644
--- a/src/test/ui/specialization-feature-gate-default.stderr
+++ b/src/test/ui/specialization-feature-gate-default.stderr
@@ -8,3 +8,4 @@ error[E0658]: specialization is unstable (see issue #31844)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/specialization-feature-gate-overlap.stderr b/src/test/ui/specialization-feature-gate-overlap.stderr
index 6ff261c696d..77554531f98 100644
--- a/src/test/ui/specialization-feature-gate-overlap.stderr
+++ b/src/test/ui/specialization-feature-gate-overlap.stderr
@@ -9,3 +9,4 @@ error[E0119]: conflicting implementations of trait `Foo` for type `u8`:
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0119"
diff --git a/src/test/ui/static-lifetime.stderr b/src/test/ui/static-lifetime.stderr
index 24ba27b27ad..fea70e922f8 100644
--- a/src/test/ui/static-lifetime.stderr
+++ b/src/test/ui/static-lifetime.stderr
@@ -13,3 +13,4 @@ note: lifetime parameter instantiated with the lifetime 'a as defined on the imp
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0478"
diff --git a/src/test/ui/str-concat-on-double-ref.stderr b/src/test/ui/str-concat-on-double-ref.stderr
index 15d57813301..cc0dcb177af 100644
--- a/src/test/ui/str-concat-on-double-ref.stderr
+++ b/src/test/ui/str-concat-on-double-ref.stderr
@@ -8,3 +8,4 @@ error[E0369]: binary operation `+` cannot be applied to type `&std::string::Stri
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/str-lit-type-mismatch.stderr b/src/test/ui/str-lit-type-mismatch.stderr
index b232bf74666..448f5b5aa14 100644
--- a/src/test/ui/str-lit-type-mismatch.stderr
+++ b/src/test/ui/str-lit-type-mismatch.stderr
@@ -36,3 +36,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/struct-fields-decl-dupe.stderr b/src/test/ui/struct-fields-decl-dupe.stderr
index 8f2180716c9..dae761fcb05 100644
--- a/src/test/ui/struct-fields-decl-dupe.stderr
+++ b/src/test/ui/struct-fields-decl-dupe.stderr
@@ -8,3 +8,4 @@ error[E0124]: field `foo` is already declared
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0124"
diff --git a/src/test/ui/struct-fields-hints-no-dupe.stderr b/src/test/ui/struct-fields-hints-no-dupe.stderr
index 0de22d1a84f..5a08a5c4841 100644
--- a/src/test/ui/struct-fields-hints-no-dupe.stderr
+++ b/src/test/ui/struct-fields-hints-no-dupe.stderr
@@ -6,3 +6,4 @@ error[E0560]: struct `A` has no field named `bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0560"
diff --git a/src/test/ui/struct-fields-hints.stderr b/src/test/ui/struct-fields-hints.stderr
index f602f398acd..1f0995f1dc0 100644
--- a/src/test/ui/struct-fields-hints.stderr
+++ b/src/test/ui/struct-fields-hints.stderr
@@ -6,3 +6,4 @@ error[E0560]: struct `A` has no field named `bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0560"
diff --git a/src/test/ui/struct-fields-too-many.stderr b/src/test/ui/struct-fields-too-many.stderr
index d61dd8da6ec..6818a737ce0 100644
--- a/src/test/ui/struct-fields-too-many.stderr
+++ b/src/test/ui/struct-fields-too-many.stderr
@@ -8,3 +8,4 @@ error[E0560]: struct `BuildData` has no field named `bar`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0560"
diff --git a/src/test/ui/struct-path-self-type-mismatch.stderr b/src/test/ui/struct-path-self-type-mismatch.stderr
index a98ec0ec4b2..9b51b13873c 100644
--- a/src/test/ui/struct-path-self-type-mismatch.stderr
+++ b/src/test/ui/struct-path-self-type-mismatch.stderr
@@ -30,3 +30,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggest-private-fields.stderr b/src/test/ui/suggest-private-fields.stderr
index a451f9c8fe7..d5dda75bfce 100644
--- a/src/test/ui/suggest-private-fields.stderr
+++ b/src/test/ui/suggest-private-fields.stderr
@@ -26,3 +26,4 @@ error[E0560]: struct `A` has no field named `bb`
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0560"
diff --git a/src/test/ui/suggestions/closure-immutable-outer-variable.stderr b/src/test/ui/suggestions/closure-immutable-outer-variable.stderr
index f272a3582c6..da51bda60ce 100644
--- a/src/test/ui/suggestions/closure-immutable-outer-variable.stderr
+++ b/src/test/ui/suggestions/closure-immutable-outer-variable.stderr
@@ -8,3 +8,4 @@ error[E0594]: cannot assign to captured outer variable in an `FnMut` closure
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0594"
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr b/src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr
index bbe8fe7345a..81b6378df51 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr
@@ -11,3 +11,4 @@ error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr b/src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr
index 083245f0b8e..7de446b3f14 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr
@@ -121,3 +121,4 @@ error[E0599]: no method named `f3` found for type `FuncContainer` in the current
 
 error: aborting due to 11 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr b/src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr
index d6a837a17ae..98f8f86d846 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr
@@ -11,3 +11,4 @@ error[E0599]: no method named `example` found for type `Example` in the current
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr b/src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr
index 28e21610214..1b606672437 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr
@@ -24,3 +24,4 @@ error[E0599]: no method named `c_fn_ptr` found for type `&D` in the current scop
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/confuse-field-and-method/private-field.stderr b/src/test/ui/suggestions/confuse-field-and-method/private-field.stderr
index caf78af6eb9..7e3d66fd6da 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/private-field.stderr
+++ b/src/test/ui/suggestions/confuse-field-and-method/private-field.stderr
@@ -9,3 +9,4 @@ error[E0599]: no method named `dog_age` found for type `animal::Dog` in the curr
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/conversion-methods.stderr b/src/test/ui/suggestions/conversion-methods.stderr
index 96fdc29d952..8271b841913 100644
--- a/src/test/ui/suggestions/conversion-methods.stderr
+++ b/src/test/ui/suggestions/conversion-methods.stderr
@@ -48,3 +48,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/dont-suggest-dereference-on-arg.stderr b/src/test/ui/suggestions/dont-suggest-dereference-on-arg.stderr
index 5413dcddcd7..6cfbce39019 100644
--- a/src/test/ui/suggestions/dont-suggest-dereference-on-arg.stderr
+++ b/src/test/ui/suggestions/dont-suggest-dereference-on-arg.stderr
@@ -8,3 +8,4 @@ error[E0658]: non-reference pattern used to match a reference (see issue #42640)
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0658"
diff --git a/src/test/ui/suggestions/dont-suggest-private-trait-method.stderr b/src/test/ui/suggestions/dont-suggest-private-trait-method.stderr
index 97f424f9fbf..7a387a4cd9e 100644
--- a/src/test/ui/suggestions/dont-suggest-private-trait-method.stderr
+++ b/src/test/ui/suggestions/dont-suggest-private-trait-method.stderr
@@ -9,3 +9,4 @@ error[E0599]: no function or associated item named `new` found for type `T` in t
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/extern-crate-rename.stderr b/src/test/ui/suggestions/extern-crate-rename.stderr
index 6268935b08c..b35d92100ab 100644
--- a/src/test/ui/suggestions/extern-crate-rename.stderr
+++ b/src/test/ui/suggestions/extern-crate-rename.stderr
@@ -13,3 +13,4 @@ error[E0259]: the name `m1` is defined multiple times
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0259"
diff --git a/src/test/ui/suggestions/fn-closure-mutable-capture.stderr b/src/test/ui/suggestions/fn-closure-mutable-capture.stderr
index 6c79e447a3c..5a7b8194733 100644
--- a/src/test/ui/suggestions/fn-closure-mutable-capture.stderr
+++ b/src/test/ui/suggestions/fn-closure-mutable-capture.stderr
@@ -13,3 +13,4 @@ help: consider changing this closure to take self by mutable reference
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0594"
diff --git a/src/test/ui/suggestions/for-c-in-str.stderr b/src/test/ui/suggestions/for-c-in-str.stderr
index 88a7b1b49d6..edc30706d3a 100644
--- a/src/test/ui/suggestions/for-c-in-str.stderr
+++ b/src/test/ui/suggestions/for-c-in-str.stderr
@@ -9,3 +9,4 @@ error[E0277]: the trait bound `&str: std::iter::Iterator` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/suggestions/issue-32354-suggest-import-rename.stderr b/src/test/ui/suggestions/issue-32354-suggest-import-rename.stderr
index ae892db364b..dea67758893 100644
--- a/src/test/ui/suggestions/issue-32354-suggest-import-rename.stderr
+++ b/src/test/ui/suggestions/issue-32354-suggest-import-rename.stderr
@@ -14,3 +14,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0252"
diff --git a/src/test/ui/suggestions/issue-43420-no-over-suggest.stderr b/src/test/ui/suggestions/issue-43420-no-over-suggest.stderr
index c3f64fef50c..08c098e82cf 100644
--- a/src/test/ui/suggestions/issue-43420-no-over-suggest.stderr
+++ b/src/test/ui/suggestions/issue-43420-no-over-suggest.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr b/src/test/ui/suggestions/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr
index 01dba62a851..d44b1af385d 100644
--- a/src/test/ui/suggestions/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr
+++ b/src/test/ui/suggestions/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr
@@ -12,3 +12,4 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0259"
diff --git a/src/test/ui/suggestions/issue-46756-consider-borrowing-cast-or-binexpr.stderr b/src/test/ui/suggestions/issue-46756-consider-borrowing-cast-or-binexpr.stderr
index 4b3e8a32025..ae0204ae0d5 100644
--- a/src/test/ui/suggestions/issue-46756-consider-borrowing-cast-or-binexpr.stderr
+++ b/src/test/ui/suggestions/issue-46756-consider-borrowing-cast-or-binexpr.stderr
@@ -24,3 +24,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/method-on-ambiguous-numeric-type.stderr b/src/test/ui/suggestions/method-on-ambiguous-numeric-type.stderr
index c2b292c642c..287835f2136 100644
--- a/src/test/ui/suggestions/method-on-ambiguous-numeric-type.stderr
+++ b/src/test/ui/suggestions/method-on-ambiguous-numeric-type.stderr
@@ -20,3 +20,4 @@ help: you must specify a type for this binding, like `f32`
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0689"
diff --git a/src/test/ui/suggestions/numeric-cast-2.stderr b/src/test/ui/suggestions/numeric-cast-2.stderr
index 90086d247d6..402a99f6643 100644
--- a/src/test/ui/suggestions/numeric-cast-2.stderr
+++ b/src/test/ui/suggestions/numeric-cast-2.stderr
@@ -18,3 +18,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/numeric-cast.stderr b/src/test/ui/suggestions/numeric-cast.stderr
index cef22ad922e..3e2da79ae08 100644
--- a/src/test/ui/suggestions/numeric-cast.stderr
+++ b/src/test/ui/suggestions/numeric-cast.stderr
@@ -904,3 +904,4 @@ help: you can cast an `i8` to `i32`, which will sign-extend the source value
 
 error: aborting due to 134 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/return-type.stderr b/src/test/ui/suggestions/return-type.stderr
index 19c5d72dd7b..f0b5e5e0530 100644
--- a/src/test/ui/suggestions/return-type.stderr
+++ b/src/test/ui/suggestions/return-type.stderr
@@ -17,3 +17,4 @@ help: try adding a return type
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/suggestions/str-array-assignment.stderr b/src/test/ui/suggestions/str-array-assignment.stderr
index 4ef18e640a7..084ddfd1e2e 100644
--- a/src/test/ui/suggestions/str-array-assignment.stderr
+++ b/src/test/ui/suggestions/str-array-assignment.stderr
@@ -44,3 +44,5 @@ error[E0308]: mismatched types
 
 error: aborting due to 4 previous errors
 
+You've got a few errors: E0277, E0308
+If you want more information on an error, try using "rustc --explain E0277"
diff --git a/src/test/ui/suggestions/suggest-labels.stderr b/src/test/ui/suggestions/suggest-labels.stderr
index c82b5decfd8..f4773fc5bdd 100644
--- a/src/test/ui/suggestions/suggest-labels.stderr
+++ b/src/test/ui/suggestions/suggest-labels.stderr
@@ -18,3 +18,4 @@ error[E0426]: use of undeclared label `'longlable`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0426"
diff --git a/src/test/ui/suggestions/suggest-methods.stderr b/src/test/ui/suggestions/suggest-methods.stderr
index d3d8d302c70..a12c3b1a2dc 100644
--- a/src/test/ui/suggestions/suggest-methods.stderr
+++ b/src/test/ui/suggestions/suggest-methods.stderr
@@ -33,3 +33,4 @@ error[E0599]: no method named `count_o` found for type `u32` in the current scop
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0599"
diff --git a/src/test/ui/suggestions/try-on-option.stderr b/src/test/ui/suggestions/try-on-option.stderr
index dfe950818e7..b9ca5b69c7c 100644
--- a/src/test/ui/suggestions/try-on-option.stderr
+++ b/src/test/ui/suggestions/try-on-option.stderr
@@ -17,3 +17,4 @@ error[E0277]: the `?` operator can only be used in a function that returns `Resu
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/suggestions/try-operator-on-main.stderr b/src/test/ui/suggestions/try-operator-on-main.stderr
index e97823a3d5d..503e55a83ff 100644
--- a/src/test/ui/suggestions/try-operator-on-main.stderr
+++ b/src/test/ui/suggestions/try-operator-on-main.stderr
@@ -39,3 +39,4 @@ error[E0277]: the `?` operator can only be applied to values that implement `std
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/suggestions/type-ascription-instead-of-initializer.stderr b/src/test/ui/suggestions/type-ascription-instead-of-initializer.stderr
index b14d233acd6..58f5ea39b26 100644
--- a/src/test/ui/suggestions/type-ascription-instead-of-initializer.stderr
+++ b/src/test/ui/suggestions/type-ascription-instead-of-initializer.stderr
@@ -15,3 +15,4 @@ error[E0061]: this function takes 1 parameter but 2 parameters were supplied
 
 error: aborting due to 2 previous errors
 
+If you want more information on this error, try using "rustc --explain E0061"
diff --git a/src/test/ui/suggestions/type-ascription-with-fn-call.stderr b/src/test/ui/suggestions/type-ascription-with-fn-call.stderr
index d5e0b00f3df..ac000584fdc 100644
--- a/src/test/ui/suggestions/type-ascription-with-fn-call.stderr
+++ b/src/test/ui/suggestions/type-ascription-with-fn-call.stderr
@@ -11,3 +11,4 @@ error[E0573]: expected type, found function `f`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0573"
diff --git a/src/test/ui/svh-change-lit.stderr b/src/test/ui/svh-change-lit.stderr
index 94e845c527c..3659dc091e1 100644
--- a/src/test/ui/svh-change-lit.stderr
+++ b/src/test/ui/svh-change-lit.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-change-significant-cfg.stderr b/src/test/ui/svh-change-significant-cfg.stderr
index d2744771ec7..57bed3ffff2 100644
--- a/src/test/ui/svh-change-significant-cfg.stderr
+++ b/src/test/ui/svh-change-significant-cfg.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-change-trait-bound.stderr b/src/test/ui/svh-change-trait-bound.stderr
index e272f399f79..eecab2b4e83 100644
--- a/src/test/ui/svh-change-trait-bound.stderr
+++ b/src/test/ui/svh-change-trait-bound.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-change-type-arg.stderr b/src/test/ui/svh-change-type-arg.stderr
index d94dd5e522e..eff1ca49c06 100644
--- a/src/test/ui/svh-change-type-arg.stderr
+++ b/src/test/ui/svh-change-type-arg.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-change-type-ret.stderr b/src/test/ui/svh-change-type-ret.stderr
index 4484faabbf4..c9f57ae2d85 100644
--- a/src/test/ui/svh-change-type-ret.stderr
+++ b/src/test/ui/svh-change-type-ret.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-change-type-static.stderr b/src/test/ui/svh-change-type-static.stderr
index 24c5acbf6f2..0f278d8bb6e 100644
--- a/src/test/ui/svh-change-type-static.stderr
+++ b/src/test/ui/svh-change-type-static.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `a` which `b` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/svh-use-trait.stderr b/src/test/ui/svh-use-trait.stderr
index e695d60e2a1..b93c2d4a382 100644
--- a/src/test/ui/svh-use-trait.stderr
+++ b/src/test/ui/svh-use-trait.stderr
@@ -11,3 +11,4 @@ error[E0460]: found possibly newer version of crate `uta` which `utb` depends on
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0460"
diff --git a/src/test/ui/switched-expectations.stderr b/src/test/ui/switched-expectations.stderr
index 822ffeb0d32..2d2c94f6d57 100644
--- a/src/test/ui/switched-expectations.stderr
+++ b/src/test/ui/switched-expectations.stderr
@@ -9,3 +9,4 @@ error[E0308]: mismatched types
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/token/issue-10636-2.stderr b/src/test/ui/token/issue-10636-2.stderr
index b4f0f30c6c1..d661702f29e 100644
--- a/src/test/ui/token/issue-10636-2.stderr
+++ b/src/test/ui/token/issue-10636-2.stderr
@@ -26,3 +26,4 @@ error[E0601]: main function not found
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0601"
diff --git a/src/test/ui/token/issue-15980.stderr b/src/test/ui/token/issue-15980.stderr
index 71cd4b28da7..d971b3f110a 100644
--- a/src/test/ui/token/issue-15980.stderr
+++ b/src/test/ui/token/issue-15980.stderr
@@ -24,3 +24,4 @@ error[E0412]: cannot find type `IoResult` in module `io`
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0412"
diff --git a/src/test/ui/token/issue-41155.stderr b/src/test/ui/token/issue-41155.stderr
index 707784272ed..1189abcd78b 100644
--- a/src/test/ui/token/issue-41155.stderr
+++ b/src/test/ui/token/issue-41155.stderr
@@ -16,3 +16,5 @@ error[E0601]: main function not found
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0412, E0601
+If you want more information on an error, try using "rustc --explain E0412"
diff --git a/src/test/ui/trait-alias.stderr b/src/test/ui/trait-alias.stderr
index ad299dc8414..273b42b660e 100644
--- a/src/test/ui/trait-alias.stderr
+++ b/src/test/ui/trait-alias.stderr
@@ -36,3 +36,4 @@ error[E0645]: trait aliases are not yet implemented (see issue #41517)
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0645"
diff --git a/src/test/ui/trait-duplicate-methods.stderr b/src/test/ui/trait-duplicate-methods.stderr
index 5f796777c41..be743e9663b 100644
--- a/src/test/ui/trait-duplicate-methods.stderr
+++ b/src/test/ui/trait-duplicate-methods.stderr
@@ -10,3 +10,4 @@ error[E0428]: the name `orange` is defined multiple times
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0428"
diff --git a/src/test/ui/trait-method-private.stderr b/src/test/ui/trait-method-private.stderr
index 7406541a9da..5e54743ce90 100644
--- a/src/test/ui/trait-method-private.stderr
+++ b/src/test/ui/trait-method-private.stderr
@@ -12,3 +12,4 @@ help: the following trait is implemented but not in scope, perhaps add a `use` f
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0624"
diff --git a/src/test/ui/trait-safety-fn-body.stderr b/src/test/ui/trait-safety-fn-body.stderr
index ab8793f8a74..da294b57d1e 100644
--- a/src/test/ui/trait-safety-fn-body.stderr
+++ b/src/test/ui/trait-safety-fn-body.stderr
@@ -6,3 +6,4 @@ error[E0133]: dereference of raw pointer requires unsafe function or block
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0133"
diff --git a/src/test/ui/trait-suggest-where-clause.stderr b/src/test/ui/trait-suggest-where-clause.stderr
index 57d2b9aae78..9c2ee6476cc 100644
--- a/src/test/ui/trait-suggest-where-clause.stderr
+++ b/src/test/ui/trait-suggest-where-clause.stderr
@@ -65,3 +65,4 @@ error[E0277]: the trait bound `[&U]: std::marker::Sized` is not satisfied
 
 error: aborting due to 7 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/traits-multidispatch-convert-ambig-dest.stderr b/src/test/ui/traits-multidispatch-convert-ambig-dest.stderr
index 8304fb3b797..ad387282d71 100644
--- a/src/test/ui/traits-multidispatch-convert-ambig-dest.stderr
+++ b/src/test/ui/traits-multidispatch-convert-ambig-dest.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/transmute/main.stderr b/src/test/ui/transmute/main.stderr
index b7e34d3e0bc..716cdd4b241 100644
--- a/src/test/ui/transmute/main.stderr
+++ b/src/test/ui/transmute/main.stderr
@@ -36,3 +36,4 @@ error[E0512]: transmute called with types of different sizes
 
 error: aborting due to 4 previous errors
 
+If you want more information on this error, try using "rustc --explain E0512"
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 197daf1b795..6a8c486d438 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,3 +88,5 @@ error[E0591]: can't transmute zero-sized type
 
 error: aborting due to 9 previous errors
 
+You've got a few errors: E0512, E0591
+If you want more information on an error, try using "rustc --explain E0512"
diff --git a/src/test/ui/transmute/transmute-type-parameters.stderr b/src/test/ui/transmute/transmute-type-parameters.stderr
index 816c62812f3..a52c43fbbad 100644
--- a/src/test/ui/transmute/transmute-type-parameters.stderr
+++ b/src/test/ui/transmute/transmute-type-parameters.stderr
@@ -54,3 +54,4 @@ error[E0512]: transmute called with types of different sizes
 
 error: aborting due to 6 previous errors
 
+If you want more information on this error, try using "rustc --explain E0512"
diff --git a/src/test/ui/type-annotation-needed.stderr b/src/test/ui/type-annotation-needed.stderr
index 7d49afbaff8..11d4b6b7d4d 100644
--- a/src/test/ui/type-annotation-needed.stderr
+++ b/src/test/ui/type-annotation-needed.stderr
@@ -12,3 +12,4 @@ note: required by `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0283"
diff --git a/src/test/ui/type-check/assignment-in-if.stderr b/src/test/ui/type-check/assignment-in-if.stderr
index fffdca17d84..f2f29d31c11 100644
--- a/src/test/ui/type-check/assignment-in-if.stderr
+++ b/src/test/ui/type-check/assignment-in-if.stderr
@@ -57,3 +57,4 @@ error[E0308]: mismatched types
 
 error: aborting due to 5 previous errors
 
+If you want more information on this error, try using "rustc --explain E0308"
diff --git a/src/test/ui/type-check/cannot_infer_local_or_array.stderr b/src/test/ui/type-check/cannot_infer_local_or_array.stderr
index 19369f5ca60..6cda5ed1242 100644
--- a/src/test/ui/type-check/cannot_infer_local_or_array.stderr
+++ b/src/test/ui/type-check/cannot_infer_local_or_array.stderr
@@ -8,3 +8,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/type-check/cannot_infer_local_or_vec.stderr b/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
index bbbcb9158ae..439310367c5 100644
--- a/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
+++ b/src/test/ui/type-check/cannot_infer_local_or_vec.stderr
@@ -10,3 +10,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr b/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
index 6c47624d6dc..9e21fc2be10 100644
--- a/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
+++ b/src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
@@ -10,3 +10,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/type-check/issue-22897.stderr b/src/test/ui/type-check/issue-22897.stderr
index 5ee350746be..8500c53b97b 100644
--- a/src/test/ui/type-check/issue-22897.stderr
+++ b/src/test/ui/type-check/issue-22897.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/type-check/issue-40294.stderr b/src/test/ui/type-check/issue-40294.stderr
index cf270afdeb1..a1e6ab09d21 100644
--- a/src/test/ui/type-check/issue-40294.stderr
+++ b/src/test/ui/type-check/issue-40294.stderr
@@ -18,3 +18,4 @@ note: required by `Foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0283"
diff --git a/src/test/ui/type-check/issue-41314.stderr b/src/test/ui/type-check/issue-41314.stderr
index 569924da6f4..97fcc6f1cd9 100644
--- a/src/test/ui/type-check/issue-41314.stderr
+++ b/src/test/ui/type-check/issue-41314.stderr
@@ -14,3 +14,5 @@ error[E0027]: pattern does not mention field `0`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0026, E0027
+If you want more information on an error, try using "rustc --explain E0026"
diff --git a/src/test/ui/type-check/missing_trait_impl.stderr b/src/test/ui/type-check/missing_trait_impl.stderr
index 64f8167eb1d..87add3efe09 100644
--- a/src/test/ui/type-check/missing_trait_impl.stderr
+++ b/src/test/ui/type-check/missing_trait_impl.stderr
@@ -8,3 +8,4 @@ error[E0369]: binary operation `+` cannot be applied to type `T`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0369"
diff --git a/src/test/ui/type-check/unknown_type_for_closure.stderr b/src/test/ui/type-check/unknown_type_for_closure.stderr
index 1d8c0ddc8b6..01d13ceb060 100644
--- a/src/test/ui/type-check/unknown_type_for_closure.stderr
+++ b/src/test/ui/type-check/unknown_type_for_closure.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/type-recursive.stderr b/src/test/ui/type-recursive.stderr
index 4c764529797..e76dd9badb5 100644
--- a/src/test/ui/type-recursive.stderr
+++ b/src/test/ui/type-recursive.stderr
@@ -11,3 +11,4 @@ error[E0072]: recursive type `t1` has infinite size
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0072"
diff --git a/src/test/ui/typeck-builtin-bound-type-parameters.stderr b/src/test/ui/typeck-builtin-bound-type-parameters.stderr
index cf280bf1cd3..42bda14e341 100644
--- a/src/test/ui/typeck-builtin-bound-type-parameters.stderr
+++ b/src/test/ui/typeck-builtin-bound-type-parameters.stderr
@@ -36,3 +36,5 @@ error[E0244]: wrong number of type arguments: expected 0, found 1
 
 error: aborting due to 6 previous errors
 
+You've got a few errors: E0107, E0244
+If you want more information on an error, try using "rustc --explain E0107"
diff --git a/src/test/ui/typeck_type_placeholder_item.stderr b/src/test/ui/typeck_type_placeholder_item.stderr
index 39e42731576..98fe6ee1c96 100644
--- a/src/test/ui/typeck_type_placeholder_item.stderr
+++ b/src/test/ui/typeck_type_placeholder_item.stderr
@@ -204,3 +204,4 @@ error[E0121]: the type placeholder `_` is not allowed within types on item signa
 
 error: aborting due to 34 previous errors
 
+If you want more information on this error, try using "rustc --explain E0121"
diff --git a/src/test/ui/typeck_type_placeholder_lifetime_1.stderr b/src/test/ui/typeck_type_placeholder_lifetime_1.stderr
index 8f017e6d9a2..1227da4b0de 100644
--- a/src/test/ui/typeck_type_placeholder_lifetime_1.stderr
+++ b/src/test/ui/typeck_type_placeholder_lifetime_1.stderr
@@ -6,3 +6,4 @@ error[E0244]: wrong number of type arguments: expected 1, found 2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0244"
diff --git a/src/test/ui/typeck_type_placeholder_lifetime_2.stderr b/src/test/ui/typeck_type_placeholder_lifetime_2.stderr
index 396715f57ab..9352ee9e018 100644
--- a/src/test/ui/typeck_type_placeholder_lifetime_2.stderr
+++ b/src/test/ui/typeck_type_placeholder_lifetime_2.stderr
@@ -6,3 +6,4 @@ error[E0244]: wrong number of type arguments: expected 1, found 2
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0244"
diff --git a/src/test/ui/unboxed-closure-no-cyclic-sig.stderr b/src/test/ui/unboxed-closure-no-cyclic-sig.stderr
index 75a87f70660..0560f1de716 100644
--- a/src/test/ui/unboxed-closure-no-cyclic-sig.stderr
+++ b/src/test/ui/unboxed-closure-no-cyclic-sig.stderr
@@ -10,3 +10,4 @@ error[E0644]: closure/generator type that references itself
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0644"
diff --git a/src/test/ui/unboxed-closure-sugar-wrong-trait.stderr b/src/test/ui/unboxed-closure-sugar-wrong-trait.stderr
index 544d4b74bb7..9bf9db2a194 100644
--- a/src/test/ui/unboxed-closure-sugar-wrong-trait.stderr
+++ b/src/test/ui/unboxed-closure-sugar-wrong-trait.stderr
@@ -12,3 +12,5 @@ error[E0220]: associated type `Output` not found for `Trait`
 
 error: aborting due to 2 previous errors
 
+You've got a few errors: E0220, E0244
+If you want more information on an error, try using "rustc --explain E0220"
diff --git a/src/test/ui/unboxed-closures-infer-fn-once-move-from-projection.stderr b/src/test/ui/unboxed-closures-infer-fn-once-move-from-projection.stderr
index 2c16c5b619a..775ea5f7703 100644
--- a/src/test/ui/unboxed-closures-infer-fn-once-move-from-projection.stderr
+++ b/src/test/ui/unboxed-closures-infer-fn-once-move-from-projection.stderr
@@ -11,3 +11,4 @@ error[E0525]: expected a closure that implements the `Fn` trait, but this closur
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0525"
diff --git a/src/test/ui/unconstrained-none.stderr b/src/test/ui/unconstrained-none.stderr
index 0f70cc5fd10..0590a1dfb85 100644
--- a/src/test/ui/unconstrained-none.stderr
+++ b/src/test/ui/unconstrained-none.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/unconstrained-ref.stderr b/src/test/ui/unconstrained-ref.stderr
index 96d9b8396a4..ea91b01f312 100644
--- a/src/test/ui/unconstrained-ref.stderr
+++ b/src/test/ui/unconstrained-ref.stderr
@@ -6,3 +6,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/test/ui/union/union-const-eval.stderr b/src/test/ui/union/union-const-eval.stderr
index 3c98b5cdc6c..cee947d73a2 100644
--- a/src/test/ui/union/union-const-eval.stderr
+++ b/src/test/ui/union/union-const-eval.stderr
@@ -14,3 +14,4 @@ error[E0080]: constant evaluation error
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0080"
diff --git a/src/test/ui/union/union-derive-eq.stderr b/src/test/ui/union/union-derive-eq.stderr
index 569191ca6e7..8d49a1febbe 100644
--- a/src/test/ui/union/union-derive-eq.stderr
+++ b/src/test/ui/union/union-derive-eq.stderr
@@ -8,3 +8,4 @@ error[E0277]: the trait bound `PartialEqNotEq: std::cmp::Eq` is not satisfied
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/union/union-fields-2.stderr b/src/test/ui/union/union-fields-2.stderr
index d66ebaa2187..f5f5c4fab2b 100644
--- a/src/test/ui/union/union-fields-2.stderr
+++ b/src/test/ui/union/union-fields-2.stderr
@@ -80,3 +80,5 @@ error: `..` cannot be used in union patterns
 
 error: aborting due to 13 previous errors
 
+You've got a few errors: E0026, E0436, E0560
+If you want more information on an error, try using "rustc --explain E0026"
diff --git a/src/test/ui/union/union-sized-field.stderr b/src/test/ui/union/union-sized-field.stderr
index 9586f950739..e799d8cb518 100644
--- a/src/test/ui/union/union-sized-field.stderr
+++ b/src/test/ui/union/union-sized-field.stderr
@@ -30,3 +30,4 @@ error[E0277]: the trait bound `T: std::marker::Sized` is not satisfied
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/union/union-suggest-field.stderr b/src/test/ui/union/union-suggest-field.stderr
index e3cb52270dd..a2733a69483 100644
--- a/src/test/ui/union/union-suggest-field.stderr
+++ b/src/test/ui/union/union-suggest-field.stderr
@@ -20,3 +20,5 @@ error[E0615]: attempted to take value of method `calculate` on type `U`
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0560, E0609, E0615
+If you want more information on an error, try using "rustc --explain E0560"
diff --git a/src/test/ui/unknown-language-item.stderr b/src/test/ui/unknown-language-item.stderr
index c4b4a789c3d..1b7828ea11c 100644
--- a/src/test/ui/unknown-language-item.stderr
+++ b/src/test/ui/unknown-language-item.stderr
@@ -6,3 +6,4 @@ error[E0522]: definition of an unknown language item: `foo`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0522"
diff --git a/src/test/ui/unsafe-const-fn.stderr b/src/test/ui/unsafe-const-fn.stderr
index f3923244aba..b9236007e76 100644
--- a/src/test/ui/unsafe-const-fn.stderr
+++ b/src/test/ui/unsafe-const-fn.stderr
@@ -6,3 +6,4 @@ error[E0133]: call to unsafe function requires unsafe function or block
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0133"
diff --git a/src/test/ui/unsized-enum2.stderr b/src/test/ui/unsized-enum2.stderr
index 97a83456bb4..c85ed45a9be 100644
--- a/src/test/ui/unsized-enum2.stderr
+++ b/src/test/ui/unsized-enum2.stderr
@@ -188,3 +188,4 @@ error[E0277]: the trait bound `PathHelper4 + 'static: std::marker::Sized` is not
 
 error: aborting due to 20 previous errors
 
+If you want more information on this error, try using "rustc --explain E0277"
diff --git a/src/test/ui/use-mod.stderr b/src/test/ui/use-mod.stderr
index 1c9f306f493..f0e8d56b17b 100644
--- a/src/test/ui/use-mod.stderr
+++ b/src/test/ui/use-mod.stderr
@@ -30,3 +30,5 @@ help: You can use `as` to change the binding name of the import
 
 error: aborting due to 3 previous errors
 
+You've got a few errors: E0252, E0430, E0431
+If you want more information on an error, try using "rustc --explain E0252"
diff --git a/src/test/ui/use-nested-groups-error.stderr b/src/test/ui/use-nested-groups-error.stderr
index c4edb626be0..153b583dd4e 100644
--- a/src/test/ui/use-nested-groups-error.stderr
+++ b/src/test/ui/use-nested-groups-error.stderr
@@ -6,3 +6,4 @@ error[E0432]: unresolved import `a::b1::C1`
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0432"
diff --git a/src/test/ui/variadic-ffi-3.stderr b/src/test/ui/variadic-ffi-3.stderr
index 54275fbc4f2..85086b01fe4 100644
--- a/src/test/ui/variadic-ffi-3.stderr
+++ b/src/test/ui/variadic-ffi-3.stderr
@@ -72,3 +72,5 @@ error[E0617]: can't pass `u16` to variadic function
 
 error: aborting due to 10 previous errors
 
+You've got a few errors: E0060, E0308, E0617
+If you want more information on an error, try using "rustc --explain E0060"
diff --git a/src/test/ui/variance-unused-type-param.stderr b/src/test/ui/variance-unused-type-param.stderr
index 0b07ac38cb6..62d3b4c6670 100644
--- a/src/test/ui/variance-unused-type-param.stderr
+++ b/src/test/ui/variance-unused-type-param.stderr
@@ -24,3 +24,4 @@ error[E0392]: parameter `T` is never used
 
 error: aborting due to 3 previous errors
 
+If you want more information on this error, try using "rustc --explain E0392"
diff --git a/src/test/ui/vector-no-ann.stderr b/src/test/ui/vector-no-ann.stderr
index e788ea125ad..3a2980f3357 100644
--- a/src/test/ui/vector-no-ann.stderr
+++ b/src/test/ui/vector-no-ann.stderr
@@ -8,3 +8,4 @@ error[E0282]: type annotations needed
 
 error: aborting due to previous error
 
+If you want more information on this error, try using "rustc --explain E0282"
diff --git a/src/tools/compiletest/src/json.rs b/src/tools/compiletest/src/json.rs
index 99d7dc78166..8e9cd1a12fa 100644
--- a/src/tools/compiletest/src/json.rs
+++ b/src/tools/compiletest/src/json.rs
@@ -57,25 +57,6 @@ struct DiagnosticCode {
     explanation: Option<String>,
 }
 
-pub fn extract_rendered(output: &str, proc_res: &ProcRes) -> String {
-    output.lines()
-        .filter_map(|line| if line.starts_with('{') {
-            match json::decode::<Diagnostic>(line) {
-                Ok(diagnostic) => diagnostic.rendered,
-                Err(error) => {
-                    proc_res.fatal(Some(&format!("failed to decode compiler output as json: \
-                                                `{}`\noutput: {}\nline: {}",
-                                                error,
-                                                line,
-                                                output)));
-                }
-            }
-        } else {
-            None
-        })
-        .collect()
-}
-
 pub fn parse_output(file_name: &str, output: &str, proc_res: &ProcRes) -> Vec<Error> {
     output.lines()
         .flat_map(|line| parse_line(file_name, line, output, proc_res))
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs
index c0f82d56d80..e5bee56de80 100644
--- a/src/tools/compiletest/src/runtest.rs
+++ b/src/tools/compiletest/src/runtest.rs
@@ -248,7 +248,7 @@ impl<'test> TestCx<'test> {
     }
 
     fn run_cfail_test(&self) {
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
         self.check_if_test_should_compile(&proc_res);
         self.check_no_compiler_crash(&proc_res);
 
@@ -267,7 +267,7 @@ impl<'test> TestCx<'test> {
     }
 
     fn run_rfail_test(&self) {
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
 
         if !proc_res.status.success() {
             self.fatal_proc_rec("compilation failed!", &proc_res);
@@ -309,7 +309,7 @@ impl<'test> TestCx<'test> {
     }
 
     fn run_rpass_test(&self) {
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
 
         if !proc_res.status.success() {
             self.fatal_proc_rec("compilation failed!", &proc_res);
@@ -336,7 +336,7 @@ impl<'test> TestCx<'test> {
             return self.run_rpass_test();
         }
 
-        let mut proc_res = self.compile_test();
+        let mut proc_res = self.compile_test(&[]);
 
         if !proc_res.status.success() {
             self.fatal_proc_rec("compilation failed!", &proc_res);
@@ -578,7 +578,7 @@ impl<'test> TestCx<'test> {
         let mut cmds = commands.join("\n");
 
         // compile test file (it should have 'compile-flags:-g' in the header)
-        let compiler_run_result = self.compile_test();
+        let compiler_run_result = self.compile_test(&[]);
         if !compiler_run_result.status.success() {
             self.fatal_proc_rec("compilation failed!", &compiler_run_result);
         }
@@ -835,7 +835,7 @@ impl<'test> TestCx<'test> {
 
     fn run_debuginfo_lldb_test_no_opt(&self) {
         // compile test file (it should have 'compile-flags:-g' in the header)
-        let compile_result = self.compile_test();
+        let compile_result = self.compile_test(&[]);
         if !compile_result.status.success() {
             self.fatal_proc_rec("compilation failed!", &compile_result);
         }
@@ -1272,12 +1272,15 @@ impl<'test> TestCx<'test> {
         }
     }
 
-    fn compile_test(&self) -> ProcRes {
+    fn compile_test(&self, extra_args: &[&'static str]) -> ProcRes {
         let mut rustc = self.make_compile_args(
             &self.testpaths.file,
             TargetLocation::ThisFile(self.make_exe_name()),
         );
 
+        if !extra_args.is_empty() {
+            rustc.args(extra_args);
+        }
         rustc.arg("-L").arg(&self.aux_output_dir_name());
 
         match self.config.mode {
@@ -1629,8 +1632,11 @@ impl<'test> TestCx<'test> {
                 .iter()
                 .any(|s| s.starts_with("--error-format"))
             {
-                rustc.args(&["--error-format", "json"]);
-            },
+                // In case no "--error-format" has been given in the test, we'll compile
+                // a first time to get the compiler's output then compile with
+                // "--error-format json" to check if all expected errors are actually there
+                // and that no new one appeared.
+            }
             MirOpt => {
                 rustc.args(&[
                     "-Zdump-mir=all",
@@ -2109,7 +2115,7 @@ impl<'test> TestCx<'test> {
     fn run_codegen_units_test(&self) {
         assert!(self.revision.is_none(), "revisions not relevant here");
 
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
 
         if !proc_res.status.success() {
             self.fatal_proc_rec("compilation failed!", &proc_res);
@@ -2493,7 +2499,7 @@ impl<'test> TestCx<'test> {
             .iter()
             .any(|s| s.contains("--error-format"));
 
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
         self.check_if_test_should_compile(&proc_res);
 
         let expected_stderr_path = self.expected_output_path(UI_STDERR);
@@ -2505,13 +2511,8 @@ impl<'test> TestCx<'test> {
         let normalized_stdout =
             self.normalize_output(&proc_res.stdout, &self.props.normalize_stdout);
 
-        let stderr = if explicit {
-            proc_res.stderr.clone()
-        } else {
-            json::extract_rendered(&proc_res.stderr, &proc_res)
-        };
-
-        let normalized_stderr = self.normalize_output(&stderr, &self.props.normalize_stderr);
+        let normalized_stderr = self.normalize_output(&proc_res.stderr,
+                                                      &self.props.normalize_stderr);
 
         let mut errors = 0;
         errors += self.compare_output("stdout", &normalized_stdout, &expected_stdout);
@@ -2544,6 +2545,7 @@ impl<'test> TestCx<'test> {
             }
         }
         if !explicit {
+            let proc_res = self.compile_test(&["--error-format", "json"]);
             if !expected_errors.is_empty() || !proc_res.status.success() {
                 // "// error-pattern" comments
                 self.check_expected_errors(expected_errors, &proc_res);
@@ -2555,7 +2557,7 @@ impl<'test> TestCx<'test> {
     }
 
     fn run_mir_opt_test(&self) {
-        let proc_res = self.compile_test();
+        let proc_res = self.compile_test(&[]);
 
         if !proc_res.status.success() {
             self.fatal_proc_rec("compilation failed!", &proc_res);