about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2017-12-10 23:29:24 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2017-12-14 23:26:39 +0300
commit1f5b201affc48dcf0b637caa9596c11d83e1db94 (patch)
treeeb7044df493bdd2882ee0051003e796202e6f5b0 /src/test/ui
parentd4e51a8fb286444a8c276a05a1c3ba6ba8ca6576 (diff)
downloadrust-1f5b201affc48dcf0b637caa9596c11d83e1db94.tar.gz
rust-1f5b201affc48dcf0b637caa9596c11d83e1db94.zip
Remove NOTE/HELP annotations from UI tests
Diffstat (limited to 'src/test/ui')
-rw-r--r--src/test/ui/arbitrary-self-types-not-object-safe.rs5
-rw-r--r--src/test/ui/asm-out-assign-imm.rs3
-rw-r--r--src/test/ui/asm-out-assign-imm.stderr2
-rw-r--r--src/test/ui/associated-const-impl-wrong-lifetime.rs4
-rw-r--r--src/test/ui/associated-const-impl-wrong-lifetime.stderr13
-rw-r--r--src/test/ui/associated-const-impl-wrong-type.rs3
-rw-r--r--src/test/ui/associated-const-impl-wrong-type.stderr2
-rw-r--r--src/test/ui/associated-type-projection-from-multiple-supertraits.rs10
-rw-r--r--src/test/ui/associated-type-projection-from-multiple-supertraits.stderr22
-rw-r--r--src/test/ui/associated-types-ICE-when-projecting-out-of-err.rs1
-rw-r--r--src/test/ui/associated-types-in-ambiguous-context.rs6
-rw-r--r--src/test/ui/associated-types-in-ambiguous-context.stderr8
-rw-r--r--src/test/ui/augmented-assignments.rs1
-rw-r--r--src/test/ui/augmented-assignments.stderr10
-rw-r--r--src/test/ui/binary-op-on-double-ref.rs2
-rw-r--r--src/test/ui/blind-item-item-shadow.rs3
-rw-r--r--src/test/ui/blind-item-item-shadow.stderr2
-rw-r--r--src/test/ui/block-result/consider-removing-last-semi.rs4
-rw-r--r--src/test/ui/block-result/consider-removing-last-semi.stderr4
-rw-r--r--src/test/ui/block-result/issue-11714.rs2
-rw-r--r--src/test/ui/block-result/issue-11714.stderr2
-rw-r--r--src/test/ui/block-result/issue-13428.rs4
-rw-r--r--src/test/ui/block-result/issue-13428.stderr4
-rw-r--r--src/test/ui/bogus-tag.rs2
-rw-r--r--src/test/ui/bogus-tag.stderr4
-rw-r--r--src/test/ui/borrowck/borrowck-box-insensitivity.rs16
-rw-r--r--src/test/ui/borrowck/borrowck-box-insensitivity.stderr119
-rw-r--r--src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs2
-rw-r--r--src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs2
-rw-r--r--src/test/ui/borrowck/borrowck-in-static.rs3
-rw-r--r--src/test/ui/borrowck/borrowck-in-static.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-move-error-with-note.rs12
-rw-r--r--src/test/ui/borrowck/borrowck-move-error-with-note.stderr12
-rw-r--r--src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs1
-rw-r--r--src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs3
-rw-r--r--src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr24
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs5
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr6
-rw-r--r--src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs3
-rw-r--r--src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr2
-rw-r--r--src/test/ui/cast-as-bool.rs1
-rw-r--r--src/test/ui/cast-rfc0401-2.rs1
-rw-r--r--src/test/ui/changing-crates.rs2
-rw-r--r--src/test/ui/closure_context/issue-42065.rs3
-rw-r--r--src/test/ui/closure_context/issue-42065.stderr7
-rw-r--r--src/test/ui/coherence-impls-copy.rs14
-rw-r--r--src/test/ui/coherence-impls-copy.stderr28
-rw-r--r--src/test/ui/coherence-overlap-downstream-inherent.rs5
-rw-r--r--src/test/ui/coherence-overlap-downstream-inherent.stderr12
-rw-r--r--src/test/ui/coherence-overlap-downstream.rs5
-rw-r--r--src/test/ui/coherence-overlap-downstream.stderr12
-rw-r--r--src/test/ui/coherence-overlap-issue-23516-inherent.rs3
-rw-r--r--src/test/ui/coherence-overlap-issue-23516-inherent.stderr4
-rw-r--r--src/test/ui/coherence-overlap-issue-23516.rs3
-rw-r--r--src/test/ui/coherence-overlap-issue-23516.stderr5
-rw-r--r--src/test/ui/coherence-overlap-upstream-inherent.rs3
-rw-r--r--src/test/ui/coherence-overlap-upstream-inherent.stderr4
-rw-r--r--src/test/ui/coherence-overlap-upstream.rs3
-rw-r--r--src/test/ui/coherence-overlap-upstream.stderr5
-rw-r--r--src/test/ui/const-deref-ptr.rs1
-rw-r--r--src/test/ui/const-eval-overflow-2.rs2
-rw-r--r--src/test/ui/const-eval-overflow-2.stderr2
-rw-r--r--src/test/ui/const-eval-overflow-4.rs3
-rw-r--r--src/test/ui/const-eval-span.rs1
-rw-r--r--src/test/ui/const-fn-error.rs5
-rw-r--r--src/test/ui/const-fn-error.stderr2
-rw-r--r--src/test/ui/const-fn-mismatch.rs1
-rw-r--r--src/test/ui/const-fn-not-in-trait.rs2
-rw-r--r--src/test/ui/const-fn-not-in-trait.stderr4
-rw-r--r--src/test/ui/const-len-underflow-separate-spans.rs1
-rw-r--r--src/test/ui/const-pattern-not-const-evaluable.rs2
-rw-r--r--src/test/ui/const-pattern-not-const-evaluable.stderr2
-rw-r--r--src/test/ui/const-unsized.rs8
-rw-r--r--src/test/ui/const-unsized.stderr12
-rw-r--r--src/test/ui/cycle-trait-supertrait-indirect.rs3
-rw-r--r--src/test/ui/cycle-trait-supertrait-indirect.stderr8
-rw-r--r--src/test/ui/deprecated-macro_escape-inner.rs1
-rw-r--r--src/test/ui/derived-errors/issue-31997-1.rs1
-rw-r--r--src/test/ui/discrim-overflow-2.rs16
-rw-r--r--src/test/ui/discrim-overflow-2.stderr36
-rw-r--r--src/test/ui/discrim-overflow.rs11
-rw-r--r--src/test/ui/discrim-overflow.stderr36
-rw-r--r--src/test/ui/double-import.rs4
-rw-r--r--src/test/ui/double-import.stderr2
-rw-r--r--src/test/ui/duplicate-check-macro-exports.rs3
-rw-r--r--src/test/ui/duplicate-check-macro-exports.stderr2
-rw-r--r--src/test/ui/empty-struct-unit-expr.rs2
-rw-r--r--src/test/ui/empty-struct-unit-expr.stderr8
-rw-r--r--src/test/ui/enum-and-module-in-same-scope.rs4
-rw-r--r--src/test/ui/enum-and-module-in-same-scope.stderr10
-rw-r--r--src/test/ui/fat-ptr-cast.rs2
-rw-r--r--src/test/ui/fat-ptr-cast.stderr32
-rw-r--r--src/test/ui/feature-gate-decl_macro.rs1
-rw-r--r--src/test/ui/feature-gate-may-dangle.rs1
-rw-r--r--src/test/ui/feature-gate-repr128.rs1
-rw-r--r--src/test/ui/feature-gate-repr128.stderr5
-rw-r--r--src/test/ui/generic-type-less-params-with-defaults.rs1
-rw-r--r--src/test/ui/generic-type-more-params-with-defaults.rs1
-rw-r--r--src/test/ui/if-let-arm-types.rs2
-rw-r--r--src/test/ui/if-let-arm-types.stderr2
-rw-r--r--src/test/ui/impl-duplicate-methods.rs3
-rw-r--r--src/test/ui/impl-duplicate-methods.stderr2
-rw-r--r--src/test/ui/impl-trait/auto-trait-leak.rs13
-rw-r--r--src/test/ui/impl-trait/auto-trait-leak.stderr26
-rw-r--r--src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.rs1
-rw-r--r--src/test/ui/impl-trait/method-suggestion-no-duplication.rs1
-rw-r--r--src/test/ui/impl-trait/no-method-suggested-traits.rs23
-rw-r--r--src/test/ui/impl-trait/no-method-suggested-traits.stderr126
-rw-r--r--src/test/ui/impl-unused-rps-in-assoc-type.rs1
-rw-r--r--src/test/ui/imports/duplicate.rs22
-rw-r--r--src/test/ui/imports/duplicate.stderr50
-rw-r--r--src/test/ui/imports/macro-paths.rs10
-rw-r--r--src/test/ui/imports/macro-paths.stderr22
-rw-r--r--src/test/ui/imports/macros.rs14
-rw-r--r--src/test/ui/imports/macros.stderr30
-rw-r--r--src/test/ui/imports/rfc-1560-warning-cycle.rs6
-rw-r--r--src/test/ui/imports/rfc-1560-warning-cycle.stderr4
-rw-r--r--src/test/ui/imports/shadow_builtin_macros.rs17
-rw-r--r--src/test/ui/imports/shadow_builtin_macros.stderr30
-rw-r--r--src/test/ui/impossible_range.rs2
-rw-r--r--src/test/ui/impossible_range.stderr4
-rw-r--r--src/test/ui/index-help.rs1
-rw-r--r--src/test/ui/issue-10969.rs4
-rw-r--r--src/test/ui/issue-10969.stderr4
-rw-r--r--src/test/ui/issue-11004.rs2
-rw-r--r--src/test/ui/issue-11004.stderr4
-rw-r--r--src/test/ui/issue-11319.rs2
-rw-r--r--src/test/ui/issue-11319.stderr2
-rw-r--r--src/test/ui/issue-12187-1.rs2
-rw-r--r--src/test/ui/issue-12187-2.rs2
-rw-r--r--src/test/ui/issue-12511.rs3
-rw-r--r--src/test/ui/issue-12511.stderr4
-rw-r--r--src/test/ui/issue-13058.rs1
-rw-r--r--src/test/ui/issue-14092.rs1
-rw-r--r--src/test/ui/issue-15260.rs10
-rw-r--r--src/test/ui/issue-15260.stderr21
-rw-r--r--src/test/ui/issue-15524.rs6
-rw-r--r--src/test/ui/issue-15524.stderr13
-rw-r--r--src/test/ui/issue-17263.rs6
-rw-r--r--src/test/ui/issue-17263.stderr10
-rw-r--r--src/test/ui/issue-17441.rs4
-rw-r--r--src/test/ui/issue-17441.stderr20
-rw-r--r--src/test/ui/issue-17954.stderr2
-rw-r--r--src/test/ui/issue-18183.rs1
-rw-r--r--src/test/ui/issue-18819.rs2
-rw-r--r--src/test/ui/issue-18819.stderr9
-rw-r--r--src/test/ui/issue-19100.rs2
-rw-r--r--src/test/ui/issue-19100.stderr4
-rw-r--r--src/test/ui/issue-19498.rs9
-rw-r--r--src/test/ui/issue-19498.stderr22
-rw-r--r--src/test/ui/issue-19707.rs2
-rw-r--r--src/test/ui/issue-19707.stderr4
-rw-r--r--src/test/ui/issue-19922.rs2
-rw-r--r--src/test/ui/issue-20692.rs5
-rw-r--r--src/test/ui/issue-20692.stderr4
-rw-r--r--src/test/ui/issue-21546.rs18
-rw-r--r--src/test/ui/issue-21546.stderr34
-rw-r--r--src/test/ui/issue-21600.rs3
-rw-r--r--src/test/ui/issue-21600.stderr5
-rw-r--r--src/test/ui/issue-21950.rs3
-rw-r--r--src/test/ui/issue-22370.rs2
-rw-r--r--src/test/ui/issue-22560.rs6
-rw-r--r--src/test/ui/issue-22560.stderr15
-rw-r--r--src/test/ui/issue-22886.rs1
-rw-r--r--src/test/ui/issue-22933-2.rs3
-rw-r--r--src/test/ui/issue-22933-2.stderr2
-rw-r--r--src/test/ui/issue-23041.rs1
-rw-r--r--src/test/ui/issue-23173.rs8
-rw-r--r--src/test/ui/issue-23173.stderr22
-rw-r--r--src/test/ui/issue-23217.rs3
-rw-r--r--src/test/ui/issue-23217.stderr2
-rw-r--r--src/test/ui/issue-23302.rs4
-rw-r--r--src/test/ui/issue-23302.stderr12
-rw-r--r--src/test/ui/issue-23543.rs1
-rw-r--r--src/test/ui/issue-23544.rs1
-rw-r--r--src/test/ui/issue-23716.rs2
-rw-r--r--src/test/ui/issue-23716.stderr14
-rw-r--r--src/test/ui/issue-24036.rs13
-rw-r--r--src/test/ui/issue-24036.stderr50
-rw-r--r--src/test/ui/issue-24081.rs15
-rw-r--r--src/test/ui/issue-24081.stderr36
-rw-r--r--src/test/ui/issue-24424.rs1
-rw-r--r--src/test/ui/issue-25385.rs1
-rw-r--r--src/test/ui/issue-25385.stderr4
-rw-r--r--src/test/ui/issue-25793.rs3
-rw-r--r--src/test/ui/issue-25793.stderr2
-rw-r--r--src/test/ui/issue-25826.rs1
-rw-r--r--src/test/ui/issue-26056.rs2
-rw-r--r--src/test/ui/issue-26093.rs2
-rw-r--r--src/test/ui/issue-26093.stderr2
-rw-r--r--src/test/ui/issue-26472.rs1
-rw-r--r--src/test/ui/issue-26638.rs5
-rw-r--r--src/test/ui/issue-26638.stderr8
-rw-r--r--src/test/ui/issue-26886.rs5
-rw-r--r--src/test/ui/issue-26886.stderr17
-rw-r--r--src/test/ui/issue-27842.rs2
-rw-r--r--src/test/ui/issue-27842.stderr4
-rw-r--r--src/test/ui/issue-27942.rs6
-rw-r--r--src/test/ui/issue-27942.stderr40
-rw-r--r--src/test/ui/issue-2848.rs3
-rw-r--r--src/test/ui/issue-28568.rs2
-rw-r--r--src/test/ui/issue-28568.stderr18
-rw-r--r--src/test/ui/issue-28776.rs1
-rw-r--r--src/test/ui/issue-28837.rs15
-rw-r--r--src/test/ui/issue-28837.stderr56
-rw-r--r--src/test/ui/issue-28971.rs3
-rw-r--r--src/test/ui/issue-28971.stderr2
-rw-r--r--src/test/ui/issue-29124.rs2
-rw-r--r--src/test/ui/issue-29124.stderr4
-rw-r--r--src/test/ui/issue-30007.rs2
-rw-r--r--src/test/ui/issue-30007.stderr2
-rw-r--r--src/test/ui/issue-3008-1.rs3
-rw-r--r--src/test/ui/issue-3008-1.stderr2
-rw-r--r--src/test/ui/issue-3008-2.rs2
-rw-r--r--src/test/ui/issue-30255.rs3
-rw-r--r--src/test/ui/issue-30255.stderr8
-rw-r--r--src/test/ui/issue-30302.rs1
-rw-r--r--src/test/ui/issue-30302.stderr4
-rw-r--r--src/test/ui/issue-3044.rs1
-rw-r--r--src/test/ui/issue-30730.rs3
-rw-r--r--src/test/ui/issue-30730.stderr2
-rw-r--r--src/test/ui/issue-31221.rs7
-rw-r--r--src/test/ui/issue-31221.stderr24
-rw-r--r--src/test/ui/issue-32326.rs3
-rw-r--r--src/test/ui/issue-32326.stderr3
-rw-r--r--src/test/ui/issue-32950.rs2
-rw-r--r--src/test/ui/issue-34047.rs3
-rw-r--r--src/test/ui/issue-34047.stderr2
-rw-r--r--src/test/ui/issue-34209.rs2
-rw-r--r--src/test/ui/issue-35139.rs1
-rw-r--r--src/test/ui/issue-35675.rs17
-rw-r--r--src/test/ui/issue-35675.stderr28
-rw-r--r--src/test/ui/issue-35869.rs16
-rw-r--r--src/test/ui/issue-35869.stderr20
-rw-r--r--src/test/ui/issue-36163.rs3
-rw-r--r--src/test/ui/issue-36163.stderr8
-rw-r--r--src/test/ui/issue-36708.rs1
-rw-r--r--src/test/ui/issue-3779.rs2
-rw-r--r--src/test/ui/issue-3779.stderr4
-rw-r--r--src/test/ui/issue-37884.rs3
-rw-r--r--src/test/ui/issue-37884.stderr42
-rw-r--r--src/test/ui/issue-41652/issue_41652.rs2
-rw-r--r--src/test/ui/issue-4335.rs3
-rw-r--r--src/test/ui/issue-4935.rs1
-rw-r--r--src/test/ui/issue-5239-1.rs1
-rw-r--r--src/test/ui/issue-6458-3.rs1
-rw-r--r--src/test/ui/issue-6458-4.rs2
-rw-r--r--src/test/ui/issue-6458-4.stderr2
-rw-r--r--src/test/ui/issue-6458.rs1
-rw-r--r--src/test/ui/issue-7813.rs2
-rw-r--r--src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.rs10
-rw-r--r--src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.stderr20
-rw-r--r--src/test/ui/lint-forbid-attr.rs2
-rw-r--r--src/test/ui/lint-forbid-attr.stderr6
-rw-r--r--src/test/ui/lint-output-format-2.rs1
-rw-r--r--src/test/ui/lint-output-format-2.stderr16
-rw-r--r--src/test/ui/lint-unconditional-recursion.rs33
-rw-r--r--src/test/ui/lint-unconditional-recursion.stderr202
-rw-r--r--src/test/ui/liveness-return-last-stmt-semi.rs3
-rw-r--r--src/test/ui/liveness-return-last-stmt-semi.stderr22
-rw-r--r--src/test/ui/loops-reject-duplicate-labels-2.rs24
-rw-r--r--src/test/ui/loops-reject-duplicate-labels-2.stderr52
-rw-r--r--src/test/ui/loops-reject-duplicate-labels.rs24
-rw-r--r--src/test/ui/loops-reject-duplicate-labels.stderr58
-rw-r--r--src/test/ui/loops-reject-labels-shadowing-lifetimes.rs35
-rw-r--r--src/test/ui/loops-reject-labels-shadowing-lifetimes.stderr93
-rw-r--r--src/test/ui/loops-reject-lifetime-shadowing-label.rs3
-rw-r--r--src/test/ui/loops-reject-lifetime-shadowing-label.stderr10
-rw-r--r--src/test/ui/macro-context.rs8
-rw-r--r--src/test/ui/macro-context.stderr8
-rw-r--r--src/test/ui/macro-invalid-fragment-spec.rs1
-rw-r--r--src/test/ui/macro-shadowing.rs7
-rw-r--r--src/test/ui/macro-shadowing.stderr8
-rw-r--r--src/test/ui/main-wrong-location.rs2
-rw-r--r--src/test/ui/main-wrong-location.stderr2
-rw-r--r--src/test/ui/maybe-bounds.rs1
-rw-r--r--src/test/ui/maybe-bounds.stderr8
-rw-r--r--src/test/ui/method-call-err-msg.rs10
-rw-r--r--src/test/ui/method-call-err-msg.stderr10
-rw-r--r--src/test/ui/method-missing-call.rs2
-rw-r--r--src/test/ui/method-missing-call.stderr6
-rw-r--r--src/test/ui/mismatched_types/E0053.rs8
-rw-r--r--src/test/ui/mismatched_types/E0053.stderr8
-rw-r--r--src/test/ui/mismatched_types/E0409.rs4
-rw-r--r--src/test/ui/mismatched_types/fn-variance-1.rs4
-rw-r--r--src/test/ui/mismatched_types/for-loop-has-unit-body.rs2
-rw-r--r--src/test/ui/mismatched_types/issue-19109.rs2
-rw-r--r--src/test/ui/mismatched_types/issue-36053-2.rs3
-rw-r--r--src/test/ui/mismatched_types/method-help-unsatisfied-bound.rs1
-rw-r--r--src/test/ui/mismatched_types/overloaded-calls-bad.rs4
-rw-r--r--src/test/ui/mismatched_types/overloaded-calls-bad.stderr4
-rw-r--r--src/test/ui/mismatched_types/trait-bounds-cant-coerce.rs2
-rw-r--r--src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.rs2
-rw-r--r--src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr2
-rw-r--r--src/test/ui/missing-block-hint.rs1
-rw-r--r--src/test/ui/moves-based-on-type-block-bad.rs1
-rw-r--r--src/test/ui/moves-based-on-type-match-bindings.rs2
-rw-r--r--src/test/ui/moves-based-on-type-match-bindings.stderr2
-rw-r--r--src/test/ui/no-patterns-in-args.rs3
-rw-r--r--src/test/ui/no-patterns-in-args.stderr16
-rw-r--r--src/test/ui/non-constant-expr-for-arr-len.rs1
-rw-r--r--src/test/ui/non-exhaustive-pattern-witness.rs7
-rw-r--r--src/test/ui/non-exhaustive-pattern-witness.stderr28
-rw-r--r--src/test/ui/not-enough-arguments.rs2
-rw-r--r--src/test/ui/not-enough-arguments.stderr9
-rw-r--r--src/test/ui/numeric-fields.rs3
-rw-r--r--src/test/ui/numeric-fields.stderr4
-rw-r--r--src/test/ui/object-safety-associated-consts.rs2
-rw-r--r--src/test/ui/object-safety-generics.rs4
-rw-r--r--src/test/ui/object-safety-generics.stderr4
-rw-r--r--src/test/ui/object-safety-mentions-Self.rs4
-rw-r--r--src/test/ui/object-safety-mentions-Self.stderr4
-rw-r--r--src/test/ui/object-safety-sized.rs2
-rw-r--r--src/test/ui/object-safety-supertrait-mentions-Self.rs2
-rw-r--r--src/test/ui/on-unimplemented/multiple-impls.rs9
-rw-r--r--src/test/ui/on-unimplemented/multiple-impls.stderr16
-rw-r--r--src/test/ui/on-unimplemented/on-impl.rs3
-rw-r--r--src/test/ui/on-unimplemented/on-trait.rs4
-rw-r--r--src/test/ui/on-unimplemented/on-trait.stderr4
-rw-r--r--src/test/ui/on-unimplemented/slice-index.rs4
-rw-r--r--src/test/ui/on-unimplemented/slice-index.stderr4
-rw-r--r--src/test/ui/partialeq_help.rs3
-rw-r--r--src/test/ui/pat-slice-old-style.rs2
-rw-r--r--src/test/ui/qualified-path-params-2.rs3
-rw-r--r--src/test/ui/region-borrow-params-issue-29793-small.rs48
-rw-r--r--src/test/ui/region-borrow-params-issue-29793-small.stderr112
-rw-r--r--src/test/ui/regions-nested-fns-2.rs2
-rw-r--r--src/test/ui/regions-nested-fns-2.stderr4
-rw-r--r--src/test/ui/resolve-conflict-item-vs-import.rs1
-rw-r--r--src/test/ui/resolve-conflict-item-vs-import.stderr6
-rw-r--r--src/test/ui/resolve-inconsistent-names.rs4
-rw-r--r--src/test/ui/resolve/issue-14254.rs5
-rw-r--r--src/test/ui/resolve/issue-14254.stderr92
-rw-r--r--src/test/ui/resolve/issue-17518.rs1
-rw-r--r--src/test/ui/resolve/issue-17518.stderr4
-rw-r--r--src/test/ui/resolve/issue-21221-2.rs1
-rw-r--r--src/test/ui/resolve/issue-21221-2.stderr4
-rw-r--r--src/test/ui/resolve/issue-21221-3.rs1
-rw-r--r--src/test/ui/resolve/issue-21221-3.stderr4
-rw-r--r--src/test/ui/resolve/issue-21221-4.rs1
-rw-r--r--src/test/ui/resolve/issue-21221-4.stderr4
-rw-r--r--src/test/ui/resolve/issue-23305.rs3
-rw-r--r--src/test/ui/resolve/issue-2356.rs13
-rw-r--r--src/test/ui/resolve/issue-2356.stderr78
-rw-r--r--src/test/ui/resolve/issue-24968.rs1
-rw-r--r--src/test/ui/resolve/issue-39226.rs2
-rw-r--r--src/test/ui/resolve/issue-5035.rs2
-rw-r--r--src/test/ui/resolve/issue-5035.stderr4
-rw-r--r--src/test/ui/resolve/issue-6702.rs1
-rw-r--r--src/test/ui/resolve/privacy-struct-ctor.rs7
-rw-r--r--src/test/ui/resolve/privacy-struct-ctor.stderr28
-rw-r--r--src/test/ui/resolve/resolve-assoc-suggestions.rs6
-rw-r--r--src/test/ui/resolve/resolve-assoc-suggestions.stderr32
-rw-r--r--src/test/ui/resolve/resolve-hint-macro.rs1
-rw-r--r--src/test/ui/resolve/resolve-speculative-adjustment.rs2
-rw-r--r--src/test/ui/resolve/resolve-speculative-adjustment.stderr12
-rw-r--r--src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.rs11
-rw-r--r--src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr32
-rw-r--r--src/test/ui/resolve/token-error-correct-2.rs4
-rw-r--r--src/test/ui/resolve/token-error-correct-2.stderr4
-rw-r--r--src/test/ui/resolve/token-error-correct-3.rs5
-rw-r--r--src/test/ui/resolve/token-error-correct-3.stderr22
-rw-r--r--src/test/ui/resolve/token-error-correct.rs4
-rw-r--r--src/test/ui/resolve/token-error-correct.stderr12
-rw-r--r--src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.rs2
-rw-r--r--src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr4
-rw-r--r--src/test/ui/resolve/unresolved_static_type_field.rs1
-rw-r--r--src/test/ui/self-impl.rs4
-rw-r--r--src/test/ui/self-impl.stderr4
-rw-r--r--src/test/ui/shadowed-lifetime.rs4
-rw-r--r--src/test/ui/shadowed-lifetime.stderr12
-rw-r--r--src/test/ui/span/E0046.rs2
-rw-r--r--src/test/ui/span/E0046.stderr4
-rw-r--r--src/test/ui/span/borrowck-call-is-borrow-issue-12224.rs12
-rw-r--r--src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr36
-rw-r--r--src/test/ui/span/borrowck-let-suggestion-suffixes.rs15
-rw-r--r--src/test/ui/span/borrowck-let-suggestion-suffixes.stderr22
-rw-r--r--src/test/ui/span/coerce-suggestions.rs11
-rw-r--r--src/test/ui/span/coerce-suggestions.stderr20
-rw-r--r--src/test/ui/span/dropck-object-cycle.rs3
-rw-r--r--src/test/ui/span/dropck-object-cycle.stderr4
-rw-r--r--src/test/ui/span/impl-wrong-item-for-trait.rs15
-rw-r--r--src/test/ui/span/impl-wrong-item-for-trait.stderr72
-rw-r--r--src/test/ui/span/issue-23729.rs2
-rw-r--r--src/test/ui/span/issue-23729.stderr8
-rw-r--r--src/test/ui/span/issue-23827.rs2
-rw-r--r--src/test/ui/span/issue-23827.stderr9
-rw-r--r--src/test/ui/span/issue-24356.rs2
-rw-r--r--src/test/ui/span/issue-24356.stderr6
-rw-r--r--src/test/ui/span/issue-36537.rs4
-rw-r--r--src/test/ui/span/issue-36537.stderr2
-rw-r--r--src/test/ui/span/issue-7575.rs17
-rw-r--r--src/test/ui/span/issue-7575.stderr16
-rw-r--r--src/test/ui/span/loan-extend.stderr2
-rw-r--r--src/test/ui/span/regions-escape-loop-via-vec.rs11
-rw-r--r--src/test/ui/span/regions-escape-loop-via-vec.stderr27
-rw-r--r--src/test/ui/str-concat-on-double-ref.rs1
-rw-r--r--src/test/ui/struct-fields-decl-dupe.rs3
-rw-r--r--src/test/ui/struct-fields-decl-dupe.stderr2
-rw-r--r--src/test/ui/struct-fields-hints-no-dupe.rs1
-rw-r--r--src/test/ui/struct-fields-hints.rs1
-rw-r--r--src/test/ui/struct-fields-too-many.rs2
-rw-r--r--src/test/ui/struct-path-self-type-mismatch.rs7
-rw-r--r--src/test/ui/struct-path-self-type-mismatch.stderr20
-rw-r--r--src/test/ui/suggest-private-fields.rs5
-rw-r--r--src/test/ui/suggest-private-fields.stderr12
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-18343.rs4
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr2
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-2392.rs33
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr100
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-32128.rs4
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr2
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-33784.rs6
-rw-r--r--src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr8
-rw-r--r--src/test/ui/suggestions/dont-suggest-dereference-on-arg.rs2
-rw-r--r--src/test/ui/suggestions/str-array-assignment.rs13
-rw-r--r--src/test/ui/suggestions/str-array-assignment.stderr14
-rw-r--r--src/test/ui/svh-change-lit.rs2
-rw-r--r--src/test/ui/svh-change-significant-cfg.rs2
-rw-r--r--src/test/ui/svh-change-trait-bound.rs2
-rw-r--r--src/test/ui/svh-change-type-arg.rs2
-rw-r--r--src/test/ui/svh-change-type-ret.rs2
-rw-r--r--src/test/ui/svh-change-type-static.rs2
-rw-r--r--src/test/ui/svh-use-trait.rs2
-rw-r--r--src/test/ui/token/issue-10636-2.rs3
-rw-r--r--src/test/ui/token/issue-10636-2.stderr12
-rw-r--r--src/test/ui/token/macro-incomplete-parse.rs7
-rw-r--r--src/test/ui/token/macro-incomplete-parse.stderr14
-rw-r--r--src/test/ui/trait-duplicate-methods.rs4
-rw-r--r--src/test/ui/trait-duplicate-methods.stderr2
-rw-r--r--src/test/ui/trait-safety-fn-body.rs1
-rw-r--r--src/test/ui/trait-suggest-where-clause.rs23
-rw-r--r--src/test/ui/trait-suggest-where-clause.stderr24
-rw-r--r--src/test/ui/traits-multidispatch-convert-ambig-dest.rs1
-rw-r--r--src/test/ui/type-check/assignment-in-if.rs4
-rw-r--r--src/test/ui/type-check/assignment-in-if.stderr16
-rw-r--r--src/test/ui/type-check/missing_trait_impl.rs1
-rw-r--r--src/test/ui/type-recursive.rs3
-rw-r--r--src/test/ui/type-recursive.stderr4
-rw-r--r--src/test/ui/typeck-builtin-bound-type-parameters.rs6
-rw-r--r--src/test/ui/typeck-builtin-bound-type-parameters.stderr20
-rw-r--r--src/test/ui/typeck-default-trait-impl-outside-crate.rs1
-rw-r--r--src/test/ui/typeck_type_placeholder_item.rs34
-rw-r--r--src/test/ui/typeck_type_placeholder_item.stderr160
-rw-r--r--src/test/ui/typeck_type_placeholder_lifetime_1.rs1
-rw-r--r--src/test/ui/typeck_type_placeholder_lifetime_2.rs1
-rw-r--r--src/test/ui/unboxed-closure-sugar-wrong-trait.rs2
-rw-r--r--src/test/ui/unconstrained-none.rs1
-rw-r--r--src/test/ui/unconstrained-ref.rs1
-rw-r--r--src/test/ui/union/union-const-eval.rs2
-rw-r--r--src/test/ui/union/union-fields-2.rs3
-rw-r--r--src/test/ui/union/union-fields-2.stderr36
-rw-r--r--src/test/ui/union/union-suggest-field.rs2
-rw-r--r--src/test/ui/union/union-suggest-field.stderr8
-rw-r--r--src/test/ui/unsafe-const-fn.rs1
-rw-r--r--src/test/ui/use-mod.rs6
-rw-r--r--src/test/ui/use-mod.stderr14
-rw-r--r--src/test/ui/variadic-ffi-3.rs4
-rw-r--r--src/test/ui/variadic-ffi-3.stderr36
-rw-r--r--src/test/ui/variance-unused-type-param.rs3
-rw-r--r--src/test/ui/variance-unused-type-param.stderr8
-rw-r--r--src/test/ui/vector-no-ann.rs2
462 files changed, 1756 insertions, 2814 deletions
diff --git a/src/test/ui/arbitrary-self-types-not-object-safe.rs b/src/test/ui/arbitrary-self-types-not-object-safe.rs
index 6b10739bd8e..48918b996ef 100644
--- a/src/test/ui/arbitrary-self-types-not-object-safe.rs
+++ b/src/test/ui/arbitrary-self-types-not-object-safe.rs
@@ -39,12 +39,7 @@ impl Bar for usize {
 fn make_foo() {
     let x = Box::new(5usize) as Box<Foo>;
     //~^ ERROR E0038
-    //~| NOTE method `foo` has a non-standard `self` type
-    //~| NOTE the trait `Foo` cannot be made into an object
     //~| ERROR E0038
-    //~| NOTE method `foo` has a non-standard `self` type
-    //~| NOTE the trait `Foo` cannot be made into an object
-    //~| NOTE requirements on the impl of `std::ops::CoerceUnsized<std::boxed::Box<Foo>>`
 }
 
 fn make_bar() {
diff --git a/src/test/ui/asm-out-assign-imm.rs b/src/test/ui/asm-out-assign-imm.rs
index f2629fa52ff..49084e01a15 100644
--- a/src/test/ui/asm-out-assign-imm.rs
+++ b/src/test/ui/asm-out-assign-imm.rs
@@ -23,12 +23,11 @@ fn foo(x: isize) { println!("{}", x); }
           target_arch = "aarch64"))]
 pub fn main() {
     let x: isize;
-    x = 1; //~ NOTE first assignment
+    x = 1;
     foo(x);
     unsafe {
         asm!("mov $1, $0" : "=r"(x) : "r"(5));
         //~^ ERROR cannot assign twice to immutable variable `x`
-        //~| NOTE cannot assign twice to immutable
     }
     foo(x);
 }
diff --git a/src/test/ui/asm-out-assign-imm.stderr b/src/test/ui/asm-out-assign-imm.stderr
index 642eb36e4cb..cf5486fec5f 100644
--- a/src/test/ui/asm-out-assign-imm.stderr
+++ b/src/test/ui/asm-out-assign-imm.stderr
@@ -1,7 +1,7 @@
 error[E0384]: cannot assign twice to immutable variable `x`
   --> $DIR/asm-out-assign-imm.rs:29:9
    |
-26 |     x = 1; //~ NOTE first assignment
+26 |     x = 1;
    |     ----- first assignment to `x`
 ...
 29 |         asm!("mov $1, $0" : "=r"(x) : "r"(5));
diff --git a/src/test/ui/associated-const-impl-wrong-lifetime.rs b/src/test/ui/associated-const-impl-wrong-lifetime.rs
index 51681a4bb88..77653b27fb5 100644
--- a/src/test/ui/associated-const-impl-wrong-lifetime.rs
+++ b/src/test/ui/associated-const-impl-wrong-lifetime.rs
@@ -15,12 +15,8 @@ trait Foo {
 
 
 impl<'a> Foo for &'a () {
-//~^ NOTE the lifetime 'a as defined
     const NAME: &'a str = "unit";
     //~^ ERROR mismatched types [E0308]
-    //~| NOTE lifetime mismatch
-    //~| NOTE expected type `&'static str`
-    //~| NOTE ...does not necessarily outlive the static lifetime
 }
 
 fn main() {}
diff --git a/src/test/ui/associated-const-impl-wrong-lifetime.stderr b/src/test/ui/associated-const-impl-wrong-lifetime.stderr
index 7768d734bdb..a7aee9b19f1 100644
--- a/src/test/ui/associated-const-impl-wrong-lifetime.stderr
+++ b/src/test/ui/associated-const-impl-wrong-lifetime.stderr
@@ -1,7 +1,7 @@
 error[E0308]: mismatched types
-  --> $DIR/associated-const-impl-wrong-lifetime.rs:19:5
+  --> $DIR/associated-const-impl-wrong-lifetime.rs:18:5
    |
-19 |     const NAME: &'a str = "unit";
+18 |     const NAME: &'a str = "unit";
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
    |
    = note: expected type `&'static str`
@@ -10,12 +10,9 @@ note: the lifetime 'a as defined on the impl at 17:1...
   --> $DIR/associated-const-impl-wrong-lifetime.rs:17:1
    |
 17 | / impl<'a> Foo for &'a () {
-18 | | //~^ NOTE the lifetime 'a as defined
-19 | |     const NAME: &'a str = "unit";
-20 | |     //~^ ERROR mismatched types [E0308]
-...  |
-23 | |     //~| NOTE ...does not necessarily outlive the static lifetime
-24 | | }
+18 | |     const NAME: &'a str = "unit";
+19 | |     //~^ ERROR mismatched types [E0308]
+20 | | }
    | |_^
    = note: ...does not necessarily outlive the static lifetime
 
diff --git a/src/test/ui/associated-const-impl-wrong-type.rs b/src/test/ui/associated-const-impl-wrong-type.rs
index e38851ccd6f..240dfd16097 100644
--- a/src/test/ui/associated-const-impl-wrong-type.rs
+++ b/src/test/ui/associated-const-impl-wrong-type.rs
@@ -10,7 +10,7 @@
 
 
 trait Foo {
-    const BAR: u32; //~ NOTE type in trait
+    const BAR: u32;
 }
 
 struct SignedBar;
@@ -18,7 +18,6 @@ struct SignedBar;
 impl Foo for SignedBar {
     const BAR: i32 = -1;
     //~^ ERROR implemented const `BAR` has an incompatible type for trait [E0326]
-    //~| NOTE expected u32, found i32
 }
 
 fn main() {}
diff --git a/src/test/ui/associated-const-impl-wrong-type.stderr b/src/test/ui/associated-const-impl-wrong-type.stderr
index 6ac734bb775..a2afe905cb5 100644
--- a/src/test/ui/associated-const-impl-wrong-type.stderr
+++ b/src/test/ui/associated-const-impl-wrong-type.stderr
@@ -1,7 +1,7 @@
 error[E0326]: implemented const `BAR` has an incompatible type for trait
   --> $DIR/associated-const-impl-wrong-type.rs:19:16
    |
-13 |     const BAR: u32; //~ NOTE type in trait
+13 |     const BAR: u32;
    |                --- type in trait
 ...
 19 |     const BAR: i32 = -1;
diff --git a/src/test/ui/associated-type-projection-from-multiple-supertraits.rs b/src/test/ui/associated-type-projection-from-multiple-supertraits.rs
index b33bbfd8425..5536566c619 100644
--- a/src/test/ui/associated-type-projection-from-multiple-supertraits.rs
+++ b/src/test/ui/associated-type-projection-from-multiple-supertraits.rs
@@ -13,18 +13,12 @@
 
 pub trait Vehicle {
     type Color;
-    //~^ NOTE ambiguous `Color` from `Vehicle`
-    //~| NOTE ambiguous `Color` from `Vehicle`
-    //~| NOTE ambiguous `Color` from `Vehicle`
 
     fn go(&self) {  }
 }
 
 pub trait Box {
     type Color;
-    //~^ NOTE ambiguous `Color` from `Box`
-    //~| NOTE ambiguous `Color` from `Box`
-    //~| NOTE ambiguous `Color` from `Box`
     //
     fn mail(&self) {  }
 }
@@ -34,19 +28,15 @@ pub trait BoxCar : Box + Vehicle {
 
 fn dent<C:BoxCar>(c: C, color: C::Color) {
     //~^ ERROR ambiguous associated type `Color` in bounds of `C`
-    //~| NOTE ambiguous associated type `Color`
 }
 
 fn dent_object<COLOR>(c: BoxCar<Color=COLOR>) {
     //~^ ERROR ambiguous associated type
     //~| ERROR the value of the associated type `Color` (from the trait `Vehicle`) must be specified
-    //~| NOTE ambiguous associated type `Color`
-    //~| NOTE missing associated type `Color` value
 }
 
 fn paint<C:BoxCar>(c: C, d: C::Color) {
     //~^ ERROR ambiguous associated type `Color` in bounds of `C`
-    //~| NOTE ambiguous associated type `Color`
 }
 
 pub fn main() { }
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 bc2b8193c85..6215c1dc089 100644
--- a/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr
+++ b/src/test/ui/associated-type-projection-from-multiple-supertraits.stderr
@@ -1,43 +1,43 @@
 error[E0221]: ambiguous associated type `Color` in bounds of `C`
-  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:35:32
+  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:29:32
    |
 15 |     type Color;
    |     ----------- ambiguous `Color` from `Vehicle`
 ...
-24 |     type Color;
+21 |     type Color;
    |     ----------- ambiguous `Color` from `Box`
 ...
-35 | fn dent<C:BoxCar>(c: C, color: C::Color) {
+29 | fn dent<C:BoxCar>(c: C, color: C::Color) {
    |                                ^^^^^^^^ ambiguous associated type `Color`
 
 error[E0221]: ambiguous associated type `Color` in bounds of `BoxCar`
-  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:40:33
+  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:33:33
    |
 15 |     type Color;
    |     ----------- ambiguous `Color` from `Vehicle`
 ...
-24 |     type Color;
+21 |     type Color;
    |     ----------- ambiguous `Color` from `Box`
 ...
-40 | fn dent_object<COLOR>(c: BoxCar<Color=COLOR>) {
+33 | fn dent_object<COLOR>(c: BoxCar<Color=COLOR>) {
    |                                 ^^^^^^^^^^^ ambiguous associated type `Color`
 
 error[E0191]: the value of the associated type `Color` (from the trait `Vehicle`) must be specified
-  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:40:26
+  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:33:26
    |
-40 | fn dent_object<COLOR>(c: BoxCar<Color=COLOR>) {
+33 | fn dent_object<COLOR>(c: BoxCar<Color=COLOR>) {
    |                          ^^^^^^^^^^^^^^^^^^^ missing associated type `Color` value
 
 error[E0221]: ambiguous associated type `Color` in bounds of `C`
-  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:47:29
+  --> $DIR/associated-type-projection-from-multiple-supertraits.rs:38:29
    |
 15 |     type Color;
    |     ----------- ambiguous `Color` from `Vehicle`
 ...
-24 |     type Color;
+21 |     type Color;
    |     ----------- ambiguous `Color` from `Box`
 ...
-47 | fn paint<C:BoxCar>(c: C, d: C::Color) {
+38 | fn paint<C:BoxCar>(c: C, d: C::Color) {
    |                             ^^^^^^^^ ambiguous associated type `Color`
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/associated-types-ICE-when-projecting-out-of-err.rs b/src/test/ui/associated-types-ICE-when-projecting-out-of-err.rs
index 74a388e7269..75b60aa8d10 100644
--- a/src/test/ui/associated-types-ICE-when-projecting-out-of-err.rs
+++ b/src/test/ui/associated-types-ICE-when-projecting-out-of-err.rs
@@ -32,5 +32,4 @@ fn ice<A>(a: A) {
     let r = loop {};
     r = r + a;
     //~^ ERROR the trait bound `(): Add<A>` is not satisfied
-    //~| NOTE the trait `Add<A>` is not implemented for `()`
 }
diff --git a/src/test/ui/associated-types-in-ambiguous-context.rs b/src/test/ui/associated-types-in-ambiguous-context.rs
index ff886e63dc5..becbc27138b 100644
--- a/src/test/ui/associated-types-in-ambiguous-context.rs
+++ b/src/test/ui/associated-types-in-ambiguous-context.rs
@@ -15,21 +15,15 @@ trait Get {
 
 fn get<T:Get,U:Get>(x: T, y: U) -> Get::Value {}
 //~^ ERROR ambiguous associated type
-//~| NOTE ambiguous associated type
-//~| NOTE specify the type using the syntax `<Type as Get>::Value`
 
 trait Grab {
     type Value;
     fn grab(&self) -> Grab::Value;
     //~^ ERROR ambiguous associated type
-    //~| NOTE ambiguous associated type
-    //~| NOTE specify the type using the syntax `<Type as Grab>::Value`
 }
 
 type X = std::ops::Deref::Target;
 //~^ ERROR ambiguous associated type
-//~| NOTE ambiguous associated type
-//~| NOTE specify the type using the syntax `<Type as std::ops::Deref>::Target`
 
 fn main() {
 }
diff --git a/src/test/ui/associated-types-in-ambiguous-context.stderr b/src/test/ui/associated-types-in-ambiguous-context.stderr
index a568d104acd..b0196234bda 100644
--- a/src/test/ui/associated-types-in-ambiguous-context.stderr
+++ b/src/test/ui/associated-types-in-ambiguous-context.stderr
@@ -7,17 +7,17 @@ error[E0223]: ambiguous associated type
    = note: specify the type using the syntax `<Type as Get>::Value`
 
 error[E0223]: ambiguous associated type
-  --> $DIR/associated-types-in-ambiguous-context.rs:29:10
+  --> $DIR/associated-types-in-ambiguous-context.rs:25:10
    |
-29 | type X = std::ops::Deref::Target;
+25 | type X = std::ops::Deref::Target;
    |          ^^^^^^^^^^^^^^^^^^^^^^^ ambiguous associated type
    |
    = note: specify the type using the syntax `<Type as std::ops::Deref>::Target`
 
 error[E0223]: ambiguous associated type
-  --> $DIR/associated-types-in-ambiguous-context.rs:23:23
+  --> $DIR/associated-types-in-ambiguous-context.rs:21:23
    |
-23 |     fn grab(&self) -> Grab::Value;
+21 |     fn grab(&self) -> Grab::Value;
    |                       ^^^^^^^^^^^ ambiguous associated type
    |
    = note: specify the type using the syntax `<Type as Grab>::Value`
diff --git a/src/test/ui/augmented-assignments.rs b/src/test/ui/augmented-assignments.rs
index 736aa465aa7..82f5c49eeb7 100644
--- a/src/test/ui/augmented-assignments.rs
+++ b/src/test/ui/augmented-assignments.rs
@@ -22,7 +22,6 @@ fn main() {
     let mut x = Int(1);
     x   //~ error: use of moved value: `x`
     //~^ value used here after move
-    //~| note: move occurs because `x` has type `Int`
     +=
     x;  //~ value moved here
 
diff --git a/src/test/ui/augmented-assignments.stderr b/src/test/ui/augmented-assignments.stderr
index dcc14ea8fdf..0367270d166 100644
--- a/src/test/ui/augmented-assignments.stderr
+++ b/src/test/ui/augmented-assignments.stderr
@@ -1,10 +1,10 @@
 error[E0596]: cannot borrow immutable local variable `y` as mutable
-  --> $DIR/augmented-assignments.rs:31:5
+  --> $DIR/augmented-assignments.rs:30:5
    |
-29 |     let y = Int(2);
+28 |     let y = Int(2);
    |         - consider changing this to `mut y`
-30 |     //~^ consider changing this to `mut y`
-31 |     y   //~ error: cannot borrow immutable local variable `y` as mutable
+29 |     //~^ consider changing this to `mut y`
+30 |     y   //~ error: cannot borrow immutable local variable `y` as mutable
    |     ^ cannot borrow mutably
 
 error[E0382]: use of moved value: `x`
@@ -13,7 +13,7 @@ error[E0382]: use of moved value: `x`
 23 |     x   //~ error: use of moved value: `x`
    |     ^ value used here after move
 ...
-27 |     x;  //~ value moved here
+26 |     x;  //~ value moved here
    |     - value moved here
    |
    = note: move occurs because `x` has type `Int`, which does not implement the `Copy` trait
diff --git a/src/test/ui/binary-op-on-double-ref.rs b/src/test/ui/binary-op-on-double-ref.rs
index 23ca026f541..8b31be911b8 100644
--- a/src/test/ui/binary-op-on-double-ref.rs
+++ b/src/test/ui/binary-op-on-double-ref.rs
@@ -13,8 +13,6 @@ fn main() {
     let vr = v.iter().filter(|x| {
         x % 2 == 0
         //~^ ERROR binary operation `%` cannot be applied to type `&&{integer}`
-        //~| NOTE this is a reference to a type that `%` can be applied to
-        //~| NOTE an implementation of `std::ops::Rem` might be missing for `&&{integer}`
     });
     println!("{:?}", vr);
 }
diff --git a/src/test/ui/blind-item-item-shadow.rs b/src/test/ui/blind-item-item-shadow.rs
index af3abe5e056..38f9a552e1b 100644
--- a/src/test/ui/blind-item-item-shadow.rs
+++ b/src/test/ui/blind-item-item-shadow.rs
@@ -8,11 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-mod foo { pub mod foo {  } } //~ NOTE previous definition of the module `foo` here
+mod foo { pub mod foo {  } }
 
 use foo::foo;
 //~^ ERROR the name `foo` is defined multiple times
 //~| `foo` reimported here
-//~| NOTE `foo` must be defined only once in the type namespace of this module
 
 fn main() {}
diff --git a/src/test/ui/blind-item-item-shadow.stderr b/src/test/ui/blind-item-item-shadow.stderr
index 5eab6282450..b9f3e742c66 100644
--- a/src/test/ui/blind-item-item-shadow.stderr
+++ b/src/test/ui/blind-item-item-shadow.stderr
@@ -1,7 +1,7 @@
 error[E0255]: the name `foo` is defined multiple times
   --> $DIR/blind-item-item-shadow.rs:13:5
    |
-11 | mod foo { pub mod foo {  } } //~ NOTE previous definition of the module `foo` here
+11 | mod foo { pub mod foo {  } }
    | ---------------------------- previous definition of the module `foo` here
 12 | 
 13 | use foo::foo;
diff --git a/src/test/ui/block-result/consider-removing-last-semi.rs b/src/test/ui/block-result/consider-removing-last-semi.rs
index 530a0e41562..0d4deb3c804 100644
--- a/src/test/ui/block-result/consider-removing-last-semi.rs
+++ b/src/test/ui/block-result/consider-removing-last-semi.rs
@@ -10,12 +10,12 @@
 
 fn f() -> String {  //~ ERROR mismatched types
     0u8;
-    "bla".to_string();  //~ HELP consider removing this semicolon
+    "bla".to_string();
 }
 
 fn g() -> String {  //~ ERROR mismatched types
     "this won't work".to_string();
-    "removeme".to_string(); //~ HELP consider removing this semicolon
+    "removeme".to_string();
 }
 
 fn main() {}
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 5905cfa9322..453f3879f4b 100644
--- a/src/test/ui/block-result/consider-removing-last-semi.stderr
+++ b/src/test/ui/block-result/consider-removing-last-semi.stderr
@@ -4,7 +4,7 @@ error[E0308]: mismatched types
 11 |   fn f() -> String {  //~ ERROR mismatched types
    |  __________________^
 12 | |     0u8;
-13 | |     "bla".to_string();  //~ HELP consider removing this semicolon
+13 | |     "bla".to_string();
    | |                      - help: consider removing this semicolon
 14 | | }
    | |_^ expected struct `std::string::String`, found ()
@@ -18,7 +18,7 @@ error[E0308]: mismatched types
 16 |   fn g() -> String {  //~ ERROR mismatched types
    |  __________________^
 17 | |     "this won't work".to_string();
-18 | |     "removeme".to_string(); //~ HELP consider removing this semicolon
+18 | |     "removeme".to_string();
    | |                           - help: consider removing this semicolon
 19 | | }
    | |_^ expected struct `std::string::String`, found ()
diff --git a/src/test/ui/block-result/issue-11714.rs b/src/test/ui/block-result/issue-11714.rs
index 255eb771694..bc3936582aa 100644
--- a/src/test/ui/block-result/issue-11714.rs
+++ b/src/test/ui/block-result/issue-11714.rs
@@ -11,7 +11,7 @@
 fn blah() -> i32 { //~ ERROR mismatched types
     1
 
-    ; //~ HELP consider removing this semicolon
+    ;
 }
 
 fn main() { }
diff --git a/src/test/ui/block-result/issue-11714.stderr b/src/test/ui/block-result/issue-11714.stderr
index 4daf40e6172..946d1804894 100644
--- a/src/test/ui/block-result/issue-11714.stderr
+++ b/src/test/ui/block-result/issue-11714.stderr
@@ -5,7 +5,7 @@ error[E0308]: mismatched types
    |  __________________^
 12 | |     1
 13 | |
-14 | |     ; //~ HELP consider removing this semicolon
+14 | |     ;
    | |     - help: consider removing this semicolon
 15 | | }
    | |_^ expected i32, found ()
diff --git a/src/test/ui/block-result/issue-13428.rs b/src/test/ui/block-result/issue-13428.rs
index 9406199afc2..36520301f55 100644
--- a/src/test/ui/block-result/issue-13428.rs
+++ b/src/test/ui/block-result/issue-13428.rs
@@ -15,12 +15,12 @@ fn foo() -> String {  //~ ERROR mismatched types
             "world")
     // Put the trailing semicolon on its own line to test that the
     // note message gets the offending semicolon exactly
-    ;   //~ HELP consider removing this semicolon
+    ;
 }
 
 fn bar() -> String {  //~ ERROR mismatched types
     "foobar".to_string()
-    ;   //~ HELP consider removing this semicolon
+    ;
 }
 
 pub fn main() {}
diff --git a/src/test/ui/block-result/issue-13428.stderr b/src/test/ui/block-result/issue-13428.stderr
index 7bd4529c463..22bbb2aadf6 100644
--- a/src/test/ui/block-result/issue-13428.stderr
+++ b/src/test/ui/block-result/issue-13428.stderr
@@ -7,7 +7,7 @@ error[E0308]: mismatched types
 15 | |             "world")
 16 | |     // Put the trailing semicolon on its own line to test that the
 17 | |     // note message gets the offending semicolon exactly
-18 | |     ;   //~ HELP consider removing this semicolon
+18 | |     ;
    | |     - help: consider removing this semicolon
 19 | | }
    | |_^ expected struct `std::string::String`, found ()
@@ -21,7 +21,7 @@ error[E0308]: mismatched types
 21 |   fn bar() -> String {  //~ ERROR mismatched types
    |  ____________________^
 22 | |     "foobar".to_string()
-23 | |     ;   //~ HELP consider removing this semicolon
+23 | |     ;
    | |     - help: consider removing this semicolon
 24 | | }
    | |_^ expected struct `std::string::String`, found ()
diff --git a/src/test/ui/bogus-tag.rs b/src/test/ui/bogus-tag.rs
index a629f76d8b3..46536cc8575 100644
--- a/src/test/ui/bogus-tag.rs
+++ b/src/test/ui/bogus-tag.rs
@@ -10,7 +10,6 @@
 
 
 enum color { rgb(isize, isize, isize), rgba(isize, isize, isize, isize), }
-//~^ NOTE variant `hsl` not found here
 
 fn main() {
     let red: color = color::rgb(255, 0, 0);
@@ -18,6 +17,5 @@ fn main() {
       color::rgb(r, g, b) => { println!("rgb"); }
       color::hsl(h, s, l) => { println!("hsl"); }
       //~^ ERROR no variant
-      //~| NOTE variant not found in `color`
     }
 }
diff --git a/src/test/ui/bogus-tag.stderr b/src/test/ui/bogus-tag.stderr
index 66e7d628551..49dedcd0742 100644
--- a/src/test/ui/bogus-tag.stderr
+++ b/src/test/ui/bogus-tag.stderr
@@ -1,10 +1,10 @@
 error[E0599]: no variant named `hsl` found for type `color` in the current scope
-  --> $DIR/bogus-tag.rs:19:7
+  --> $DIR/bogus-tag.rs:18:7
    |
 12 | enum color { rgb(isize, isize, isize), rgba(isize, isize, isize, isize), }
    | ---------- variant `hsl` not found here
 ...
-19 |       color::hsl(h, s, l) => { println!("hsl"); }
+18 |       color::hsl(h, s, l) => { println!("hsl"); }
    |       ^^^^^^^^^^^^^^^^^^^ variant not found in `color`
 
 error: aborting due to previous error
diff --git a/src/test/ui/borrowck/borrowck-box-insensitivity.rs b/src/test/ui/borrowck/borrowck-box-insensitivity.rs
index d09cb73d670..75bf6bce04b 100644
--- a/src/test/ui/borrowck/borrowck-box-insensitivity.rs
+++ b/src/test/ui/borrowck/borrowck-box-insensitivity.rs
@@ -60,7 +60,6 @@ fn borrow_after_move() {
 fn move_after_borrow() {
     let a: Box<_> = box B { x: box 0, y: box 1 };
     let _x = &a.x;
-    //~^ NOTE borrow of `a.x` occurs here
     let _y = a.y;
     //~^ ERROR cannot move
     //~| move out of
@@ -69,15 +68,12 @@ fn move_after_borrow() {
 fn copy_after_mut_borrow() {
     let mut a: Box<_> = box A { x: box 0, y: 1 };
     let _x = &mut a.x;
-    //~^ NOTE borrow of `a.x` occurs here
     let _y = a.y; //~ ERROR cannot use
-    //~^ NOTE use of borrowed `a.x`
 }
 
 fn move_after_mut_borrow() {
     let mut a: Box<_> = box B { x: box 0, y: box 1 };
     let _x = &mut a.x;
-    //~^ NOTE borrow of `a.x` occurs here
     let _y = a.y;
     //~^ ERROR cannot move
     //~| move out of
@@ -86,27 +82,22 @@ fn move_after_mut_borrow() {
 fn borrow_after_mut_borrow() {
     let mut a: Box<_> = box A { x: box 0, y: 1 };
     let _x = &mut a.x;
-    //~^ NOTE mutable borrow occurs here (via `a.x`)
     let _y = &a.y; //~ ERROR cannot borrow
     //~^ immutable borrow occurs here (via `a.y`)
 }
-//~^ NOTE mutable borrow ends here
 
 fn mut_borrow_after_borrow() {
     let mut a: Box<_> = box A { x: box 0, y: 1 };
     let _x = &a.x;
-    //~^ NOTE immutable borrow occurs here (via `a.x`)
     let _y = &mut a.y; //~ ERROR cannot borrow
     //~^ mutable borrow occurs here (via `a.y`)
 }
-//~^ NOTE immutable borrow ends here
 
 fn copy_after_move_nested() {
     let a: Box<_> = box C { x: box A { x: box 0, y: 1 }, y: 2 };
     let _x = a.x.x;
     //~^ value moved here
     let _y = a.y; //~ ERROR use of collaterally moved
-    //~^ NOTE move occurs because `a.x.x` has type `std::boxed::Box<isize>`
     //~| value used here after move
 }
 
@@ -115,7 +106,6 @@ fn move_after_move_nested() {
     let _x = a.x.x;
     //~^ value moved here
     let _y = a.y; //~ ERROR use of collaterally moved
-    //~^ NOTE move occurs because `a.x.x` has type `std::boxed::Box<isize>`
     //~| value used here after move
 }
 
@@ -124,7 +114,6 @@ fn borrow_after_move_nested() {
     let _x = a.x.x;
     //~^ value moved here
     let _y = &a.y; //~ ERROR use of collaterally moved
-    //~^ NOTE move occurs because `a.x.x` has type `std::boxed::Box<isize>`
     //~| value used here after move
 }
 
@@ -140,15 +129,12 @@ fn move_after_borrow_nested() {
 fn copy_after_mut_borrow_nested() {
     let mut a: Box<_> = box C { x: box A { x: box 0, y: 1 }, y: 2 };
     let _x = &mut a.x.x;
-    //~^ NOTE borrow of `a.x.x` occurs here
     let _y = a.y; //~ ERROR cannot use
-    //~^ NOTE use of borrowed `a.x.x`
 }
 
 fn move_after_mut_borrow_nested() {
     let mut a: Box<_> = box D { x: box A { x: box 0, y: 1 }, y: box 2 };
     let _x = &mut a.x.x;
-    //~^ NOTE borrow of `a.x.x` occurs here
     let _y = a.y;
     //~^ ERROR cannot move
     //~| move out of
@@ -161,7 +147,6 @@ fn borrow_after_mut_borrow_nested() {
     let _y = &a.y; //~ ERROR cannot borrow
     //~^ immutable borrow occurs here
 }
-//~^ NOTE mutable borrow ends here
 
 fn mut_borrow_after_borrow_nested() {
     let mut a: Box<_> = box C { x: box A { x: box 0, y: 1 }, y: 2 };
@@ -170,7 +155,6 @@ fn mut_borrow_after_borrow_nested() {
     let _y = &mut a.y; //~ ERROR cannot borrow
     //~^ mutable borrow occurs here
 }
-//~^ NOTE immutable borrow ends here
 
 fn main() {
     copy_after_move();
diff --git a/src/test/ui/borrowck/borrowck-box-insensitivity.stderr b/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
index 120a3f9c3ab..88e8490843d 100644
--- a/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
+++ b/src/test/ui/borrowck/borrowck-box-insensitivity.stderr
@@ -32,138 +32,131 @@ error[E0382]: use of moved value: `a`
    = note: move occurs because `a.x` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0505]: cannot move out of `a.y` because it is borrowed
-  --> $DIR/borrowck-box-insensitivity.rs:64:9
+  --> $DIR/borrowck-box-insensitivity.rs:63:9
    |
 62 |     let _x = &a.x;
    |               --- borrow of `a.x` occurs here
-63 |     //~^ NOTE borrow of `a.x` occurs here
-64 |     let _y = a.y;
+63 |     let _y = a.y;
    |         ^^ move out of `a.y` occurs here
 
 error[E0503]: cannot use `a.y` because it was mutably borrowed
-  --> $DIR/borrowck-box-insensitivity.rs:73:9
+  --> $DIR/borrowck-box-insensitivity.rs:71:9
    |
-71 |     let _x = &mut a.x;
+70 |     let _x = &mut a.x;
    |                   --- borrow of `a.x` occurs here
-72 |     //~^ NOTE borrow of `a.x` occurs here
-73 |     let _y = a.y; //~ ERROR cannot use
+71 |     let _y = a.y; //~ ERROR cannot use
    |         ^^ use of borrowed `a.x`
 
 error[E0505]: cannot move out of `a.y` because it is borrowed
-  --> $DIR/borrowck-box-insensitivity.rs:81:9
+  --> $DIR/borrowck-box-insensitivity.rs:77:9
    |
-79 |     let _x = &mut a.x;
+76 |     let _x = &mut a.x;
    |                   --- borrow of `a.x` occurs here
-80 |     //~^ NOTE borrow of `a.x` occurs here
-81 |     let _y = a.y;
+77 |     let _y = a.y;
    |         ^^ move out of `a.y` occurs here
 
 error[E0502]: cannot borrow `a` (via `a.y`) as immutable because `a` is also borrowed as mutable (via `a.x`)
-  --> $DIR/borrowck-box-insensitivity.rs:90:15
+  --> $DIR/borrowck-box-insensitivity.rs:85:15
    |
-88 |     let _x = &mut a.x;
+84 |     let _x = &mut a.x;
    |                   --- mutable borrow occurs here (via `a.x`)
-89 |     //~^ NOTE mutable borrow occurs here (via `a.x`)
-90 |     let _y = &a.y; //~ ERROR cannot borrow
+85 |     let _y = &a.y; //~ ERROR cannot borrow
    |               ^^^ immutable borrow occurs here (via `a.y`)
-91 |     //~^ immutable borrow occurs here (via `a.y`)
-92 | }
+86 |     //~^ immutable borrow occurs here (via `a.y`)
+87 | }
    | - mutable borrow ends here
 
 error[E0502]: cannot borrow `a` (via `a.y`) as mutable because `a` is also borrowed as immutable (via `a.x`)
-   --> $DIR/borrowck-box-insensitivity.rs:99:19
-    |
-97  |     let _x = &a.x;
-    |               --- immutable borrow occurs here (via `a.x`)
-98  |     //~^ NOTE immutable borrow occurs here (via `a.x`)
-99  |     let _y = &mut a.y; //~ ERROR cannot borrow
-    |                   ^^^ mutable borrow occurs here (via `a.y`)
-100 |     //~^ mutable borrow occurs here (via `a.y`)
-101 | }
-    | - immutable borrow ends here
+  --> $DIR/borrowck-box-insensitivity.rs:92:19
+   |
+91 |     let _x = &a.x;
+   |               --- immutable borrow occurs here (via `a.x`)
+92 |     let _y = &mut a.y; //~ ERROR cannot borrow
+   |                   ^^^ mutable borrow occurs here (via `a.y`)
+93 |     //~^ mutable borrow occurs here (via `a.y`)
+94 | }
+   | - immutable borrow ends here
 
 error[E0382]: use of collaterally moved value: `a.y`
-   --> $DIR/borrowck-box-insensitivity.rs:108:9
+   --> $DIR/borrowck-box-insensitivity.rs:100:9
     |
-106 |     let _x = a.x.x;
+98  |     let _x = a.x.x;
     |         -- value moved here
-107 |     //~^ value moved here
-108 |     let _y = a.y; //~ ERROR use of collaterally moved
+99  |     //~^ value moved here
+100 |     let _y = a.y; //~ ERROR use of collaterally moved
     |         ^^ value used here after move
     |
     = note: move occurs because `a.x.x` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0382]: use of collaterally moved value: `a.y`
-   --> $DIR/borrowck-box-insensitivity.rs:117:9
+   --> $DIR/borrowck-box-insensitivity.rs:108:9
     |
-115 |     let _x = a.x.x;
+106 |     let _x = a.x.x;
     |         -- value moved here
-116 |     //~^ value moved here
-117 |     let _y = a.y; //~ ERROR use of collaterally moved
+107 |     //~^ value moved here
+108 |     let _y = a.y; //~ ERROR use of collaterally moved
     |         ^^ value used here after move
     |
     = note: move occurs because `a.x.x` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0382]: use of collaterally moved value: `a.y`
-   --> $DIR/borrowck-box-insensitivity.rs:126:15
+   --> $DIR/borrowck-box-insensitivity.rs:116:15
     |
-124 |     let _x = a.x.x;
+114 |     let _x = a.x.x;
     |         -- value moved here
-125 |     //~^ value moved here
-126 |     let _y = &a.y; //~ ERROR use of collaterally moved
+115 |     //~^ value moved here
+116 |     let _y = &a.y; //~ ERROR use of collaterally moved
     |               ^^^ value used here after move
     |
     = note: move occurs because `a.x.x` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0505]: cannot move out of `a.y` because it is borrowed
-   --> $DIR/borrowck-box-insensitivity.rs:135:9
+   --> $DIR/borrowck-box-insensitivity.rs:124:9
     |
-133 |     let _x = &a.x.x;
+122 |     let _x = &a.x.x;
     |               ----- borrow of `a.x.x` occurs here
-134 |     //~^ borrow of `a.x.x` occurs here
-135 |     let _y = a.y;
+123 |     //~^ borrow of `a.x.x` occurs here
+124 |     let _y = a.y;
     |         ^^ move out of `a.y` occurs here
 
 error[E0503]: cannot use `a.y` because it was mutably borrowed
-   --> $DIR/borrowck-box-insensitivity.rs:144:9
+   --> $DIR/borrowck-box-insensitivity.rs:132:9
     |
-142 |     let _x = &mut a.x.x;
+131 |     let _x = &mut a.x.x;
     |                   ----- borrow of `a.x.x` occurs here
-143 |     //~^ NOTE borrow of `a.x.x` occurs here
-144 |     let _y = a.y; //~ ERROR cannot use
+132 |     let _y = a.y; //~ ERROR cannot use
     |         ^^ use of borrowed `a.x.x`
 
 error[E0505]: cannot move out of `a.y` because it is borrowed
-   --> $DIR/borrowck-box-insensitivity.rs:152:9
+   --> $DIR/borrowck-box-insensitivity.rs:138:9
     |
-150 |     let _x = &mut a.x.x;
+137 |     let _x = &mut a.x.x;
     |                   ----- borrow of `a.x.x` occurs here
-151 |     //~^ NOTE borrow of `a.x.x` occurs here
-152 |     let _y = a.y;
+138 |     let _y = a.y;
     |         ^^ move out of `a.y` occurs here
 
 error[E0502]: cannot borrow `a.y` as immutable because `a.x.x` is also borrowed as mutable
-   --> $DIR/borrowck-box-insensitivity.rs:161:15
+   --> $DIR/borrowck-box-insensitivity.rs:147:15
     |
-159 |     let _x = &mut a.x.x;
+145 |     let _x = &mut a.x.x;
     |                   ----- mutable borrow occurs here
-160 |     //~^ mutable borrow occurs here
-161 |     let _y = &a.y; //~ ERROR cannot borrow
+146 |     //~^ mutable borrow occurs here
+147 |     let _y = &a.y; //~ ERROR cannot borrow
     |               ^^^ immutable borrow occurs here
-162 |     //~^ immutable borrow occurs here
-163 | }
+148 |     //~^ immutable borrow occurs here
+149 | }
     | - mutable borrow ends here
 
 error[E0502]: cannot borrow `a.y` as mutable because `a.x.x` is also borrowed as immutable
-   --> $DIR/borrowck-box-insensitivity.rs:170:19
+   --> $DIR/borrowck-box-insensitivity.rs:155:19
     |
-168 |     let _x = &a.x.x;
+153 |     let _x = &a.x.x;
     |               ----- immutable borrow occurs here
-169 |     //~^ immutable borrow occurs here
-170 |     let _y = &mut a.y; //~ ERROR cannot borrow
+154 |     //~^ immutable borrow occurs here
+155 |     let _y = &mut a.y; //~ ERROR cannot borrow
     |                   ^^^ mutable borrow occurs here
-171 |     //~^ mutable borrow occurs here
-172 | }
+156 |     //~^ mutable borrow occurs here
+157 | }
     | - immutable borrow ends here
 
 error: aborting due to 16 previous errors
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs
index ec330247f23..87e40df7663 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs
+++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs
@@ -22,6 +22,4 @@ fn main() {
     let mut books = vec![1,2,3];
     spawn(|| books.push(4));
     //~^ ERROR E0373
-    //~| NOTE `books` is borrowed here
-    //~| NOTE may outlive borrowed value `books`
 }
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs
index 81685c32f2f..67700be890b 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs
+++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs
@@ -20,8 +20,6 @@ fn foo<'a>(x: &'a i32) -> Box<FnMut()+'a> {
     let mut books = vec![1,2,3];
     Box::new(|| books.push(4))
     //~^ ERROR E0373
-    //~| NOTE `books` is borrowed here
-    //~| NOTE may outlive borrowed value `books`
 }
 
 fn main() { }
diff --git a/src/test/ui/borrowck/borrowck-in-static.rs b/src/test/ui/borrowck/borrowck-in-static.rs
index b30234811ac..16b0e8638de 100644
--- a/src/test/ui/borrowck/borrowck-in-static.rs
+++ b/src/test/ui/borrowck/borrowck-in-static.rs
@@ -11,9 +11,8 @@
 // check that borrowck looks inside consts/statics
 
 static FN : &'static (Fn() -> (Box<Fn()->Box<i32>>) + Sync) = &|| {
-    let x = Box::new(0); //~ NOTE captured outer variable
+    let x = Box::new(0);
     Box::new(|| x) //~ ERROR cannot move out of captured outer variable
-    //~^ NOTE cannot move out of captured outer variable
 };
 
 fn main() {
diff --git a/src/test/ui/borrowck/borrowck-in-static.stderr b/src/test/ui/borrowck/borrowck-in-static.stderr
index 92ca36e117e..6e47c46cdec 100644
--- a/src/test/ui/borrowck/borrowck-in-static.stderr
+++ b/src/test/ui/borrowck/borrowck-in-static.stderr
@@ -1,7 +1,7 @@
 error[E0507]: cannot move out of captured outer variable in an `Fn` closure
   --> $DIR/borrowck-in-static.rs:15:17
    |
-14 |     let x = Box::new(0); //~ NOTE captured outer variable
+14 |     let x = Box::new(0);
    |         - captured outer variable
 15 |     Box::new(|| x) //~ ERROR cannot move out of captured outer variable
    |                 ^ cannot move out of captured outer variable in an `Fn` closure
diff --git a/src/test/ui/borrowck/borrowck-move-error-with-note.rs b/src/test/ui/borrowck/borrowck-move-error-with-note.rs
index 5d9c9d0bd46..e0491159a68 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.rs
+++ b/src/test/ui/borrowck/borrowck-move-error-with-note.rs
@@ -20,9 +20,9 @@ fn blah() {
     let f = &Foo::Foo1(box 1, box 2);
     match *f {             //~ ERROR cannot move out of
                            //~| cannot move out
-        Foo::Foo1(num1,         //~ NOTE to prevent move
-                  num2) => (),  //~ NOTE and here
-        Foo::Foo2(num) => (),   //~ NOTE and here
+        Foo::Foo1(num1,
+                  num2) => (),
+        Foo::Foo2(num) => (),
         Foo::Foo3 => ()
     }
 }
@@ -39,8 +39,8 @@ fn move_in_match() {
     match (S {f: "foo".to_string(), g: "bar".to_string()}) {
         S {         //~ ERROR cannot move out of type `S`, which implements the `Drop` trait
         //~| cannot move out of here
-            f: _s,  //~ NOTE to prevent move
-            g: _t   //~ NOTE and here
+            f: _s,
+            g: _t
         } => {}
     }
 }
@@ -56,7 +56,7 @@ fn blah2() {
     let a = &A { a: box 1 };
     match a.a {           //~ ERROR cannot move out of
                           //~| cannot move out
-        n => {            //~ NOTE to prevent move
+        n => {
             free(n)
         }
     }
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 2742899e78a..c16c80345d5 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
+++ b/src/test/ui/borrowck/borrowck-move-error-with-note.stderr
@@ -4,11 +4,11 @@ error[E0507]: cannot move out of borrowed content
 21 |     match *f {             //~ ERROR cannot move out of
    |           ^^ cannot move out of borrowed content
 22 |                            //~| cannot move out
-23 |         Foo::Foo1(num1,         //~ NOTE to prevent move
+23 |         Foo::Foo1(num1,
    |                   ---- hint: to prevent move, use `ref num1` or `ref mut num1`
-24 |                   num2) => (),  //~ NOTE and here
+24 |                   num2) => (),
    |                   ---- ...and here (use `ref num2` or `ref mut num2`)
-25 |         Foo::Foo2(num) => (),   //~ NOTE and here
+25 |         Foo::Foo2(num) => (),
    |                   --- ...and here (use `ref num` or `ref mut num`)
 
 error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
@@ -16,9 +16,9 @@ error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
    |
 40 | /         S {         //~ ERROR cannot move out of type `S`, which implements the `Drop` trait
 41 | |         //~| cannot move out of here
-42 | |             f: _s,  //~ NOTE to prevent move
+42 | |             f: _s,
    | |                -- hint: to prevent move, use `ref _s` or `ref mut _s`
-43 | |             g: _t   //~ NOTE and here
+43 | |             g: _t
    | |                -- ...and here (use `ref _t` or `ref mut _t`)
 44 | |         } => {}
    | |_________^ cannot move out of here
@@ -29,7 +29,7 @@ error[E0507]: cannot move out of borrowed content
 57 |     match a.a {           //~ ERROR cannot move out of
    |           ^ cannot move out of borrowed content
 58 |                           //~| cannot move out
-59 |         n => {            //~ NOTE to prevent move
+59 |         n => {
    |         - hint: to prevent move, use `ref n` or `ref mut n`
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs b/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs
index 311208f07b8..938ce3f2cb8 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs
+++ b/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs
@@ -32,7 +32,6 @@ pub fn main() {
                 //~| cannot move out
                 //~| to prevent move
                   Foo { string: b }] => {
-                    //~^ NOTE and here
                 }
                 _ => {
                     unreachable!();
diff --git a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
index 3ca8cc431e0..a6553160557 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
+++ b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
@@ -17,7 +17,6 @@ fn main() {
     let z = &x; //~ ERROR cannot borrow
     //~^ immutable borrow occurs here
 }
-//~^ NOTE mutable borrow ends here
 
 fn foo() {
     match true {
@@ -29,7 +28,6 @@ fn foo() {
             let z = &mut x; //~ ERROR cannot borrow
             //~^ mutable borrow occurs here
         }
-     //~^ NOTE immutable borrow ends here
         false => ()
     }
 }
@@ -43,5 +41,4 @@ fn bar() {
         let z = &mut x; //~ ERROR cannot borrow
         //~^ second mutable borrow occurs here
     };
- //~^ NOTE first borrow ends here
 }
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 107cd38adfe..fb6917141fc 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
+++ b/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
@@ -11,27 +11,27 @@ error[E0502]: cannot borrow `x` as immutable because it is also borrowed as muta
    | - mutable borrow ends here
 
 error[E0502]: cannot borrow `x` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-report-with-custom-diagnostic.rs:29:26
+  --> $DIR/borrowck-report-with-custom-diagnostic.rs:28:26
    |
-27 |             let y = &x;
+26 |             let y = &x;
    |                      - immutable borrow occurs here
-28 |             //~^ immutable borrow occurs here
-29 |             let z = &mut x; //~ ERROR cannot borrow
+27 |             //~^ immutable borrow occurs here
+28 |             let z = &mut x; //~ ERROR cannot borrow
    |                          ^ mutable borrow occurs here
-30 |             //~^ mutable borrow occurs here
-31 |         }
+29 |             //~^ mutable borrow occurs here
+30 |         }
    |         - immutable borrow ends here
 
 error[E0499]: cannot borrow `x` as mutable more than once at a time
-  --> $DIR/borrowck-report-with-custom-diagnostic.rs:43:22
+  --> $DIR/borrowck-report-with-custom-diagnostic.rs:41:22
    |
-41 |         let y = &mut x;
+39 |         let y = &mut x;
    |                      - first mutable borrow occurs here
-42 |         //~^ first mutable borrow occurs here
-43 |         let z = &mut x; //~ ERROR cannot borrow
+40 |         //~^ first mutable borrow occurs here
+41 |         let z = &mut x; //~ ERROR cannot borrow
    |                      ^ second mutable borrow occurs here
-44 |         //~^ second mutable borrow occurs here
-45 |     };
+42 |         //~^ second mutable borrow occurs here
+43 |     };
    |     - first borrow ends here
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
index 98bb6b14b94..07b268f1a4b 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
@@ -63,7 +63,7 @@ fn d() {
     match vec {
         &mut [ //~ ERROR cannot move out
         //~^ cannot move out
-         _b] => {} //~ NOTE to prevent move
+         _b] => {}
         _ => {}
     }
     let a = vec[0]; //~ ERROR cannot move out
@@ -76,9 +76,6 @@ fn e() {
     match vec {
         &mut [_a, _b, _c] => {}  //~ ERROR cannot move out
         //~| cannot move out
-        //~| NOTE to prevent move
-        //~| NOTE and here
-        //~| NOTE and here
         _ => {}
     }
     let a = vec[0]; //~ ERROR cannot move out
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
index 6b099d28fb1..899ffb446b9 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
@@ -44,7 +44,7 @@ error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy sli
 64 |           &mut [ //~ ERROR cannot move out
    |  ______________^
 65 | |         //~^ cannot move out
-66 | |          _b] => {} //~ NOTE to prevent move
+66 | |          _b] => {}
    | |__________--^ cannot move out of here
    |            |
    |            hint: to prevent move, use `ref _b` or `ref mut _b`
@@ -70,9 +70,9 @@ error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy sli
    |              cannot move out of here
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:84:13
+  --> $DIR/borrowck-vec-pattern-nesting.rs:81:13
    |
-84 |     let a = vec[0]; //~ ERROR cannot move out
+81 |     let a = vec[0]; //~ ERROR cannot move out
    |             ^^^^^^
    |             |
    |             cannot move out of here
diff --git a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs b/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
index 788d68caa52..cd9f1636c3f 100644
--- a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
+++ b/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
@@ -16,10 +16,9 @@ fn call<F>(f: F) where F : Fn() {
 }
 
 fn main() {
-    let y = vec![format!("World")];  //~ NOTE captured outer variable
+    let y = vec![format!("World")];
     call(|| {
         y.into_iter();
         //~^ ERROR cannot move out of captured outer variable in an `Fn` closure
-        //~| NOTE cannot move out of
     });
 }
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 895ce1ba318..6aa0846f53e 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
@@ -1,7 +1,7 @@
 error[E0507]: cannot move out of captured outer variable in an `Fn` closure
   --> $DIR/unboxed-closures-move-upvar-from-non-once-ref-closure.rs:21:9
    |
-19 |     let y = vec![format!("World")];  //~ NOTE captured outer variable
+19 |     let y = vec![format!("World")];
    |         - captured outer variable
 20 |     call(|| {
 21 |         y.into_iter();
diff --git a/src/test/ui/cast-as-bool.rs b/src/test/ui/cast-as-bool.rs
index af42d5c275c..68e26c23e44 100644
--- a/src/test/ui/cast-as-bool.rs
+++ b/src/test/ui/cast-as-bool.rs
@@ -11,5 +11,4 @@
 fn main() {
     let u = 5 as bool;
     //~^ ERROR cannot cast as `bool`
-    //~| HELP compare with zero instead
 }
diff --git a/src/test/ui/cast-rfc0401-2.rs b/src/test/ui/cast-rfc0401-2.rs
index 1598a9aa1fc..0dac707688d 100644
--- a/src/test/ui/cast-rfc0401-2.rs
+++ b/src/test/ui/cast-rfc0401-2.rs
@@ -15,5 +15,4 @@
 fn main() {
     let _ = 3 as bool;
     //~^ ERROR cannot cast as `bool`
-    //~| HELP compare with zero
 }
diff --git a/src/test/ui/changing-crates.rs b/src/test/ui/changing-crates.rs
index 89310706b52..80a2998f3cd 100644
--- a/src/test/ui/changing-crates.rs
+++ b/src/test/ui/changing-crates.rs
@@ -17,7 +17,5 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: the following crate versions were found
-//~| NOTE: perhaps that crate needs to be recompiled
 
 fn main() {}
diff --git a/src/test/ui/closure_context/issue-42065.rs b/src/test/ui/closure_context/issue-42065.rs
index 276c6a941b2..9daa76d858f 100644
--- a/src/test/ui/closure_context/issue-42065.rs
+++ b/src/test/ui/closure_context/issue-42065.rs
@@ -14,13 +14,10 @@ fn main() {
     let dict: HashMap<i32, i32> = HashMap::new();
     let debug_dump_dict = || {
         for (key, value) in dict {
-            //~^ NOTE closure cannot be invoked more than once
             println!("{:?} - {:?}", key, value);
         }
     };
     debug_dump_dict();
-    //~^ NOTE: value moved here
     debug_dump_dict();
     //~^ ERROR use of moved value: `debug_dump_dict`
-    //~| NOTE value used here after move
 }
diff --git a/src/test/ui/closure_context/issue-42065.stderr b/src/test/ui/closure_context/issue-42065.stderr
index b31322f6d16..c195940ade6 100644
--- a/src/test/ui/closure_context/issue-42065.stderr
+++ b/src/test/ui/closure_context/issue-42065.stderr
@@ -1,10 +1,9 @@
 error[E0382]: use of moved value: `debug_dump_dict`
-  --> $DIR/issue-42065.rs:23:5
+  --> $DIR/issue-42065.rs:21:5
    |
-21 |     debug_dump_dict();
+20 |     debug_dump_dict();
    |     --------------- value moved here
-22 |     //~^ NOTE: value moved here
-23 |     debug_dump_dict();
+21 |     debug_dump_dict();
    |     ^^^^^^^^^^^^^^^ value used here after move
    |
 note: closure cannot be invoked more than once because it moves the variable `dict` out of its environment
diff --git a/src/test/ui/coherence-impls-copy.rs b/src/test/ui/coherence-impls-copy.rs
index fe121a3bc48..51f43d27c34 100644
--- a/src/test/ui/coherence-impls-copy.rs
+++ b/src/test/ui/coherence-impls-copy.rs
@@ -28,36 +28,22 @@ impl Copy for MyType {}
 
 impl Copy for &'static mut MyType {}
 //~^ ERROR the trait `Copy` may not be implemented for this type
-//~| NOTE type is not a structure or enumeration
 impl Clone for MyType { fn clone(&self) -> Self { *self } }
 
 impl Copy for (MyType, MyType) {}
 //~^ ERROR the trait `Copy` may not be implemented for this type
-//~| NOTE type is not a structure or enumeration
 //~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-//~| NOTE impl doesn't use types inside crate
-//~| NOTE the impl does not reference any types defined in this crate
-//~| NOTE define and implement a trait or new type instead
 
 impl Copy for &'static NotSync {}
 //~^ ERROR the trait `Copy` may not be implemented for this type
-//~| NOTE type is not a structure or enumeration
 
 impl Copy for [MyType] {}
 //~^ ERROR the trait `Copy` may not be implemented for this type
-//~| NOTE type is not a structure or enumeration
 //~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-//~| NOTE the impl does not reference any types defined in this crate
-//~| NOTE define and implement a trait or new type instead
-//~| NOTE impl doesn't use types inside crate
 
 impl Copy for &'static [NotSync] {}
 //~^ ERROR the trait `Copy` may not be implemented for this type
-//~| NOTE type is not a structure or enumeration
 //~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-//~| NOTE impl doesn't use types inside crate
-//~| NOTE the impl does not reference any types defined in this crate
-//~| NOTE define and implement a trait or new type instead
 
 fn main() {
 }
diff --git a/src/test/ui/coherence-impls-copy.stderr b/src/test/ui/coherence-impls-copy.stderr
index 977e9ce260f..e5e91df771f 100644
--- a/src/test/ui/coherence-impls-copy.stderr
+++ b/src/test/ui/coherence-impls-copy.stderr
@@ -5,51 +5,51 @@ error[E0206]: the trait `Copy` may not be implemented for this type
    |               ^^^^^^^^^^^^^^^^^^^ type is not a structure or enumeration
 
 error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:34:15
+  --> $DIR/coherence-impls-copy.rs:33:15
    |
-34 | impl Copy for (MyType, MyType) {}
+33 | impl Copy for (MyType, MyType) {}
    |               ^^^^^^^^^^^^^^^^ type is not a structure or enumeration
 
 error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:42:15
+  --> $DIR/coherence-impls-copy.rs:37:15
    |
-42 | impl Copy for &'static NotSync {}
+37 | impl Copy for &'static NotSync {}
    |               ^^^^^^^^^^^^^^^^ type is not a structure or enumeration
 
 error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:46:15
+  --> $DIR/coherence-impls-copy.rs:40:15
    |
-46 | impl Copy for [MyType] {}
+40 | impl Copy for [MyType] {}
    |               ^^^^^^^^ type is not a structure or enumeration
 
 error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:54:15
+  --> $DIR/coherence-impls-copy.rs:44:15
    |
-54 | impl Copy for &'static [NotSync] {}
+44 | impl Copy for &'static [NotSync] {}
    |               ^^^^^^^^^^^^^^^^^^ type is not a structure or enumeration
 
 error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:34:1
+  --> $DIR/coherence-impls-copy.rs:33:1
    |
-34 | impl Copy for (MyType, MyType) {}
+33 | impl Copy for (MyType, MyType) {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl doesn't use types inside crate
    |
    = note: the impl does not reference any types defined in this crate
    = note: define and implement a trait or new type instead
 
 error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:46:1
+  --> $DIR/coherence-impls-copy.rs:40:1
    |
-46 | impl Copy for [MyType] {}
+40 | impl Copy for [MyType] {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^ impl doesn't use types inside crate
    |
    = note: the impl does not reference any types defined in this crate
    = note: define and implement a trait or new type instead
 
 error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:54:1
+  --> $DIR/coherence-impls-copy.rs:44:1
    |
-54 | impl Copy for &'static [NotSync] {}
+44 | impl Copy for &'static [NotSync] {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl doesn't use types inside crate
    |
    = note: the impl does not reference any types defined in this crate
diff --git a/src/test/ui/coherence-overlap-downstream-inherent.rs b/src/test/ui/coherence-overlap-downstream-inherent.rs
index 66068b53555..fd6e1d339f3 100644
--- a/src/test/ui/coherence-overlap-downstream-inherent.rs
+++ b/src/test/ui/coherence-overlap-downstream-inherent.rs
@@ -16,17 +16,12 @@ pub trait Sugar {}
 pub trait Fruit {}
 impl<T:Sugar> Sweet<T> { fn dummy(&self) { } }
 //~^ ERROR E0592
-//~| NOTE duplicate definitions for `dummy`
 impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
-//~^ NOTE other definition for `dummy`
 
 trait Bar<X> {}
 struct A<T, X>(T, X);
 impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
 //~^ ERROR E0592
-//~| NOTE duplicate definitions for `f`
-//~| NOTE downstream crates may implement trait `Bar<_>` for type `i32`
 impl<X> A<i32, X> { fn f(&self) {} }
-//~^ NOTE other definition for `f`
 
 fn main() {}
diff --git a/src/test/ui/coherence-overlap-downstream-inherent.stderr b/src/test/ui/coherence-overlap-downstream-inherent.stderr
index 23287e2f578..aca6800deb5 100644
--- a/src/test/ui/coherence-overlap-downstream-inherent.stderr
+++ b/src/test/ui/coherence-overlap-downstream-inherent.stderr
@@ -3,17 +3,17 @@ error[E0592]: duplicate definitions with name `dummy`
    |
 17 | impl<T:Sugar> Sweet<T> { fn dummy(&self) { } }
    |                          ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-...
-20 | impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
+18 | //~^ ERROR E0592
+19 | impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
    |                          ------------------- other definition for `dummy`
 
 error[E0592]: duplicate definitions with name `f`
-  --> $DIR/coherence-overlap-downstream-inherent.rs:25:38
+  --> $DIR/coherence-overlap-downstream-inherent.rs:23:38
    |
-25 | impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
+23 | impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
    |                                      ^^^^^^^^^^^^^^ duplicate definitions for `f`
-...
-29 | impl<X> A<i32, X> { fn f(&self) {} }
+24 | //~^ ERROR E0592
+25 | impl<X> A<i32, X> { fn f(&self) {} }
    |                     -------------- other definition for `f`
    |
    = note: downstream crates may implement trait `Bar<_>` for type `i32`
diff --git a/src/test/ui/coherence-overlap-downstream.rs b/src/test/ui/coherence-overlap-downstream.rs
index 1df02737dec..63898ef9a20 100644
--- a/src/test/ui/coherence-overlap-downstream.rs
+++ b/src/test/ui/coherence-overlap-downstream.rs
@@ -15,18 +15,13 @@ pub trait Sugar {}
 pub trait Fruit {}
 pub trait Sweet {}
 impl<T:Sugar> Sweet for T { }
-//~^ NOTE first implementation here
 impl<T:Fruit> Sweet for T { }
 //~^ ERROR E0119
-//~| NOTE conflicting implementation
 
 pub trait Foo<X> {}
 pub trait Bar<X> {}
 impl<X, T> Foo<X> for T where T: Bar<X> {}
-//~^ NOTE first implementation here
 impl<X> Foo<X> for i32 {}
 //~^ ERROR E0119
-//~| NOTE conflicting implementation for `i32`
-//~| NOTE downstream crates may implement trait `Bar<_>` for type `i32`
 
 fn main() { }
diff --git a/src/test/ui/coherence-overlap-downstream.stderr b/src/test/ui/coherence-overlap-downstream.stderr
index 2b129644e84..8a3ef97fd55 100644
--- a/src/test/ui/coherence-overlap-downstream.stderr
+++ b/src/test/ui/coherence-overlap-downstream.stderr
@@ -1,19 +1,17 @@
 error[E0119]: conflicting implementations of trait `Sweet`:
-  --> $DIR/coherence-overlap-downstream.rs:19:1
+  --> $DIR/coherence-overlap-downstream.rs:18:1
    |
 17 | impl<T:Sugar> Sweet for T { }
    | ----------------------------- first implementation here
-18 | //~^ NOTE first implementation here
-19 | impl<T:Fruit> Sweet for T { }
+18 | impl<T:Fruit> Sweet for T { }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
 
 error[E0119]: conflicting implementations of trait `Foo<_>` for type `i32`:
-  --> $DIR/coherence-overlap-downstream.rs:27:1
+  --> $DIR/coherence-overlap-downstream.rs:24:1
    |
-25 | impl<X, T> Foo<X> for T where T: Bar<X> {}
+23 | impl<X, T> Foo<X> for T where T: Bar<X> {}
    | ------------------------------------------ first implementation here
-26 | //~^ NOTE first implementation here
-27 | impl<X> Foo<X> for i32 {}
+24 | impl<X> Foo<X> for i32 {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `i32`
    |
    = note: downstream crates may implement trait `Bar<_>` for type `i32`
diff --git a/src/test/ui/coherence-overlap-issue-23516-inherent.rs b/src/test/ui/coherence-overlap-issue-23516-inherent.rs
index 355af60710a..94a7bdbc69e 100644
--- a/src/test/ui/coherence-overlap-issue-23516-inherent.rs
+++ b/src/test/ui/coherence-overlap-issue-23516-inherent.rs
@@ -18,9 +18,6 @@ struct Cake<X>(X);
 
 impl<T:Sugar> Cake<T> { fn dummy(&self) { } }
 //~^ ERROR E0592
-//~| NOTE duplicate definitions for `dummy`
-//~| NOTE downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
 impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
-//~^ NOTE other definition for `dummy`
 
 fn main() { }
diff --git a/src/test/ui/coherence-overlap-issue-23516-inherent.stderr b/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
index 265de930489..24d9b26fe9d 100644
--- a/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
+++ b/src/test/ui/coherence-overlap-issue-23516-inherent.stderr
@@ -3,8 +3,8 @@ error[E0592]: duplicate definitions with name `dummy`
    |
 19 | impl<T:Sugar> Cake<T> { fn dummy(&self) { } }
    |                         ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-...
-23 | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
+20 | //~^ ERROR E0592
+21 | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
    |                              ------------------- other definition for `dummy`
    |
    = note: downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
diff --git a/src/test/ui/coherence-overlap-issue-23516.rs b/src/test/ui/coherence-overlap-issue-23516.rs
index ffef5bf1087..3cd184b9be9 100644
--- a/src/test/ui/coherence-overlap-issue-23516.rs
+++ b/src/test/ui/coherence-overlap-issue-23516.rs
@@ -15,10 +15,7 @@
 pub trait Sugar { fn dummy(&self) { } }
 pub trait Sweet { fn dummy(&self) { } }
 impl<T:Sugar> Sweet for T { }
-//~^ NOTE first implementation here
 impl<U:Sugar> Sweet for Box<U> { }
 //~^ ERROR E0119
-//~| NOTE conflicting implementation for `std::boxed::Box<_>`
-//~| NOTE downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
 
 fn main() { }
diff --git a/src/test/ui/coherence-overlap-issue-23516.stderr b/src/test/ui/coherence-overlap-issue-23516.stderr
index ac3293b5f3f..8e107e06a9e 100644
--- a/src/test/ui/coherence-overlap-issue-23516.stderr
+++ b/src/test/ui/coherence-overlap-issue-23516.stderr
@@ -1,10 +1,9 @@
 error[E0119]: conflicting implementations of trait `Sweet` for type `std::boxed::Box<_>`:
-  --> $DIR/coherence-overlap-issue-23516.rs:19:1
+  --> $DIR/coherence-overlap-issue-23516.rs:18:1
    |
 17 | impl<T:Sugar> Sweet for T { }
    | ----------------------------- first implementation here
-18 | //~^ NOTE first implementation here
-19 | impl<U:Sugar> Sweet for Box<U> { }
+18 | impl<U:Sugar> Sweet for Box<U> { }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `std::boxed::Box<_>`
    |
    = note: downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
diff --git a/src/test/ui/coherence-overlap-upstream-inherent.rs b/src/test/ui/coherence-overlap-upstream-inherent.rs
index 1d0c63110ce..a5a6a88a128 100644
--- a/src/test/ui/coherence-overlap-upstream-inherent.rs
+++ b/src/test/ui/coherence-overlap-upstream-inherent.rs
@@ -20,9 +20,6 @@ use coherence_lib::Remote;
 struct A<X>(X);
 impl<T> A<T> where T: Remote { fn dummy(&self) { } }
 //~^ ERROR E0592
-//~| NOTE duplicate definitions for `dummy`
-//~| NOTE upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16`
 impl A<i16> { fn dummy(&self) { } }
-//~^ NOTE other definition for `dummy`
 
 fn main() {}
diff --git a/src/test/ui/coherence-overlap-upstream-inherent.stderr b/src/test/ui/coherence-overlap-upstream-inherent.stderr
index 547e1d76461..db32bcb81c6 100644
--- a/src/test/ui/coherence-overlap-upstream-inherent.stderr
+++ b/src/test/ui/coherence-overlap-upstream-inherent.stderr
@@ -3,8 +3,8 @@ error[E0592]: duplicate definitions with name `dummy`
    |
 21 | impl<T> A<T> where T: Remote { fn dummy(&self) { } }
    |                                ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-...
-25 | impl A<i16> { fn dummy(&self) { } }
+22 | //~^ ERROR E0592
+23 | impl A<i16> { fn dummy(&self) { } }
    |               ------------------- other definition for `dummy`
    |
    = note: upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16` in future versions
diff --git a/src/test/ui/coherence-overlap-upstream.rs b/src/test/ui/coherence-overlap-upstream.rs
index e978143a067..f772848cb58 100644
--- a/src/test/ui/coherence-overlap-upstream.rs
+++ b/src/test/ui/coherence-overlap-upstream.rs
@@ -19,10 +19,7 @@ use coherence_lib::Remote;
 
 trait Foo {}
 impl<T> Foo for T where T: Remote {}
-//~^ NOTE first implementation here
 impl Foo for i16 {}
 //~^ ERROR E0119
-//~| NOTE conflicting implementation for `i16`
-//~| NOTE upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16`
 
 fn main() {}
diff --git a/src/test/ui/coherence-overlap-upstream.stderr b/src/test/ui/coherence-overlap-upstream.stderr
index ab0daf322c3..48961572b72 100644
--- a/src/test/ui/coherence-overlap-upstream.stderr
+++ b/src/test/ui/coherence-overlap-upstream.stderr
@@ -1,10 +1,9 @@
 error[E0119]: conflicting implementations of trait `Foo` for type `i16`:
-  --> $DIR/coherence-overlap-upstream.rs:23:1
+  --> $DIR/coherence-overlap-upstream.rs:22:1
    |
 21 | impl<T> Foo for T where T: Remote {}
    | ------------------------------------ first implementation here
-22 | //~^ NOTE first implementation here
-23 | impl Foo for i16 {}
+22 | impl Foo for i16 {}
    | ^^^^^^^^^^^^^^^^^^^ conflicting implementation for `i16`
    |
    = note: upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16` in future versions
diff --git a/src/test/ui/const-deref-ptr.rs b/src/test/ui/const-deref-ptr.rs
index c626801d48c..fa15f3e87c6 100644
--- a/src/test/ui/const-deref-ptr.rs
+++ b/src/test/ui/const-deref-ptr.rs
@@ -12,6 +12,5 @@
 
 fn main() {
     static C: u64 = unsafe {*(0xdeadbeef as *const u64)}; //~ ERROR E0396
-                    //~| NOTE dereference of raw pointer in constant
     println!("{}", C);
 }
diff --git a/src/test/ui/const-eval-overflow-2.rs b/src/test/ui/const-eval-overflow-2.rs
index 0fd41a17b2c..6b7f631ff4c 100644
--- a/src/test/ui/const-eval-overflow-2.rs
+++ b/src/test/ui/const-eval-overflow-2.rs
@@ -24,7 +24,7 @@ const NEG_NEG_128: i8 = -NEG_128;
 
 fn main() {
     match -128i8 {
-        NEG_NEG_128 => println!("A"), //~ NOTE for pattern here
+        NEG_NEG_128 => println!("A"),
         _ => println!("B"),
     }
 }
diff --git a/src/test/ui/const-eval-overflow-2.stderr b/src/test/ui/const-eval-overflow-2.stderr
index 51cd0bac868..a9d29d01071 100644
--- a/src/test/ui/const-eval-overflow-2.stderr
+++ b/src/test/ui/const-eval-overflow-2.stderr
@@ -7,7 +7,7 @@ error[E0080]: constant evaluation error
 note: for pattern here
   --> $DIR/const-eval-overflow-2.rs:27:9
    |
-27 |         NEG_NEG_128 => println!("A"), //~ NOTE for pattern here
+27 |         NEG_NEG_128 => println!("A"),
    |         ^^^^^^^^^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/const-eval-overflow-4.rs b/src/test/ui/const-eval-overflow-4.rs
index 2b1c1017b5b..4423fdec33a 100644
--- a/src/test/ui/const-eval-overflow-4.rs
+++ b/src/test/ui/const-eval-overflow-4.rs
@@ -22,9 +22,7 @@ use std::{u8, u16, u32, u64, usize};
 const A_I8_T
     : [u32; (i8::MAX as i8 + 1i8) as usize]
     //~^ ERROR constant evaluation error
-    //~^^ NOTE attempt to add with overflow
     //~| WARNING constant evaluation error
-    //~| NOTE on by default
     = [0; (i8::MAX as usize) + 1];
 
 fn main() {
@@ -34,4 +32,3 @@ fn main() {
 fn foo<T:fmt::Debug>(x: T) {
     println!("{:?}", x);
 }
-
diff --git a/src/test/ui/const-eval-span.rs b/src/test/ui/const-eval-span.rs
index 16f89606b01..f0fa1c0b9b4 100644
--- a/src/test/ui/const-eval-span.rs
+++ b/src/test/ui/const-eval-span.rs
@@ -19,7 +19,6 @@ enum E {
     V = CONSTANT,
     //~^ ERROR mismatched types
     //~| expected isize, found struct `S`
-    //~| NOTE expected type `isize`
     //~|         found type `S`
 }
 
diff --git a/src/test/ui/const-fn-error.rs b/src/test/ui/const-fn-error.rs
index baf836b4dad..ac1c2fe5432 100644
--- a/src/test/ui/const-fn-error.rs
+++ b/src/test/ui/const-fn-error.rs
@@ -24,7 +24,6 @@ const fn f(x: usize) -> usize {
 
 #[allow(unused_variables)]
 fn main() {
-    let a : [i32; f(X)]; //~ NOTE for constant expression here
-    //~| WARNING constant evaluation error: non-constant path
-    //~| on by default
+    let a : [i32; f(X)];
+    //~^ WARNING constant evaluation error: non-constant path
 }
diff --git a/src/test/ui/const-fn-error.stderr b/src/test/ui/const-fn-error.stderr
index 2bf88cf2d03..f86b94a4c74 100644
--- a/src/test/ui/const-fn-error.stderr
+++ b/src/test/ui/const-fn-error.stderr
@@ -7,7 +7,7 @@ error[E0080]: constant evaluation error
 note: for constant expression here
   --> $DIR/const-fn-error.rs:26:13
    |
-26 |     let a : [i32; f(X)]; //~ NOTE for constant expression here
+26 |     let a : [i32; f(X)];
    |             ^^^^^^^^^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/const-fn-mismatch.rs b/src/test/ui/const-fn-mismatch.rs
index 7ea72e23779..4e1fa6bd186 100644
--- a/src/test/ui/const-fn-mismatch.rs
+++ b/src/test/ui/const-fn-mismatch.rs
@@ -22,7 +22,6 @@ trait Foo {
 impl Foo for u32 {
     const fn f() -> u32 { 22 }
     //~^ ERROR trait fns cannot be declared const
-    //~| NOTE trait fns cannot be const
 }
 
 fn main() { }
diff --git a/src/test/ui/const-fn-not-in-trait.rs b/src/test/ui/const-fn-not-in-trait.rs
index 257d4d5ee99..1877929173d 100644
--- a/src/test/ui/const-fn-not-in-trait.rs
+++ b/src/test/ui/const-fn-not-in-trait.rs
@@ -16,10 +16,8 @@
 trait Foo {
     const fn f() -> u32;
     //~^ ERROR trait fns cannot be declared const
-    //~| NOTE trait fns cannot be const
     const fn g() -> u32 { 0 }
     //~^ ERROR trait fns cannot be declared const
-    //~| NOTE trait fns cannot be const
 }
 
 fn main() { }
diff --git a/src/test/ui/const-fn-not-in-trait.stderr b/src/test/ui/const-fn-not-in-trait.stderr
index 118e186cf8a..d23bf3b411b 100644
--- a/src/test/ui/const-fn-not-in-trait.stderr
+++ b/src/test/ui/const-fn-not-in-trait.stderr
@@ -5,9 +5,9 @@ error[E0379]: trait fns cannot be declared const
    |     ^^^^^ trait fns cannot be const
 
 error[E0379]: trait fns cannot be declared const
-  --> $DIR/const-fn-not-in-trait.rs:20:5
+  --> $DIR/const-fn-not-in-trait.rs:19:5
    |
-20 |     const fn g() -> u32 { 0 }
+19 |     const fn g() -> u32 { 0 }
    |     ^^^^^ trait fns cannot be const
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/const-len-underflow-separate-spans.rs b/src/test/ui/const-len-underflow-separate-spans.rs
index eaad9e7e92b..0fd49bec159 100644
--- a/src/test/ui/const-len-underflow-separate-spans.rs
+++ b/src/test/ui/const-len-underflow-separate-spans.rs
@@ -22,5 +22,4 @@ const LEN: usize = ONE - TWO;
 
 fn main() {
     let a: [i8; LEN] = unimplemented!();
-    //~^ NOTE for constant expression here
 }
diff --git a/src/test/ui/const-pattern-not-const-evaluable.rs b/src/test/ui/const-pattern-not-const-evaluable.rs
index 71cac3edbc1..263c0bdc64c 100644
--- a/src/test/ui/const-pattern-not-const-evaluable.rs
+++ b/src/test/ui/const-pattern-not-const-evaluable.rs
@@ -34,7 +34,7 @@ const GOO: Cake = foo();
 
 fn main() {
     match BlackForest {
-        FOO => println!("hi"), //~ NOTE: for pattern here
+        FOO => println!("hi"),
         GOO => println!("meh"),
         WORKS => println!("möp"),
         _ => println!("bye"),
diff --git a/src/test/ui/const-pattern-not-const-evaluable.stderr b/src/test/ui/const-pattern-not-const-evaluable.stderr
index 5a64a756a0a..5441937e4dd 100644
--- a/src/test/ui/const-pattern-not-const-evaluable.stderr
+++ b/src/test/ui/const-pattern-not-const-evaluable.stderr
@@ -7,7 +7,7 @@ error[E0080]: constant evaluation error
 note: for pattern here
   --> $DIR/const-pattern-not-const-evaluable.rs:37:9
    |
-37 |         FOO => println!("hi"), //~ NOTE: for pattern here
+37 |         FOO => println!("hi"),
    |         ^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/const-unsized.rs b/src/test/ui/const-unsized.rs
index 4b212814ded..c6ce34b60ca 100644
--- a/src/test/ui/const-unsized.rs
+++ b/src/test/ui/const-unsized.rs
@@ -12,23 +12,15 @@ use std::fmt::Debug;
 
 const CONST_0: Debug+Sync = *(&0 as &(Debug+Sync));
 //~^ ERROR `std::fmt::Debug + std::marker::Sync + 'static: std::marker::Sized` is not satisfied
-//~| NOTE does not have a constant size known at compile-time
-//~| NOTE constant expressions must have a statically known size
 
 const CONST_FOO: str = *"foo";
 //~^ ERROR `str: std::marker::Sized` is not satisfied
-//~| NOTE does not have a constant size known at compile-time
-//~| NOTE constant expressions must have a statically known size
 
 static STATIC_1: Debug+Sync = *(&1 as &(Debug+Sync));
 //~^ ERROR `std::fmt::Debug + std::marker::Sync + 'static: std::marker::Sized` is not satisfied
-//~| NOTE does not have a constant size known at compile-time
-//~| NOTE constant expressions must have a statically known size
 
 static STATIC_BAR: str = *"bar";
 //~^ ERROR `str: std::marker::Sized` is not satisfied
-//~| NOTE does not have a constant size known at compile-time
-//~| NOTE constant expressions must have a statically known size
 
 fn main() {
     println!("{:?} {:?} {:?} {:?}", &CONST_0, &CONST_FOO, &STATIC_1, &STATIC_BAR);
diff --git a/src/test/ui/const-unsized.stderr b/src/test/ui/const-unsized.stderr
index ab496b7bce3..ba948643a37 100644
--- a/src/test/ui/const-unsized.stderr
+++ b/src/test/ui/const-unsized.stderr
@@ -8,27 +8,27 @@ error[E0277]: the trait bound `std::fmt::Debug + std::marker::Sync + 'static: st
    = note: constant expressions must have a statically known size
 
 error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
-  --> $DIR/const-unsized.rs:18:24
+  --> $DIR/const-unsized.rs:16:24
    |
-18 | const CONST_FOO: str = *"foo";
+16 | const CONST_FOO: str = *"foo";
    |                        ^^^^^^ `str` does not have a constant size known at compile-time
    |
    = help: the trait `std::marker::Sized` is not implemented for `str`
    = note: constant expressions must have a statically known size
 
 error[E0277]: the trait bound `std::fmt::Debug + std::marker::Sync + 'static: std::marker::Sized` is not satisfied
-  --> $DIR/const-unsized.rs:23:31
+  --> $DIR/const-unsized.rs:19:31
    |
-23 | static STATIC_1: Debug+Sync = *(&1 as &(Debug+Sync));
+19 | static STATIC_1: Debug+Sync = *(&1 as &(Debug+Sync));
    |                               ^^^^^^^^^^^^^^^^^^^^^^ `std::fmt::Debug + std::marker::Sync + 'static` does not have a constant size known at compile-time
    |
    = help: the trait `std::marker::Sized` is not implemented for `std::fmt::Debug + std::marker::Sync + 'static`
    = note: constant expressions must have a statically known size
 
 error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
-  --> $DIR/const-unsized.rs:28:26
+  --> $DIR/const-unsized.rs:22:26
    |
-28 | static STATIC_BAR: str = *"bar";
+22 | static STATIC_BAR: str = *"bar";
    |                          ^^^^^^ `str` does not have a constant size known at compile-time
    |
    = help: the trait `std::marker::Sized` is not implemented for `str`
diff --git a/src/test/ui/cycle-trait-supertrait-indirect.rs b/src/test/ui/cycle-trait-supertrait-indirect.rs
index 905d546e99a..c3b0276bcf9 100644
--- a/src/test/ui/cycle-trait-supertrait-indirect.rs
+++ b/src/test/ui/cycle-trait-supertrait-indirect.rs
@@ -12,16 +12,13 @@
 // a direct participant in the cycle.
 
 trait A: B {
-    //~^ NOTE the cycle begins when computing the supertraits of `B`...
 }
 
 trait B: C {
-    //~^ NOTE ...which then requires computing the supertraits of `C`...
 }
 
 trait C: B { }
     //~^ ERROR unsupported cyclic reference
     //~| cyclic reference
-    //~| NOTE ...which then again requires computing the supertraits of `B`, completing the cycle
 
 fn main() { }
diff --git a/src/test/ui/cycle-trait-supertrait-indirect.stderr b/src/test/ui/cycle-trait-supertrait-indirect.stderr
index 1f4e1016bb1..107644037a9 100644
--- a/src/test/ui/cycle-trait-supertrait-indirect.stderr
+++ b/src/test/ui/cycle-trait-supertrait-indirect.stderr
@@ -1,7 +1,7 @@
 error[E0391]: unsupported cyclic reference between types/traits detected
-  --> $DIR/cycle-trait-supertrait-indirect.rs:22:1
+  --> $DIR/cycle-trait-supertrait-indirect.rs:20:1
    |
-22 | trait C: B { }
+20 | trait C: B { }
    | ^^^^^^^^^^ cyclic reference
    |
 note: the cycle begins when computing the supertraits of `B`...
@@ -10,9 +10,9 @@ note: the cycle begins when computing the supertraits of `B`...
 14 | trait A: B {
    | ^^^^^^^^^^
 note: ...which then requires computing the supertraits of `C`...
-  --> $DIR/cycle-trait-supertrait-indirect.rs:18:1
+  --> $DIR/cycle-trait-supertrait-indirect.rs:17:1
    |
-18 | trait B: C {
+17 | trait B: C {
    | ^^^^^^^^^^
    = note: ...which then again requires computing the supertraits of `B`, completing the cycle.
 
diff --git a/src/test/ui/deprecated-macro_escape-inner.rs b/src/test/ui/deprecated-macro_escape-inner.rs
index 3d253ba49da..dce80698dea 100644
--- a/src/test/ui/deprecated-macro_escape-inner.rs
+++ b/src/test/ui/deprecated-macro_escape-inner.rs
@@ -12,7 +12,6 @@
 
 mod foo {
     #![macro_escape] //~ WARNING macro_escape is a deprecated synonym for macro_use
-    //~^ HELP consider an outer attribute
 }
 
 fn main() {
diff --git a/src/test/ui/derived-errors/issue-31997-1.rs b/src/test/ui/derived-errors/issue-31997-1.rs
index 6a9d8db9654..7d79c48c06a 100644
--- a/src/test/ui/derived-errors/issue-31997-1.rs
+++ b/src/test/ui/derived-errors/issue-31997-1.rs
@@ -29,7 +29,6 @@ fn main() {
 
     let mut map = HashMap::new();
     //~^ ERROR E0433
-    //~| NOTE Use of undeclared type or module `HashMap`
 
     for line in input.lines() {
         let line = line.unwrap();
diff --git a/src/test/ui/discrim-overflow-2.rs b/src/test/ui/discrim-overflow-2.rs
index 213683b5808..9f77e77d158 100644
--- a/src/test/ui/discrim-overflow-2.rs
+++ b/src/test/ui/discrim-overflow-2.rs
@@ -25,8 +25,6 @@ fn f_i8() {
         Ok = i8::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 127i8
-              //~| NOTE explicitly set `OhNo = -128i8` if that is desired outcome
     }
 }
 
@@ -36,8 +34,6 @@ fn f_u8() {
         Ok = u8::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 255u8
-              //~| NOTE explicitly set `OhNo = 0u8` if that is desired outcome
     }
 }
 
@@ -47,8 +43,6 @@ fn f_i16() {
         Ok = i16::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 32767i16
-              //~| NOTE explicitly set `OhNo = -32768i16` if that is desired outcome
     }
 }
 
@@ -58,8 +52,6 @@ fn f_u16() {
         Ok = u16::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 65535u16
-              //~| NOTE explicitly set `OhNo = 0u16` if that is desired outcome
     }
 }
 
@@ -69,8 +61,6 @@ fn f_i32() {
         Ok = i32::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 2147483647i32
-              //~| NOTE explicitly set `OhNo = -2147483648i32` if that is desired outcome
     }
 }
 
@@ -80,8 +70,6 @@ fn f_u32() {
         Ok = u32::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 4294967295u32
-              //~| NOTE explicitly set `OhNo = 0u32` if that is desired outcome
     }
 }
 
@@ -91,8 +79,6 @@ fn f_i64() {
         Ok = i64::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 9223372036854775807i64
-              //~| NOTE explicitly set `OhNo = -9223372036854775808i64` if that is desired outcome
     }
 }
 
@@ -102,8 +88,6 @@ fn f_u64() {
         Ok = u64::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 18446744073709551615u64
-              //~| NOTE explicitly set `OhNo = 0u64` if that is desired outcome
     }
 }
 
diff --git a/src/test/ui/discrim-overflow-2.stderr b/src/test/ui/discrim-overflow-2.stderr
index be1b5f0ef20..660110cd737 100644
--- a/src/test/ui/discrim-overflow-2.stderr
+++ b/src/test/ui/discrim-overflow-2.stderr
@@ -7,60 +7,60 @@ error[E0370]: enum discriminant overflowed
    = note: explicitly set `OhNo = -128i8` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:38:9
+  --> $DIR/discrim-overflow-2.rs:36:9
    |
-38 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+36 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 255u8
    |
    = note: explicitly set `OhNo = 0u8` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:49:9
+  --> $DIR/discrim-overflow-2.rs:45:9
    |
-49 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+45 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 32767i16
    |
    = note: explicitly set `OhNo = -32768i16` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:60:9
+  --> $DIR/discrim-overflow-2.rs:54:9
    |
-60 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+54 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 65535u16
    |
    = note: explicitly set `OhNo = 0u16` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:71:9
+  --> $DIR/discrim-overflow-2.rs:63:9
    |
-71 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+63 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 2147483647i32
    |
    = note: explicitly set `OhNo = -2147483648i32` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:82:9
+  --> $DIR/discrim-overflow-2.rs:72:9
    |
-82 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+72 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 4294967295u32
    |
    = note: explicitly set `OhNo = 0u32` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:93:9
+  --> $DIR/discrim-overflow-2.rs:81:9
    |
-93 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+81 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 9223372036854775807i64
    |
    = note: explicitly set `OhNo = -9223372036854775808i64` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-   --> $DIR/discrim-overflow-2.rs:104:9
-    |
-104 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-    |         ^^^^ overflowed on value after 18446744073709551615u64
-    |
-    = note: explicitly set `OhNo = 0u64` if that is desired outcome
+  --> $DIR/discrim-overflow-2.rs:90:9
+   |
+90 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+   |         ^^^^ overflowed on value after 18446744073709551615u64
+   |
+   = note: explicitly set `OhNo = 0u64` if that is desired outcome
 
 error: aborting due to 8 previous errors
 
diff --git a/src/test/ui/discrim-overflow.rs b/src/test/ui/discrim-overflow.rs
index a3039b8d957..0b31d9f97f1 100644
--- a/src/test/ui/discrim-overflow.rs
+++ b/src/test/ui/discrim-overflow.rs
@@ -23,8 +23,6 @@ fn f_i8() {
         Ok = i8::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 127i8
-              //~| NOTE explicitly set `OhNo = -128i8` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -36,8 +34,6 @@ fn f_u8() {
         Ok = u8::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 255u8
-              //~| NOTE explicitly set `OhNo = 0u8` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -49,8 +45,6 @@ fn f_i16() {
         Ok = i16::MAX - 1,
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-              //~| NOTE overflowed on value after 32767i16
-              //~| NOTE explicitly set `OhNo = -32768i16` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -63,7 +57,6 @@ fn f_u16() {
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
               //~| overflowed on value after 65535u16
-              //~| NOTE explicitly set `OhNo = 0u16` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -76,7 +69,6 @@ fn f_i32() {
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
               //~| overflowed on value after 2147483647i32
-              //~| NOTE explicitly set `OhNo = -2147483648i32` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -89,7 +81,6 @@ fn f_u32() {
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
               //~| overflowed on value after 4294967295u32
-              //~| NOTE explicitly set `OhNo = 0u32` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -102,7 +93,6 @@ fn f_i64() {
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
               //~| overflowed on value after 9223372036854775807i64
-              //~| NOTE explicitly set `OhNo = -9223372036854775808i64` if that is desired outcome
     }
 
     let x = A::Ok;
@@ -115,7 +105,6 @@ fn f_u64() {
         Ok2,
         OhNo, //~ ERROR enum discriminant overflowed [E0370]
               //~| overflowed on value after 18446744073709551615u64
-              //~| NOTE explicitly set `OhNo = 0u64` if that is desired outcome
     }
 
     let x = A::Ok;
diff --git a/src/test/ui/discrim-overflow.stderr b/src/test/ui/discrim-overflow.stderr
index 3af82876f6f..733810006d7 100644
--- a/src/test/ui/discrim-overflow.stderr
+++ b/src/test/ui/discrim-overflow.stderr
@@ -7,57 +7,57 @@ error[E0370]: enum discriminant overflowed
    = note: explicitly set `OhNo = -128i8` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:38:9
+  --> $DIR/discrim-overflow.rs:36:9
    |
-38 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+36 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 255u8
    |
    = note: explicitly set `OhNo = 0u8` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:51:9
+  --> $DIR/discrim-overflow.rs:47:9
    |
-51 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+47 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 32767i16
    |
    = note: explicitly set `OhNo = -32768i16` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:64:9
+  --> $DIR/discrim-overflow.rs:58:9
    |
-64 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+58 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 65535u16
    |
    = note: explicitly set `OhNo = 0u16` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:77:9
+  --> $DIR/discrim-overflow.rs:70:9
    |
-77 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+70 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 2147483647i32
    |
    = note: explicitly set `OhNo = -2147483648i32` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:90:9
+  --> $DIR/discrim-overflow.rs:82:9
    |
-90 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+82 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
    |         ^^^^ overflowed on value after 4294967295u32
    |
    = note: explicitly set `OhNo = 0u32` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-   --> $DIR/discrim-overflow.rs:103:9
-    |
-103 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
-    |         ^^^^ overflowed on value after 9223372036854775807i64
-    |
-    = note: explicitly set `OhNo = -9223372036854775808i64` if that is desired outcome
+  --> $DIR/discrim-overflow.rs:94:9
+   |
+94 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+   |         ^^^^ overflowed on value after 9223372036854775807i64
+   |
+   = note: explicitly set `OhNo = -9223372036854775808i64` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-   --> $DIR/discrim-overflow.rs:116:9
+   --> $DIR/discrim-overflow.rs:106:9
     |
-116 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
+106 |         OhNo, //~ ERROR enum discriminant overflowed [E0370]
     |         ^^^^ overflowed on value after 18446744073709551615u64
     |
     = note: explicitly set `OhNo = 0u64` if that is desired outcome
diff --git a/src/test/ui/double-import.rs b/src/test/ui/double-import.rs
index 21b8ded6d93..154c9bebb0f 100644
--- a/src/test/ui/double-import.rs
+++ b/src/test/ui/double-import.rs
@@ -19,9 +19,7 @@ mod sub2 {
     pub fn foo() {} // implementation 2
 }
 
-use sub1::foo; //~ NOTE previous import of the value `foo` here
+use sub1::foo;
 use sub2::foo; //~ ERROR the name `foo` is defined multiple times
-               //~| NOTE `foo` reimported here
-               //~| NOTE `foo` must be defined only once in the value namespace of this module
 
 fn main() {}
diff --git a/src/test/ui/double-import.stderr b/src/test/ui/double-import.stderr
index 0219a17618b..fcd3f2696f2 100644
--- a/src/test/ui/double-import.stderr
+++ b/src/test/ui/double-import.stderr
@@ -1,7 +1,7 @@
 error[E0252]: the name `foo` is defined multiple times
   --> $DIR/double-import.rs:23:5
    |
-22 | use sub1::foo; //~ NOTE previous import of the value `foo` here
+22 | use sub1::foo;
    |     --------- previous import of the value `foo` here
 23 | use sub2::foo; //~ ERROR the name `foo` is defined multiple times
    |     ^^^^^^^^^ `foo` reimported here
diff --git a/src/test/ui/duplicate-check-macro-exports.rs b/src/test/ui/duplicate-check-macro-exports.rs
index 53d7e54ee5b..d874a43d53d 100644
--- a/src/test/ui/duplicate-check-macro-exports.rs
+++ b/src/test/ui/duplicate-check-macro-exports.rs
@@ -10,10 +10,9 @@
 
 #![feature(use_extern_macros)]
 
-pub use std::panic; //~ NOTE previous macro export here
+pub use std::panic;
 
 #[macro_export]
 macro_rules! panic { () => {} } //~ ERROR a macro named `panic` has already been exported
-//~| NOTE `panic` already exported
 
 fn main() {}
diff --git a/src/test/ui/duplicate-check-macro-exports.stderr b/src/test/ui/duplicate-check-macro-exports.stderr
index c512291f2d9..4e7176f3518 100644
--- a/src/test/ui/duplicate-check-macro-exports.stderr
+++ b/src/test/ui/duplicate-check-macro-exports.stderr
@@ -7,7 +7,7 @@ error: a macro named `panic` has already been exported
 note: previous macro export here
   --> $DIR/duplicate-check-macro-exports.rs:13:9
    |
-13 | pub use std::panic; //~ NOTE previous macro export here
+13 | pub use std::panic;
    |         ^^^^^^^^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/empty-struct-unit-expr.rs b/src/test/ui/empty-struct-unit-expr.rs
index 9655007604d..c33960193b0 100644
--- a/src/test/ui/empty-struct-unit-expr.rs
+++ b/src/test/ui/empty-struct-unit-expr.rs
@@ -25,9 +25,7 @@ fn main() {
     let e2 = Empty2(); //~ ERROR expected function, found `Empty2`
     let e4 = E::Empty4();
     //~^ ERROR expected function, found `E::Empty4` [E0618]
-    //~| HELP did you mean to write `E::Empty4`?
     let xe2 = XEmpty2(); //~ ERROR expected function, found `empty_struct::XEmpty2`
     let xe4 = XE::XEmpty4();
     //~^ ERROR expected function, found `XE::XEmpty4` [E0618]
-    //~| HELP did you mean to write `XE::XEmpty4`?
 }
diff --git a/src/test/ui/empty-struct-unit-expr.stderr b/src/test/ui/empty-struct-unit-expr.stderr
index 0c722dd645d..3ce63ed9f42 100644
--- a/src/test/ui/empty-struct-unit-expr.stderr
+++ b/src/test/ui/empty-struct-unit-expr.stderr
@@ -24,15 +24,15 @@ note: defined here
    |     ^^^^^^
 
 error[E0618]: expected function, found `empty_struct::XEmpty2`
-  --> $DIR/empty-struct-unit-expr.rs:29:15
+  --> $DIR/empty-struct-unit-expr.rs:28:15
    |
-29 |     let xe2 = XEmpty2(); //~ ERROR expected function, found `empty_struct::XEmpty2`
+28 |     let xe2 = XEmpty2(); //~ ERROR expected function, found `empty_struct::XEmpty2`
    |               ^^^^^^^^^
 
 error[E0618]: expected function, found `XE::XEmpty4`
-  --> $DIR/empty-struct-unit-expr.rs:30:15
+  --> $DIR/empty-struct-unit-expr.rs:29:15
    |
-30 |     let xe4 = XE::XEmpty4();
+29 |     let xe4 = XE::XEmpty4();
    |               ^^^^^^^^^^^^^
    |
    = help: did you mean to write `XE::XEmpty4`?
diff --git a/src/test/ui/enum-and-module-in-same-scope.rs b/src/test/ui/enum-and-module-in-same-scope.rs
index 59b4d715c2d..9b6c8712f69 100644
--- a/src/test/ui/enum-and-module-in-same-scope.rs
+++ b/src/test/ui/enum-and-module-in-same-scope.rs
@@ -8,13 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-enum Foo { //~ NOTE previous definition of the type `Foo` here
+enum Foo {
     X
 }
 
 mod Foo { //~ ERROR the name `Foo` is defined multiple times
-          //~| NOTE `Foo` redefined here
-          //~| NOTE `Foo` must be defined only once in the type namespace of this module
     pub static X: isize = 42;
     fn f() { f() } // Check that this does not result in a resolution error
 }
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 6f3a2c89d19..723e13f4109 100644
--- a/src/test/ui/enum-and-module-in-same-scope.stderr
+++ b/src/test/ui/enum-and-module-in-same-scope.stderr
@@ -1,17 +1,15 @@
 error[E0428]: the name `Foo` is defined multiple times
   --> $DIR/enum-and-module-in-same-scope.rs:15:1
    |
-11 | / enum Foo { //~ NOTE previous definition of the type `Foo` here
+11 | / enum Foo {
 12 | |     X
 13 | | }
    | |_- previous definition of the type `Foo` here
 14 | 
 15 | / mod Foo { //~ ERROR the name `Foo` is defined multiple times
-16 | |           //~| NOTE `Foo` redefined here
-17 | |           //~| NOTE `Foo` must be defined only once in the type namespace of this module
-18 | |     pub static X: isize = 42;
-19 | |     fn f() { f() } // Check that this does not result in a resolution error
-20 | | }
+16 | |     pub static X: isize = 42;
+17 | |     fn f() { f() } // Check that this does not result in a resolution error
+18 | | }
    | |_^ `Foo` redefined here
    |
    = note: `Foo` must be defined only once in the type namespace of this module
diff --git a/src/test/ui/fat-ptr-cast.rs b/src/test/ui/fat-ptr-cast.rs
index bc2dc1cc5d4..0802963ad22 100644
--- a/src/test/ui/fat-ptr-cast.rs
+++ b/src/test/ui/fat-ptr-cast.rs
@@ -18,14 +18,12 @@ fn main() {
     let q = a.as_ptr();
 
     a as usize; //~ ERROR casting
-    //~^ HELP cast through a raw pointer first
     a as isize; //~ ERROR casting
     a as i16; //~ ERROR casting `&[i32]` as `i16` is invalid
     a as u32; //~ ERROR casting `&[i32]` as `u32` is invalid
     b as usize; //~ ERROR non-primitive cast
     p as usize;
     //~^ ERROR casting
-    //~^^ HELP cast through a thin pointer
 
     // #22955
     q as *const [i32]; //~ ERROR cannot cast
diff --git a/src/test/ui/fat-ptr-cast.stderr b/src/test/ui/fat-ptr-cast.stderr
index 1cad2eeaee2..35a97749e00 100644
--- a/src/test/ui/fat-ptr-cast.stderr
+++ b/src/test/ui/fat-ptr-cast.stderr
@@ -7,55 +7,55 @@ error[E0606]: casting `&[i32]` as `usize` is invalid
    = help: cast through a raw pointer first
 
 error[E0606]: casting `&[i32]` as `isize` is invalid
-  --> $DIR/fat-ptr-cast.rs:22:5
+  --> $DIR/fat-ptr-cast.rs:21:5
    |
-22 |     a as isize; //~ ERROR casting
+21 |     a as isize; //~ ERROR casting
    |     ^^^^^^^^^^
 
 error[E0606]: casting `&[i32]` as `i16` is invalid
-  --> $DIR/fat-ptr-cast.rs:23:5
+  --> $DIR/fat-ptr-cast.rs:22:5
    |
-23 |     a as i16; //~ ERROR casting `&[i32]` as `i16` is invalid
+22 |     a as i16; //~ ERROR casting `&[i32]` as `i16` is invalid
    |     ^^^^^^^^
 
 error[E0606]: casting `&[i32]` as `u32` is invalid
-  --> $DIR/fat-ptr-cast.rs:24:5
+  --> $DIR/fat-ptr-cast.rs:23:5
    |
-24 |     a as u32; //~ ERROR casting `&[i32]` as `u32` is invalid
+23 |     a as u32; //~ ERROR casting `&[i32]` as `u32` is invalid
    |     ^^^^^^^^
 
 error[E0605]: non-primitive cast: `std::boxed::Box<[i32]>` as `usize`
-  --> $DIR/fat-ptr-cast.rs:25:5
+  --> $DIR/fat-ptr-cast.rs:24:5
    |
-25 |     b as usize; //~ ERROR non-primitive cast
+24 |     b as usize; //~ ERROR non-primitive cast
    |     ^^^^^^^^^^
    |
    = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
 
 error[E0606]: casting `*const [i32]` as `usize` is invalid
-  --> $DIR/fat-ptr-cast.rs:26:5
+  --> $DIR/fat-ptr-cast.rs:25:5
    |
-26 |     p as usize;
+25 |     p as usize;
    |     ^^^^^^^^^^
    |
    = help: cast through a thin pointer first
 
 error[E0607]: cannot cast thin pointer `*const i32` to fat pointer `*const [i32]`
-  --> $DIR/fat-ptr-cast.rs:31:5
+  --> $DIR/fat-ptr-cast.rs:29:5
    |
-31 |     q as *const [i32]; //~ ERROR cannot cast
+29 |     q as *const [i32]; //~ ERROR cannot cast
    |     ^^^^^^^^^^^^^^^^^
 
 error[E0606]: casting `usize` as `*mut Trait + 'static` is invalid
-  --> $DIR/fat-ptr-cast.rs:34:37
+  --> $DIR/fat-ptr-cast.rs:32:37
    |
-34 |     let t: *mut (Trait + 'static) = 0 as *mut _; //~ ERROR casting
+32 |     let t: *mut (Trait + 'static) = 0 as *mut _; //~ ERROR casting
    |                                     ^^^^^^^^^^^
 
 error[E0606]: casting `usize` as `*const str` is invalid
-  --> $DIR/fat-ptr-cast.rs:35:32
+  --> $DIR/fat-ptr-cast.rs:33:32
    |
-35 |     let mut fail: *const str = 0 as *const str; //~ ERROR casting
+33 |     let mut fail: *const str = 0 as *const str; //~ ERROR casting
    |                                ^^^^^^^^^^^^^^^
 
 error: aborting due to 9 previous errors
diff --git a/src/test/ui/feature-gate-decl_macro.rs b/src/test/ui/feature-gate-decl_macro.rs
index c5c83977c77..4cb34c8274d 100644
--- a/src/test/ui/feature-gate-decl_macro.rs
+++ b/src/test/ui/feature-gate-decl_macro.rs
@@ -11,6 +11,5 @@
 #![allow(unused_macros)]
 
 macro m() {} //~ ERROR `macro` is experimental (see issue #39412)
-//~| HELP add #![feature(decl_macro)] to the crate attributes to enable
 
 fn main() {}
diff --git a/src/test/ui/feature-gate-may-dangle.rs b/src/test/ui/feature-gate-may-dangle.rs
index 0bf1e93d9aa..ace9fe9ab27 100644
--- a/src/test/ui/feature-gate-may-dangle.rs
+++ b/src/test/ui/feature-gate-may-dangle.rs
@@ -17,6 +17,5 @@
 struct Pt<A>(A);
 impl<#[may_dangle] A> Drop for Pt<A> {
     //~^ ERROR may_dangle has unstable semantics and may be removed in the future
-    //~| HELP add #![feature(dropck_eyepatch)] to the crate attributes to enable
     fn drop(&mut self) { }
 }
diff --git a/src/test/ui/feature-gate-repr128.rs b/src/test/ui/feature-gate-repr128.rs
index 96fffa6cdd0..f5753f1c7fb 100644
--- a/src/test/ui/feature-gate-repr128.rs
+++ b/src/test/ui/feature-gate-repr128.rs
@@ -10,7 +10,6 @@
 
 #[repr(u128)]
 enum A { //~ ERROR repr with 128-bit type is unstable
-    //~| HELP: add #![feature(repr128)]
     A(u64)
 }
 
diff --git a/src/test/ui/feature-gate-repr128.stderr b/src/test/ui/feature-gate-repr128.stderr
index 2d32eda3b37..c59964887b5 100644
--- a/src/test/ui/feature-gate-repr128.stderr
+++ b/src/test/ui/feature-gate-repr128.stderr
@@ -2,9 +2,8 @@ error: repr with 128-bit type is unstable (see issue #35118)
   --> $DIR/feature-gate-repr128.rs:12:1
    |
 12 | / enum A { //~ ERROR repr with 128-bit type is unstable
-13 | |     //~| HELP: add #![feature(repr128)]
-14 | |     A(u64)
-15 | | }
+13 | |     A(u64)
+14 | | }
    | |_^
    |
    = help: add #![feature(repr128)] to the crate attributes to enable
diff --git a/src/test/ui/generic-type-less-params-with-defaults.rs b/src/test/ui/generic-type-less-params-with-defaults.rs
index 9b19e09eeae..c873fa67600 100644
--- a/src/test/ui/generic-type-less-params-with-defaults.rs
+++ b/src/test/ui/generic-type-less-params-with-defaults.rs
@@ -18,5 +18,4 @@ struct Vec<T, A = Heap>(
 fn main() {
     let _: Vec;
     //~^ ERROR wrong number of type arguments: expected at least 1, found 0 [E0243]
-    //~| NOTE expected at least 1 type argument
 }
diff --git a/src/test/ui/generic-type-more-params-with-defaults.rs b/src/test/ui/generic-type-more-params-with-defaults.rs
index b5764ef89ab..0d1b1943ca2 100644
--- a/src/test/ui/generic-type-more-params-with-defaults.rs
+++ b/src/test/ui/generic-type-more-params-with-defaults.rs
@@ -18,5 +18,4 @@ struct Vec<T, A = Heap>(
 fn main() {
     let _: Vec<isize, Heap, bool>;
     //~^ ERROR wrong number of type arguments: expected at most 2, found 3 [E0244]
-    //~| NOTE expected at most 2 type arguments
 }
diff --git a/src/test/ui/if-let-arm-types.rs b/src/test/ui/if-let-arm-types.rs
index 40013a7ee43..331fdc444ca 100644
--- a/src/test/ui/if-let-arm-types.rs
+++ b/src/test/ui/if-let-arm-types.rs
@@ -14,7 +14,7 @@ fn main() {
         //~| expected type `()`
         //~| found type `{integer}`
         ()
-    } else {                //~ NOTE: `if let` arm with an incompatible type
+    } else {
         1
     };
 }
diff --git a/src/test/ui/if-let-arm-types.stderr b/src/test/ui/if-let-arm-types.stderr
index cc232027cee..fb8e00bfa94 100644
--- a/src/test/ui/if-let-arm-types.stderr
+++ b/src/test/ui/if-let-arm-types.stderr
@@ -15,7 +15,7 @@ error[E0308]: `if let` arms have incompatible types
 note: `if let` arm with an incompatible type
   --> $DIR/if-let-arm-types.rs:17:12
    |
-17 |       } else {                //~ NOTE: `if let` arm with an incompatible type
+17 |       } else {
    |  ____________^
 18 | |         1
 19 | |     };
diff --git a/src/test/ui/impl-duplicate-methods.rs b/src/test/ui/impl-duplicate-methods.rs
index f6e9ab2d614..88499140751 100644
--- a/src/test/ui/impl-duplicate-methods.rs
+++ b/src/test/ui/impl-duplicate-methods.rs
@@ -11,10 +11,9 @@
 struct Foo;
 
 impl Foo {
-    fn orange(&self) {} //~ NOTE previous definition of `orange` here
+    fn orange(&self) {}
     fn orange(&self) {}
     //~^ ERROR duplicate definition
-    //~| NOTE duplicate definition
 }
 
 fn main() {}
diff --git a/src/test/ui/impl-duplicate-methods.stderr b/src/test/ui/impl-duplicate-methods.stderr
index 66b2d605967..73d470cc29e 100644
--- a/src/test/ui/impl-duplicate-methods.stderr
+++ b/src/test/ui/impl-duplicate-methods.stderr
@@ -1,7 +1,7 @@
 error[E0201]: duplicate definitions with name `orange`:
   --> $DIR/impl-duplicate-methods.rs:15:5
    |
-14 |     fn orange(&self) {} //~ NOTE previous definition of `orange` here
+14 |     fn orange(&self) {}
    |     ------------------- previous definition of `orange` here
 15 |     fn orange(&self) {}
    |     ^^^^^^^^^^^^^^^^^^^ duplicate definition
diff --git a/src/test/ui/impl-trait/auto-trait-leak.rs b/src/test/ui/impl-trait/auto-trait-leak.rs
index 8a5033e7647..705390e3b96 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.rs
+++ b/src/test/ui/impl-trait/auto-trait-leak.rs
@@ -26,17 +26,9 @@ fn send<T: Send>(_: T) {}
 fn main() {
     send(before());
     //~^ ERROR the trait bound `std::rc::Rc<std::cell::Cell<i32>>: std::marker::Send` is not satisfied
-    //~| NOTE `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
-    //~| NOTE required because it appears within the type `[closure
-    //~| NOTE required because it appears within the type `impl std::ops::Fn<(i32,)>`
-    //~| NOTE required by `send`
 
     send(after());
     //~^ ERROR the trait bound `std::rc::Rc<std::cell::Cell<i32>>: std::marker::Send` is not satisfied
-    //~| NOTE `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
-    //~| NOTE required because it appears within the type `[closure
-    //~| NOTE required because it appears within the type `impl std::ops::Fn<(i32,)>`
-    //~| NOTE required by `send`
 }
 
 // Deferred path, main has to wait until typeck finishes,
@@ -52,17 +44,12 @@ fn after() -> impl Fn(i32) {
 fn cycle1() -> impl Clone {
     //~^ ERROR unsupported cyclic reference between types/traits detected
     //~| cyclic reference
-    //~| NOTE the cycle begins when processing `cycle1`...
-    //~| NOTE ...which then requires processing `cycle1::{{impl-Trait}}`...
-    //~| NOTE ...which then again requires processing `cycle1`, completing the cycle.
     send(cycle2().clone());
 
     Rc::new(Cell::new(5))
 }
 
 fn cycle2() -> impl Clone {
-    //~^ NOTE ...which then requires processing `cycle2::{{impl-Trait}}`...
-    //~| NOTE ...which then requires processing `cycle2`...
     send(cycle1().clone());
 
     Rc::new(String::from("foo"))
diff --git a/src/test/ui/impl-trait/auto-trait-leak.stderr b/src/test/ui/impl-trait/auto-trait-leak.stderr
index 1c03e9d8526..ffd6a3fe4ff 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.stderr
+++ b/src/test/ui/impl-trait/auto-trait-leak.stderr
@@ -10,41 +10,41 @@ error[E0277]: the trait bound `std::rc::Rc<std::cell::Cell<i32>>: std::marker::S
    = note: required by `send`
 
 error[E0277]: the trait bound `std::rc::Rc<std::cell::Cell<i32>>: std::marker::Send` is not satisfied in `impl std::ops::Fn<(i32,)>`
-  --> $DIR/auto-trait-leak.rs:34:5
+  --> $DIR/auto-trait-leak.rs:30:5
    |
-34 |     send(after());
+30 |     send(after());
    |     ^^^^ `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
    |
    = help: within `impl std::ops::Fn<(i32,)>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::Cell<i32>>`
-   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak.rs:46:5: 46:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
+   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak.rs:38:5: 38:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
    = note: required because it appears within the type `impl std::ops::Fn<(i32,)>`
    = note: required by `send`
 
 error[E0391]: unsupported cyclic reference between types/traits detected
-  --> $DIR/auto-trait-leak.rs:52:1
+  --> $DIR/auto-trait-leak.rs:44:1
    |
-52 | fn cycle1() -> impl Clone {
+44 | fn cycle1() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^ cyclic reference
    |
 note: the cycle begins when processing `cycle1`...
-  --> $DIR/auto-trait-leak.rs:52:1
+  --> $DIR/auto-trait-leak.rs:44:1
    |
-52 | fn cycle1() -> impl Clone {
+44 | fn cycle1() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
 note: ...which then requires processing `cycle2::{{impl-Trait}}`...
-  --> $DIR/auto-trait-leak.rs:63:16
+  --> $DIR/auto-trait-leak.rs:52:16
    |
-63 | fn cycle2() -> impl Clone {
+52 | fn cycle2() -> impl Clone {
    |                ^^^^^^^^^^
 note: ...which then requires processing `cycle2`...
-  --> $DIR/auto-trait-leak.rs:63:1
+  --> $DIR/auto-trait-leak.rs:52:1
    |
-63 | fn cycle2() -> impl Clone {
+52 | fn cycle2() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
 note: ...which then requires processing `cycle1::{{impl-Trait}}`...
-  --> $DIR/auto-trait-leak.rs:52:16
+  --> $DIR/auto-trait-leak.rs:44:16
    |
-52 | fn cycle1() -> impl Clone {
+44 | fn cycle1() -> impl Clone {
    |                ^^^^^^^^^^
    = note: ...which then again requires processing `cycle1`, completing the cycle.
 
diff --git a/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.rs b/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.rs
index 9120cdab598..79d487493e8 100644
--- a/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.rs
+++ b/src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.rs
@@ -29,5 +29,4 @@ fn main() {
 
     f1.foo(1usize);
     //~^ error: method named `foo` found for type `Bar` in the current scope
-    //~| help: items from traits can only be used if the trait is implemented and in scope
 }
diff --git a/src/test/ui/impl-trait/method-suggestion-no-duplication.rs b/src/test/ui/impl-trait/method-suggestion-no-duplication.rs
index 15ddadf4c51..28028922e32 100644
--- a/src/test/ui/impl-trait/method-suggestion-no-duplication.rs
+++ b/src/test/ui/impl-trait/method-suggestion-no-duplication.rs
@@ -18,5 +18,4 @@ fn foo<F>(f: F) where F: FnMut(Foo) {}
 fn main() {
     foo(|s| s.is_empty());
     //~^ ERROR no method named `is_empty` found
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
 }
diff --git a/src/test/ui/impl-trait/no-method-suggested-traits.rs b/src/test/ui/impl-trait/no-method-suggested-traits.rs
index d9866772bdd..07c0e6f529f 100644
--- a/src/test/ui/impl-trait/no-method-suggested-traits.rs
+++ b/src/test/ui/impl-trait/no-method-suggested-traits.rs
@@ -11,12 +11,7 @@
 // aux-build:no_method_suggested_traits.rs
 extern crate no_method_suggested_traits;
 
-struct Foo; //~ HELP perhaps add a `use` for it
-//~^ HELP perhaps add a `use` for it
-//~| HELP perhaps add a `use` for it
-//~| HELP perhaps add a `use` for it
-//~| HELP perhaps add a `use` for one of them
-//~| HELP perhaps add a `use` for one of them
+struct Foo;
 enum Bar { X }
 
 mod foo {
@@ -44,57 +39,41 @@ fn main() {
 
     'a'.method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is in scope
     std::rc::Rc::new(&mut Box::new(&'a')).method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is in scope
 
     1i32.method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is in scope
     std::rc::Rc::new(&mut Box::new(&1i32)).method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is in scope
 
     Foo.method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&Foo)).method();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
 
     1u64.method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&1u64)).method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
 
     no_method_suggested_traits::Foo.method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     no_method_suggested_traits::Bar::X.method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method2();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
 
     Foo.method3();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&Foo)).method3();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     Bar::X.method3();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
     std::rc::Rc::new(&mut Box::new(&Bar::X)).method3();
     //~^ ERROR no method named
-    //~| HELP items from traits can only be used if the trait is implemented and in scope
 
     // should have no help:
     1_usize.method3(); //~ ERROR no method named
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 2d519c11b94..4517f09d07c 100644
--- a/src/test/ui/impl-trait/no-method-suggested-traits.stderr
+++ b/src/test/ui/impl-trait/no-method-suggested-traits.stderr
@@ -1,7 +1,7 @@
 error[E0599]: no method named `method` found for type `u32` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:38:10
+  --> $DIR/no-method-suggested-traits.rs:33:10
    |
-38 |     1u32.method();
+33 |     1u32.method();
    |          ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -17,9 +17,9 @@ help: the following traits are implemented but not in scope, perhaps add a `use`
    |
 
 error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&u32>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:41:44
+  --> $DIR/no-method-suggested-traits.rs:36:44
    |
-41 |     std::rc::Rc::new(&mut Box::new(&1u32)).method();
+36 |     std::rc::Rc::new(&mut Box::new(&1u32)).method();
    |                                            ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -35,9 +35,9 @@ help: the following traits are implemented but not in scope, perhaps add a `use`
    |
 
 error[E0599]: no method named `method` found for type `char` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:45:9
+  --> $DIR/no-method-suggested-traits.rs:40:9
    |
-45 |     'a'.method();
+40 |     'a'.method();
    |         ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -47,9 +47,9 @@ help: the following trait is implemented but not in scope, perhaps add a `use` f
    |
 
 error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&char>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:48:43
+  --> $DIR/no-method-suggested-traits.rs:42:43
    |
-48 |     std::rc::Rc::new(&mut Box::new(&'a')).method();
+42 |     std::rc::Rc::new(&mut Box::new(&'a')).method();
    |                                           ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -59,9 +59,9 @@ help: the following trait is implemented but not in scope, perhaps add a `use` f
    |
 
 error[E0599]: no method named `method` found for type `i32` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:52:10
+  --> $DIR/no-method-suggested-traits.rs:45:10
    |
-52 |     1i32.method();
+45 |     1i32.method();
    |          ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -71,9 +71,9 @@ help: the following trait is implemented but not in scope, perhaps add a `use` f
    |
 
 error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&i32>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:55:44
+  --> $DIR/no-method-suggested-traits.rs:47:44
    |
-55 |     std::rc::Rc::new(&mut Box::new(&1i32)).method();
+47 |     std::rc::Rc::new(&mut Box::new(&1i32)).method();
    |                                            ^^^^^^
    |
    = help: items from traits can only be used if the trait is in scope
@@ -83,12 +83,12 @@ help: the following trait is implemented but not in scope, perhaps add a `use` f
    |
 
 error[E0599]: no method named `method` found for type `Foo` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:59:9
+  --> $DIR/no-method-suggested-traits.rs:50:9
    |
-14 | struct Foo; //~ HELP perhaps add a `use` for it
+14 | struct Foo;
    | ----------- method `method` not found for this
 ...
-59 |     Foo.method();
+50 |     Foo.method();
    |         ^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -101,9 +101,9 @@ error[E0599]: no method named `method` found for type `Foo` in the current scope
            candidate #6: `no_method_suggested_traits::Reexported`
 
 error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&Foo>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:62:43
+  --> $DIR/no-method-suggested-traits.rs:52:43
    |
-62 |     std::rc::Rc::new(&mut Box::new(&Foo)).method();
+52 |     std::rc::Rc::new(&mut Box::new(&Foo)).method();
    |                                           ^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -116,9 +116,9 @@ error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::box
            candidate #6: `no_method_suggested_traits::Reexported`
 
 error[E0599]: no method named `method2` found for type `u64` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:66:10
+  --> $DIR/no-method-suggested-traits.rs:55:10
    |
-66 |     1u64.method2();
+55 |     1u64.method2();
    |          ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -126,9 +126,9 @@ error[E0599]: no method named `method2` found for type `u64` in the current scop
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::boxed::Box<&u64>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:69:44
+  --> $DIR/no-method-suggested-traits.rs:57:44
    |
-69 |     std::rc::Rc::new(&mut Box::new(&1u64)).method2();
+57 |     std::rc::Rc::new(&mut Box::new(&1u64)).method2();
    |                                            ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -136,9 +136,9 @@ error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::bo
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method2` found for type `no_method_suggested_traits::Foo` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:73:37
+  --> $DIR/no-method-suggested-traits.rs:60:37
    |
-73 |     no_method_suggested_traits::Foo.method2();
+60 |     no_method_suggested_traits::Foo.method2();
    |                                     ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -146,9 +146,9 @@ error[E0599]: no method named `method2` found for type `no_method_suggested_trai
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Foo>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:76:71
+  --> $DIR/no-method-suggested-traits.rs:62:71
    |
-76 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
+62 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
    |                                                                       ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -156,9 +156,9 @@ error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::bo
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method2` found for type `no_method_suggested_traits::Bar` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:79:40
+  --> $DIR/no-method-suggested-traits.rs:64:40
    |
-79 |     no_method_suggested_traits::Bar::X.method2();
+64 |     no_method_suggested_traits::Bar::X.method2();
    |                                        ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -166,9 +166,9 @@ error[E0599]: no method named `method2` found for type `no_method_suggested_trai
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Bar>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:82:74
+  --> $DIR/no-method-suggested-traits.rs:66:74
    |
-82 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method2();
+66 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method2();
    |                                                                          ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -176,12 +176,12 @@ error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::bo
            candidate #1: `foo::Bar`
 
 error[E0599]: no method named `method3` found for type `Foo` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:86:9
+  --> $DIR/no-method-suggested-traits.rs:69:9
    |
-14 | struct Foo; //~ HELP perhaps add a `use` for it
+14 | struct Foo;
    | ----------- method `method3` not found for this
 ...
-86 |     Foo.method3();
+69 |     Foo.method3();
    |         ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -189,9 +189,9 @@ error[E0599]: no method named `method3` found for type `Foo` in the current scop
            candidate #1: `no_method_suggested_traits::foo::PubPub`
 
 error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&Foo>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:89:43
+  --> $DIR/no-method-suggested-traits.rs:71:43
    |
-89 |     std::rc::Rc::new(&mut Box::new(&Foo)).method3();
+71 |     std::rc::Rc::new(&mut Box::new(&Foo)).method3();
    |                                           ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -199,12 +199,12 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
            candidate #1: `no_method_suggested_traits::foo::PubPub`
 
 error[E0599]: no method named `method3` found for type `Bar` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:92:12
+  --> $DIR/no-method-suggested-traits.rs:73:12
    |
-20 | enum Bar { X }
+15 | enum Bar { X }
    | -------- method `method3` not found for this
 ...
-92 |     Bar::X.method3();
+73 |     Bar::X.method3();
    |            ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -212,9 +212,9 @@ error[E0599]: no method named `method3` found for type `Bar` in the current scop
            candidate #1: `no_method_suggested_traits::foo::PubPub`
 
 error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&Bar>>` in the current scope
-  --> $DIR/no-method-suggested-traits.rs:95:46
+  --> $DIR/no-method-suggested-traits.rs:75:46
    |
-95 |     std::rc::Rc::new(&mut Box::new(&Bar::X)).method3();
+75 |     std::rc::Rc::new(&mut Box::new(&Bar::X)).method3();
    |                                              ^^^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -222,40 +222,40 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
            candidate #1: `no_method_suggested_traits::foo::PubPub`
 
 error[E0599]: no method named `method3` found for type `usize` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:100:13
-    |
-100 |     1_usize.method3(); //~ ERROR no method named
-    |             ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:79:13
+   |
+79 |     1_usize.method3(); //~ ERROR no method named
+   |             ^^^^^^^
 
 error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&usize>>` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:101:47
-    |
-101 |     std::rc::Rc::new(&mut Box::new(&1_usize)).method3(); //~ ERROR no method named
-    |                                               ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:80:47
+   |
+80 |     std::rc::Rc::new(&mut Box::new(&1_usize)).method3(); //~ ERROR no method named
+   |                                               ^^^^^^^
 
 error[E0599]: no method named `method3` found for type `no_method_suggested_traits::Foo` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:102:37
-    |
-102 |     no_method_suggested_traits::Foo.method3();  //~ ERROR no method named
-    |                                     ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:81:37
+   |
+81 |     no_method_suggested_traits::Foo.method3();  //~ ERROR no method named
+   |                                     ^^^^^^^
 
 error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Foo>>` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:103:71
-    |
-103 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method3();
-    |                                                                       ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:82:71
+   |
+82 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method3();
+   |                                                                       ^^^^^^^
 
 error[E0599]: no method named `method3` found for type `no_method_suggested_traits::Bar` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:105:40
-    |
-105 |     no_method_suggested_traits::Bar::X.method3();  //~ ERROR no method named
-    |                                        ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:84:40
+   |
+84 |     no_method_suggested_traits::Bar::X.method3();  //~ ERROR no method named
+   |                                        ^^^^^^^
 
 error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Bar>>` in the current scope
-   --> $DIR/no-method-suggested-traits.rs:106:74
-    |
-106 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method3();
-    |                                                                          ^^^^^^^
+  --> $DIR/no-method-suggested-traits.rs:85:74
+   |
+85 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method3();
+   |                                                                          ^^^^^^^
 
 error: aborting due to 24 previous errors
 
diff --git a/src/test/ui/impl-unused-rps-in-assoc-type.rs b/src/test/ui/impl-unused-rps-in-assoc-type.rs
index d48433ee928..23401db21d8 100644
--- a/src/test/ui/impl-unused-rps-in-assoc-type.rs
+++ b/src/test/ui/impl-unused-rps-in-assoc-type.rs
@@ -19,7 +19,6 @@ trait Fun {
 struct Holder { x: String }
 
 impl<'a> Fun for Holder { //~ ERROR E0207
-                          //~| NOTE unconstrained lifetime parameter
     type Output = &'a str;
     fn call<'b>(&'b self) -> &'b str {
         &self.x[..]
diff --git a/src/test/ui/imports/duplicate.rs b/src/test/ui/imports/duplicate.rs
index 4b2a64155e5..dd2dcbe2e68 100644
--- a/src/test/ui/imports/duplicate.rs
+++ b/src/test/ui/imports/duplicate.rs
@@ -21,10 +21,8 @@ mod c {
 }
 
 mod d {
-    use a::foo; //~ NOTE previous import of the value `foo` here
+    use a::foo;
     use a::foo; //~ ERROR the name `foo` is defined multiple times
-                //~| NOTE `foo` reimported here
-                //~| NOTE `foo` must be defined only once in the value namespace of this module
 }
 
 mod e {
@@ -33,37 +31,31 @@ mod e {
 }
 
 mod f {
-    pub use a::*; //~ NOTE `foo` could refer to the name imported here
-    pub use b::*; //~ NOTE `foo` could also refer to the name imported here
+    pub use a::*;
+    pub use b::*;
 }
 
 mod g {
-    pub use a::*; //~ NOTE `foo` could refer to the name imported here
-    pub use f::*; //~ NOTE `foo` could also refer to the name imported here
+    pub use a::*;
+    pub use f::*;
 }
 
 fn main() {
     e::foo();
     f::foo(); //~ ERROR `foo` is ambiguous
-              //~| NOTE consider adding an explicit import of `foo` to disambiguate
     g::foo(); //~ ERROR `foo` is ambiguous
-              //~| NOTE consider adding an explicit import of `foo` to disambiguate
 }
 
 mod ambiguous_module_errors {
     pub mod m1 { pub use super::m1 as foo; }
     pub mod m2 { pub use super::m2 as foo; }
 
-    use self::m1::*; //~ NOTE
-                     //~| NOTE
-    use self::m2::*; //~ NOTE
-                     //~| NOTE
+    use self::m1::*;
+    use self::m2::*;
 
     use self::foo::bar; //~ ERROR `foo` is ambiguous
-                        //~| NOTE
 
     fn f() {
         foo::bar(); //~ ERROR `foo` is ambiguous
-                    //~| NOTE
     }
 }
diff --git a/src/test/ui/imports/duplicate.stderr b/src/test/ui/imports/duplicate.stderr
index a990a816fe9..30f2f517115 100644
--- a/src/test/ui/imports/duplicate.stderr
+++ b/src/test/ui/imports/duplicate.stderr
@@ -1,7 +1,7 @@
 error[E0252]: the name `foo` is defined multiple times
   --> $DIR/duplicate.rs:25:9
    |
-24 |     use a::foo; //~ NOTE previous import of the value `foo` here
+24 |     use a::foo;
    |         ------ previous import of the value `foo` here
 25 |     use a::foo; //~ ERROR the name `foo` is defined multiple times
    |         ^^^^^^ `foo` reimported here
@@ -13,74 +13,74 @@ help: You can use `as` to change the binding name of the import
    |         ^^^^^^^^^^^^^^^^^^
 
 error: `foo` is ambiguous
-  --> $DIR/duplicate.rs:62:9
+  --> $DIR/duplicate.rs:56:9
    |
-62 |     use self::foo::bar; //~ ERROR `foo` is ambiguous
+56 |     use self::foo::bar; //~ ERROR `foo` is ambiguous
    |         ^^^^^^^^^^^^^^
    |
 note: `foo` could refer to the name imported here
-  --> $DIR/duplicate.rs:57:9
+  --> $DIR/duplicate.rs:53:9
    |
-57 |     use self::m1::*; //~ NOTE
+53 |     use self::m1::*;
    |         ^^^^^^^^^^^
 note: `foo` could also refer to the name imported here
-  --> $DIR/duplicate.rs:59:9
+  --> $DIR/duplicate.rs:54:9
    |
-59 |     use self::m2::*; //~ NOTE
+54 |     use self::m2::*;
    |         ^^^^^^^^^^^
    = note: consider adding an explicit import of `foo` to disambiguate
 
 error: `foo` is ambiguous
-  --> $DIR/duplicate.rs:47:5
+  --> $DIR/duplicate.rs:45:5
    |
-47 |     f::foo(); //~ ERROR `foo` is ambiguous
+45 |     f::foo(); //~ ERROR `foo` is ambiguous
    |     ^^^^^^
    |
 note: `foo` could refer to the name imported here
-  --> $DIR/duplicate.rs:36:13
+  --> $DIR/duplicate.rs:34:13
    |
-36 |     pub use a::*; //~ NOTE `foo` could refer to the name imported here
+34 |     pub use a::*;
    |             ^^^^
 note: `foo` could also refer to the name imported here
-  --> $DIR/duplicate.rs:37:13
+  --> $DIR/duplicate.rs:35:13
    |
-37 |     pub use b::*; //~ NOTE `foo` could also refer to the name imported here
+35 |     pub use b::*;
    |             ^^^^
    = note: consider adding an explicit import of `foo` to disambiguate
 
 error: `foo` is ambiguous
-  --> $DIR/duplicate.rs:49:5
+  --> $DIR/duplicate.rs:46:5
    |
-49 |     g::foo(); //~ ERROR `foo` is ambiguous
+46 |     g::foo(); //~ ERROR `foo` is ambiguous
    |     ^^^^^^
    |
 note: `foo` could refer to the name imported here
-  --> $DIR/duplicate.rs:41:13
+  --> $DIR/duplicate.rs:39:13
    |
-41 |     pub use a::*; //~ NOTE `foo` could refer to the name imported here
+39 |     pub use a::*;
    |             ^^^^
 note: `foo` could also refer to the name imported here
-  --> $DIR/duplicate.rs:42:13
+  --> $DIR/duplicate.rs:40:13
    |
-42 |     pub use f::*; //~ NOTE `foo` could also refer to the name imported here
+40 |     pub use f::*;
    |             ^^^^
    = note: consider adding an explicit import of `foo` to disambiguate
 
 error: `foo` is ambiguous
-  --> $DIR/duplicate.rs:66:9
+  --> $DIR/duplicate.rs:59:9
    |
-66 |         foo::bar(); //~ ERROR `foo` is ambiguous
+59 |         foo::bar(); //~ ERROR `foo` is ambiguous
    |         ^^^^^^^^
    |
 note: `foo` could refer to the name imported here
-  --> $DIR/duplicate.rs:57:9
+  --> $DIR/duplicate.rs:53:9
    |
-57 |     use self::m1::*; //~ NOTE
+53 |     use self::m1::*;
    |         ^^^^^^^^^^^
 note: `foo` could also refer to the name imported here
-  --> $DIR/duplicate.rs:59:9
+  --> $DIR/duplicate.rs:54:9
    |
-59 |     use self::m2::*; //~ NOTE
+54 |     use self::m2::*;
    |         ^^^^^^^^^^^
    = note: consider adding an explicit import of `foo` to disambiguate
 
diff --git a/src/test/ui/imports/macro-paths.rs b/src/test/ui/imports/macro-paths.rs
index 7c19917acc4..88a6e1c0d92 100644
--- a/src/test/ui/imports/macro-paths.rs
+++ b/src/test/ui/imports/macro-paths.rs
@@ -21,20 +21,18 @@ mod foo {
 }
 
 fn f() {
-    use foo::*; //~ NOTE could also refer to the name imported here
+    use foo::*;
     bar::m! { //~ ERROR ambiguous
-              //~| NOTE macro-expanded items do not shadow when used in a macro invocation path
-        mod bar { pub use two_macros::m; } //~ NOTE could refer to the name defined here
+        mod bar { pub use two_macros::m; }
     }
 }
 
-pub mod baz { //~ NOTE could also refer to the name defined here
+pub mod baz {
     pub use two_macros::m;
 }
 
 fn g() {
     baz::m! { //~ ERROR ambiguous
-              //~| NOTE macro-expanded items do not shadow when used in a macro invocation path
-        mod baz { pub use two_macros::m; } //~ NOTE could refer to the name defined here
+        mod baz { pub use two_macros::m; }
     }
 }
diff --git a/src/test/ui/imports/macro-paths.stderr b/src/test/ui/imports/macro-paths.stderr
index cd8ab3de4f9..91b0b9756da 100644
--- a/src/test/ui/imports/macro-paths.stderr
+++ b/src/test/ui/imports/macro-paths.stderr
@@ -5,34 +5,34 @@ error: `bar` is ambiguous
    |     ^^^^^^
    |
 note: `bar` could refer to the name defined here
-  --> $DIR/macro-paths.rs:27:9
+  --> $DIR/macro-paths.rs:26:9
    |
-27 |         mod bar { pub use two_macros::m; } //~ NOTE could refer to the name defined here
+26 |         mod bar { pub use two_macros::m; }
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 note: `bar` could also refer to the name imported here
   --> $DIR/macro-paths.rs:24:9
    |
-24 |     use foo::*; //~ NOTE could also refer to the name imported here
+24 |     use foo::*;
    |         ^^^^^^
    = note: macro-expanded items do not shadow when used in a macro invocation path
 
 error: `baz` is ambiguous
-  --> $DIR/macro-paths.rs:36:5
+  --> $DIR/macro-paths.rs:35:5
    |
-36 |     baz::m! { //~ ERROR ambiguous
+35 |     baz::m! { //~ ERROR ambiguous
    |     ^^^^^^
    |
 note: `baz` could refer to the name defined here
-  --> $DIR/macro-paths.rs:38:9
+  --> $DIR/macro-paths.rs:36:9
    |
-38 |         mod baz { pub use two_macros::m; } //~ NOTE could refer to the name defined here
+36 |         mod baz { pub use two_macros::m; }
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 note: `baz` could also refer to the name defined here
-  --> $DIR/macro-paths.rs:31:1
+  --> $DIR/macro-paths.rs:30:1
    |
-31 | / pub mod baz { //~ NOTE could also refer to the name defined here
-32 | |     pub use two_macros::m;
-33 | | }
+30 | / pub mod baz {
+31 | |     pub use two_macros::m;
+32 | | }
    | |_^
    = note: macro-expanded items do not shadow when used in a macro invocation path
 
diff --git a/src/test/ui/imports/macros.rs b/src/test/ui/imports/macros.rs
index 06b0964a3b1..98577d73ee0 100644
--- a/src/test/ui/imports/macros.rs
+++ b/src/test/ui/imports/macros.rs
@@ -24,15 +24,14 @@ mod m1 {
 }
 
 mod m2 {
-    use two_macros::*; //~ NOTE could also refer
+    use two_macros::*;
     m! { //~ ERROR ambiguous
-         //~| NOTE macro-expanded macro imports do not shadow
-        use foo::m; //~ NOTE could refer to the name imported here
+        use foo::m;
     }
 }
 
 mod m3 {
-    use two_macros::m; //~ NOTE could also refer
+    use two_macros::m;
     fn f() {
         use two_macros::n as m; // This shadows the above import
         m!();
@@ -40,14 +39,13 @@ mod m3 {
 
     fn g() {
         m! { //~ ERROR ambiguous
-             //~| NOTE macro-expanded macro imports do not shadow
-            use two_macros::n as m; //~ NOTE could refer to the name imported here
+            use two_macros::n as m;
         }
     }
 }
 
 mod m4 {
-    macro_rules! m { () => {} } //~ NOTE could refer to the macro defined here
-    use two_macros::m; //~ NOTE could also refer to the macro imported here
+    macro_rules! m { () => {} }
+    use two_macros::m;
     m!(); //~ ERROR ambiguous
 }
diff --git a/src/test/ui/imports/macros.stderr b/src/test/ui/imports/macros.stderr
index 857335f783a..0b67613eb14 100644
--- a/src/test/ui/imports/macros.stderr
+++ b/src/test/ui/imports/macros.stderr
@@ -1,18 +1,18 @@
 error: `m` is ambiguous
-  --> $DIR/macros.rs:52:5
+  --> $DIR/macros.rs:50:5
    |
-52 |     m!(); //~ ERROR ambiguous
+50 |     m!(); //~ ERROR ambiguous
    |     ^
    |
 note: `m` could refer to the macro defined here
-  --> $DIR/macros.rs:50:5
+  --> $DIR/macros.rs:48:5
    |
-50 |     macro_rules! m { () => {} } //~ NOTE could refer to the macro defined here
+48 |     macro_rules! m { () => {} }
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 note: `m` could also refer to the macro imported here
-  --> $DIR/macros.rs:51:9
+  --> $DIR/macros.rs:49:9
    |
-51 |     use two_macros::m; //~ NOTE could also refer to the macro imported here
+49 |     use two_macros::m;
    |         ^^^^^^^^^^^^^
 
 error: `m` is ambiguous
@@ -22,32 +22,32 @@ error: `m` is ambiguous
    |     ^
    |
 note: `m` could refer to the name imported here
-  --> $DIR/macros.rs:30:13
+  --> $DIR/macros.rs:29:13
    |
-30 |         use foo::m; //~ NOTE could refer to the name imported here
+29 |         use foo::m;
    |             ^^^^^^
 note: `m` could also refer to the name imported here
   --> $DIR/macros.rs:27:9
    |
-27 |     use two_macros::*; //~ NOTE could also refer
+27 |     use two_macros::*;
    |         ^^^^^^^^^^^^^
    = note: macro-expanded macro imports do not shadow
 
 error: `m` is ambiguous
-  --> $DIR/macros.rs:42:9
+  --> $DIR/macros.rs:41:9
    |
-42 |         m! { //~ ERROR ambiguous
+41 |         m! { //~ ERROR ambiguous
    |         ^
    |
 note: `m` could refer to the name imported here
-  --> $DIR/macros.rs:44:17
+  --> $DIR/macros.rs:42:17
    |
-44 |             use two_macros::n as m; //~ NOTE could refer to the name imported here
+42 |             use two_macros::n as m;
    |                 ^^^^^^^^^^^^^^^^^^
 note: `m` could also refer to the name imported here
-  --> $DIR/macros.rs:35:9
+  --> $DIR/macros.rs:34:9
    |
-35 |     use two_macros::m; //~ NOTE could also refer
+34 |     use two_macros::m;
    |         ^^^^^^^^^^^^^
    = note: macro-expanded macro imports do not shadow
 
diff --git a/src/test/ui/imports/rfc-1560-warning-cycle.rs b/src/test/ui/imports/rfc-1560-warning-cycle.rs
index 95bdf5e9b15..f94fc3633e3 100644
--- a/src/test/ui/imports/rfc-1560-warning-cycle.rs
+++ b/src/test/ui/imports/rfc-1560-warning-cycle.rs
@@ -16,13 +16,11 @@ mod bar {
     struct Foo;
 
     mod baz {
-        use *; //~ NOTE `Foo` could refer to the name imported here
-        use bar::*; //~ NOTE `Foo` could also refer to the name imported here
+        use *;
+        use bar::*;
         fn f(_: Foo) {}
         //~^ ERROR `Foo` is ambiguous
         //~| WARN hard error in a future release
-        //~| NOTE see issue #38260
-        //~| NOTE #[deny(legacy_imports)] on by default
     }
 }
 
diff --git a/src/test/ui/imports/rfc-1560-warning-cycle.stderr b/src/test/ui/imports/rfc-1560-warning-cycle.stderr
index c5e6f23fdae..1fec7311272 100644
--- a/src/test/ui/imports/rfc-1560-warning-cycle.stderr
+++ b/src/test/ui/imports/rfc-1560-warning-cycle.stderr
@@ -1,9 +1,9 @@
 error: `Foo` is ambiguous
   --> $DIR/rfc-1560-warning-cycle.rs:21:17
    |
-19 |         use *; //~ NOTE `Foo` could refer to the name imported here
+19 |         use *;
    |             - `Foo` could refer to the name imported here
-20 |         use bar::*; //~ NOTE `Foo` could also refer to the name imported here
+20 |         use bar::*;
    |             ------ `Foo` could also refer to the name imported here
 21 |         fn f(_: Foo) {}
    |                 ^^^
diff --git a/src/test/ui/imports/shadow_builtin_macros.rs b/src/test/ui/imports/shadow_builtin_macros.rs
index a7f1cf3c9d3..93de136c405 100644
--- a/src/test/ui/imports/shadow_builtin_macros.rs
+++ b/src/test/ui/imports/shadow_builtin_macros.rs
@@ -23,17 +23,13 @@ mod m1 {
 }
 
 mod m2 {
-    use foo::*; //~ NOTE `panic` could refer to the name imported here
+    use foo::*;
     fn f() { panic!(); } //~ ERROR ambiguous
-    //~| NOTE `panic` is also a builtin macro
-    //~| NOTE consider adding an explicit import of `panic` to disambiguate
 }
 
 mod m3 {
-    ::two_macros::m!(use foo::panic;); //~ NOTE `panic` could refer to the name imported here
+    ::two_macros::m!(use foo::panic;);
     fn f() { panic!(); } //~ ERROR ambiguous
-    //~| NOTE `panic` is also a builtin macro
-    //~| NOTE macro-expanded macro imports do not shadow
 }
 
 mod m4 {
@@ -44,14 +40,12 @@ mod m4 {
 mod m5 {
     macro_rules! m { () => {
         macro_rules! panic { () => {} } //~ ERROR `panic` is already in scope
-        //~| NOTE macro-expanded `macro_rules!`s may not shadow existing macros
     } }
-    m!(); //~ NOTE in this expansion
-    //~| NOTE in this expansion
+    m!();
     panic!();
 }
 
-#[macro_use(n)] //~ NOTE `n` could also refer to the name imported here
+#[macro_use(n)]
 extern crate two_macros;
 mod bar {
     pub use two_macros::m as n;
@@ -63,9 +57,8 @@ mod m6 {
 }
 
 mod m7 {
-    use bar::*; //~ NOTE `n` could refer to the name imported here
+    use bar::*;
     n!(); //~ ERROR ambiguous
-    //~| NOTE consider adding an explicit import of `n` to disambiguate
 }
 
 fn main() {}
diff --git a/src/test/ui/imports/shadow_builtin_macros.stderr b/src/test/ui/imports/shadow_builtin_macros.stderr
index 53a0cdd82b2..853ed98c30d 100644
--- a/src/test/ui/imports/shadow_builtin_macros.stderr
+++ b/src/test/ui/imports/shadow_builtin_macros.stderr
@@ -1,10 +1,10 @@
 error: `panic` is already in scope
-  --> $DIR/shadow_builtin_macros.rs:46:9
+  --> $DIR/shadow_builtin_macros.rs:42:9
    |
-46 |         macro_rules! panic { () => {} } //~ ERROR `panic` is already in scope
+42 |         macro_rules! panic { () => {} } //~ ERROR `panic` is already in scope
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-...
-49 |     m!(); //~ NOTE in this expansion
+43 |     } }
+44 |     m!();
    |     ----- in this macro invocation
    |
    = note: macro-expanded `macro_rules!`s may not shadow existing macros (see RFC 1560)
@@ -18,40 +18,40 @@ error: `panic` is ambiguous
 note: `panic` could refer to the name imported here
   --> $DIR/shadow_builtin_macros.rs:26:9
    |
-26 |     use foo::*; //~ NOTE `panic` could refer to the name imported here
+26 |     use foo::*;
    |         ^^^^^^
    = note: `panic` is also a builtin macro
    = note: consider adding an explicit import of `panic` to disambiguate
 
 error: `panic` is ambiguous
-  --> $DIR/shadow_builtin_macros.rs:34:14
+  --> $DIR/shadow_builtin_macros.rs:32:14
    |
-34 |     fn f() { panic!(); } //~ ERROR ambiguous
+32 |     fn f() { panic!(); } //~ ERROR ambiguous
    |              ^^^^^
    |
 note: `panic` could refer to the name imported here
-  --> $DIR/shadow_builtin_macros.rs:33:26
+  --> $DIR/shadow_builtin_macros.rs:31:26
    |
-33 |     ::two_macros::m!(use foo::panic;); //~ NOTE `panic` could refer to the name imported here
+31 |     ::two_macros::m!(use foo::panic;);
    |                          ^^^^^^^^^^
    = note: `panic` is also a builtin macro
    = note: macro-expanded macro imports do not shadow
 
 error: `n` is ambiguous
-  --> $DIR/shadow_builtin_macros.rs:67:5
+  --> $DIR/shadow_builtin_macros.rs:61:5
    |
-67 |     n!(); //~ ERROR ambiguous
+61 |     n!(); //~ ERROR ambiguous
    |     ^
    |
 note: `n` could refer to the name imported here
-  --> $DIR/shadow_builtin_macros.rs:66:9
+  --> $DIR/shadow_builtin_macros.rs:60:9
    |
-66 |     use bar::*; //~ NOTE `n` could refer to the name imported here
+60 |     use bar::*;
    |         ^^^^^^
 note: `n` could also refer to the name imported here
-  --> $DIR/shadow_builtin_macros.rs:54:13
+  --> $DIR/shadow_builtin_macros.rs:48:13
    |
-54 | #[macro_use(n)] //~ NOTE `n` could also refer to the name imported here
+48 | #[macro_use(n)]
    |             ^
    = note: consider adding an explicit import of `n` to disambiguate
 
diff --git a/src/test/ui/impossible_range.rs b/src/test/ui/impossible_range.rs
index e4465e9f6b6..330a9213bc7 100644
--- a/src/test/ui/impossible_range.rs
+++ b/src/test/ui/impossible_range.rs
@@ -19,9 +19,7 @@ pub fn main() {
     0..1;
 
     ..=; //~ERROR inclusive range with no end
-         //~^HELP bounded at the end
     0..=; //~ERROR inclusive range with no end
-          //~^HELP bounded at the end
     ..=1;
     0..=1;
 }
diff --git a/src/test/ui/impossible_range.stderr b/src/test/ui/impossible_range.stderr
index 8ea5942314d..75c6d859621 100644
--- a/src/test/ui/impossible_range.stderr
+++ b/src/test/ui/impossible_range.stderr
@@ -7,9 +7,9 @@ error[E0586]: inclusive range with no end
    = help: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
 
 error[E0586]: inclusive range with no end
-  --> $DIR/impossible_range.rs:23:9
+  --> $DIR/impossible_range.rs:22:9
    |
-23 |     0..=; //~ERROR inclusive range with no end
+22 |     0..=; //~ERROR inclusive range with no end
    |         ^
    |
    = help: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
diff --git a/src/test/ui/index-help.rs b/src/test/ui/index-help.rs
index 2d37fc79250..4a64d6c4cc5 100644
--- a/src/test/ui/index-help.rs
+++ b/src/test/ui/index-help.rs
@@ -11,5 +11,4 @@
 fn main() {
     let x = vec![1];
     x[0i32]; //~ ERROR E0277
-             //~| NOTE vector indices are of type `usize` or ranges of `usize`
 }
diff --git a/src/test/ui/issue-10969.rs b/src/test/ui/issue-10969.rs
index 0851020b1f1..4ab4a8b579a 100644
--- a/src/test/ui/issue-10969.rs
+++ b/src/test/ui/issue-10969.rs
@@ -8,10 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn func(i: i32) { //~NOTE defined here
+fn func(i: i32) {
     i(); //~ERROR expected function, found `i32`
 }
 fn main() {
-    let i = 0i32; //~NOTE defined here
+    let i = 0i32;
     i(); //~ERROR expected function, found `i32`
 }
diff --git a/src/test/ui/issue-10969.stderr b/src/test/ui/issue-10969.stderr
index f537c51026e..8aea63e0bbd 100644
--- a/src/test/ui/issue-10969.stderr
+++ b/src/test/ui/issue-10969.stderr
@@ -7,7 +7,7 @@ error[E0618]: expected function, found `i32`
 note: defined here
   --> $DIR/issue-10969.rs:11:9
    |
-11 | fn func(i: i32) { //~NOTE defined here
+11 | fn func(i: i32) {
    |         ^
 
 error[E0618]: expected function, found `i32`
@@ -19,7 +19,7 @@ error[E0618]: expected function, found `i32`
 note: defined here
   --> $DIR/issue-10969.rs:15:9
    |
-15 |     let i = 0i32; //~NOTE defined here
+15 |     let i = 0i32;
    |         ^
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-11004.rs b/src/test/ui/issue-11004.rs
index 06988342422..503fa647512 100644
--- a/src/test/ui/issue-11004.rs
+++ b/src/test/ui/issue-11004.rs
@@ -15,9 +15,7 @@ struct A { x: i32, y: f64 }
 #[cfg(not(works))]
 unsafe fn access(n:*mut A) -> (i32, f64) {
     let x : i32 = n.x; //~ no field `x` on type `*mut A`
-                       //~| NOTE `n` is a native pointer; perhaps you need to deref with `(*n).x`
     let y : f64 = n.y; //~ no field `y` on type `*mut A`
-                       //~| NOTE `n` is a native pointer; perhaps you need to deref with `(*n).y`
     (x, y)
 }
 
diff --git a/src/test/ui/issue-11004.stderr b/src/test/ui/issue-11004.stderr
index 3dfa14bc415..9b8c3df7d59 100644
--- a/src/test/ui/issue-11004.stderr
+++ b/src/test/ui/issue-11004.stderr
@@ -7,9 +7,9 @@ error[E0609]: no field `x` on type `*mut A`
    = note: `n` is a native pointer; perhaps you need to deref with `(*n).x`
 
 error[E0609]: no field `y` on type `*mut A`
-  --> $DIR/issue-11004.rs:19:21
+  --> $DIR/issue-11004.rs:18:21
    |
-19 |     let y : f64 = n.y; //~ no field `y` on type `*mut A`
+18 |     let y : f64 = n.y; //~ no field `y` on type `*mut A`
    |                     ^
    |
    = note: `n` is a native pointer; perhaps you need to deref with `(*n).y`
diff --git a/src/test/ui/issue-11319.rs b/src/test/ui/issue-11319.rs
index 8242fa1c2e9..20636ed1ea9 100644
--- a/src/test/ui/issue-11319.rs
+++ b/src/test/ui/issue-11319.rs
@@ -16,7 +16,7 @@ fn main() {
     //~| expected bool, found ()
         Some(5) => false,
         Some(2) => true,
-        None    => (), //~ NOTE match arm with an incompatible type
+        None    => (),
         _       => true
     }
 }
diff --git a/src/test/ui/issue-11319.stderr b/src/test/ui/issue-11319.stderr
index bcb7dd8b8f5..b5db112797f 100644
--- a/src/test/ui/issue-11319.stderr
+++ b/src/test/ui/issue-11319.stderr
@@ -15,7 +15,7 @@ error[E0308]: match arms have incompatible types
 note: match arm with an incompatible type
   --> $DIR/issue-11319.rs:19:20
    |
-19 |         None    => (), //~ NOTE match arm with an incompatible type
+19 |         None    => (),
    |                    ^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-12187-1.rs b/src/test/ui/issue-12187-1.rs
index a79021d3cd5..c429b73bc95 100644
--- a/src/test/ui/issue-12187-1.rs
+++ b/src/test/ui/issue-12187-1.rs
@@ -15,6 +15,4 @@ fn new<T>() -> &'static T {
 fn main() {
     let &v = new();
     //~^ ERROR type annotations needed [E0282]
-    //~| NOTE cannot infer type for `_`
-    //~| NOTE consider giving the pattern a type
 }
diff --git a/src/test/ui/issue-12187-2.rs b/src/test/ui/issue-12187-2.rs
index 38b3c5d4e9a..733f597e7ac 100644
--- a/src/test/ui/issue-12187-2.rs
+++ b/src/test/ui/issue-12187-2.rs
@@ -15,6 +15,4 @@ fn new<'r, T>() -> &'r T {
 fn main() {
     let &v = new();
     //~^ ERROR type annotations needed [E0282]
-    //~| NOTE cannot infer type for `_`
-    //~| NOTE consider giving the pattern a type
 }
diff --git a/src/test/ui/issue-12511.rs b/src/test/ui/issue-12511.rs
index 0c3073a7701..e1335c7d558 100644
--- a/src/test/ui/issue-12511.rs
+++ b/src/test/ui/issue-12511.rs
@@ -9,14 +9,11 @@
 // except according to those terms.
 
 trait t1 : t2 {
-//~^ NOTE the cycle begins when computing the supertraits of `t1`...
-//~| NOTE ...which then requires computing the supertraits of `t2`...
 }
 
 trait t2 : t1 {
 //~^ ERROR unsupported cyclic reference between types/traits detected
 //~| cyclic reference
-//~| NOTE ...which then again requires computing the supertraits of `t1`, completing the cycle
 }
 
 fn main() { }
diff --git a/src/test/ui/issue-12511.stderr b/src/test/ui/issue-12511.stderr
index 3f039d9496d..cbf005a70b0 100644
--- a/src/test/ui/issue-12511.stderr
+++ b/src/test/ui/issue-12511.stderr
@@ -1,7 +1,7 @@
 error[E0391]: unsupported cyclic reference between types/traits detected
-  --> $DIR/issue-12511.rs:16:1
+  --> $DIR/issue-12511.rs:14:1
    |
-16 | trait t2 : t1 {
+14 | trait t2 : t1 {
    | ^^^^^^^^^^^^^ cyclic reference
    |
 note: the cycle begins when computing the supertraits of `t1`...
diff --git a/src/test/ui/issue-13058.rs b/src/test/ui/issue-13058.rs
index 27b23f08321..dbcf9998ad9 100644
--- a/src/test/ui/issue-13058.rs
+++ b/src/test/ui/issue-13058.rs
@@ -35,5 +35,4 @@ fn check<'r, I: Iterator<Item=usize>, T: Itble<'r, usize, I>>(cont: &T) -> bool
 fn main() {
     check((3, 5));
 //~^ ERROR mismatched types
-//~| HELP consider borrowing here
 }
diff --git a/src/test/ui/issue-14092.rs b/src/test/ui/issue-14092.rs
index 85dd88e614f..449de26769f 100644
--- a/src/test/ui/issue-14092.rs
+++ b/src/test/ui/issue-14092.rs
@@ -10,6 +10,5 @@
 
 fn fn1(0: Box) {}
         //~^ ERROR wrong number of type arguments: expected 1, found 0 [E0243]
-        //~| NOTE expected 1 type argument
 
 fn main() {}
diff --git a/src/test/ui/issue-15260.rs b/src/test/ui/issue-15260.rs
index 5f816d34c84..6356ea81660 100644
--- a/src/test/ui/issue-15260.rs
+++ b/src/test/ui/issue-15260.rs
@@ -14,28 +14,22 @@ struct Foo {
 
 fn main() {
     let Foo {
-        a: _, //~ NOTE first use of `a`
+        a: _,
         a: _
         //~^ ERROR field `a` bound multiple times in the pattern
-        //~| NOTE multiple uses of `a` in pattern
     } = Foo { a: 29 };
 
     let Foo {
-        a, //~ NOTE first use of `a`
+        a,
         a: _
         //~^ ERROR field `a` bound multiple times in the pattern
-        //~| NOTE multiple uses of `a` in pattern
     } = Foo { a: 29 };
 
     let Foo {
         a,
-        //~^ NOTE first use of `a`
-        //~| NOTE first use of `a`
         a: _,
         //~^ ERROR field `a` bound multiple times in the pattern
-        //~| NOTE multiple uses of `a` in pattern
         a: x
         //~^ ERROR field `a` bound multiple times in the pattern
-        //~| NOTE multiple uses of `a` in pattern
     } = Foo { a: 29 };
 }
diff --git a/src/test/ui/issue-15260.stderr b/src/test/ui/issue-15260.stderr
index f33662a7ee9..aca2fa5ed04 100644
--- a/src/test/ui/issue-15260.stderr
+++ b/src/test/ui/issue-15260.stderr
@@ -1,35 +1,34 @@
 error[E0025]: field `a` bound multiple times in the pattern
   --> $DIR/issue-15260.rs:18:9
    |
-17 |         a: _, //~ NOTE first use of `a`
+17 |         a: _,
    |         ---- first use of `a`
 18 |         a: _
    |         ^^^^ multiple uses of `a` in pattern
 
 error[E0025]: field `a` bound multiple times in the pattern
-  --> $DIR/issue-15260.rs:25:9
+  --> $DIR/issue-15260.rs:24:9
    |
-24 |         a, //~ NOTE first use of `a`
+23 |         a,
    |         - first use of `a`
-25 |         a: _
+24 |         a: _
    |         ^^^^ multiple uses of `a` in pattern
 
 error[E0025]: field `a` bound multiple times in the pattern
-  --> $DIR/issue-15260.rs:34:9
+  --> $DIR/issue-15260.rs:30:9
    |
-31 |         a,
+29 |         a,
    |         - first use of `a`
-...
-34 |         a: _,
+30 |         a: _,
    |         ^^^^ multiple uses of `a` in pattern
 
 error[E0025]: field `a` bound multiple times in the pattern
-  --> $DIR/issue-15260.rs:37:9
+  --> $DIR/issue-15260.rs:32:9
    |
-31 |         a,
+29 |         a,
    |         - first use of `a`
 ...
-37 |         a: x
+32 |         a: x
    |         ^^^^ multiple uses of `a` in pattern
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/issue-15524.rs b/src/test/ui/issue-15524.rs
index 658a0c1546b..85214bd8633 100644
--- a/src/test/ui/issue-15524.rs
+++ b/src/test/ui/issue-15524.rs
@@ -12,20 +12,14 @@ const N: isize = 1;
 
 enum Foo {
     A = 1,
-    //~^ NOTE first use of `1isize`
-    //~| NOTE first use of `1isize`
-    //~| NOTE first use of `1isize`
     B = 1,
     //~^ ERROR discriminant value `1isize` already exists
-    //~| NOTE enum already has `1isize`
     C = 0,
     D,
     //~^ ERROR discriminant value `1isize` already exists
-    //~| NOTE enum already has `1isize`
 
     E = N,
     //~^ ERROR discriminant value `1isize` already exists
-    //~| NOTE enum already has `1isize`
 
 }
 
diff --git a/src/test/ui/issue-15524.stderr b/src/test/ui/issue-15524.stderr
index 9a26b4d4af4..9c77752be20 100644
--- a/src/test/ui/issue-15524.stderr
+++ b/src/test/ui/issue-15524.stderr
@@ -1,28 +1,27 @@
 error[E0081]: discriminant value `1isize` already exists
-  --> $DIR/issue-15524.rs:18:9
+  --> $DIR/issue-15524.rs:15:9
    |
 14 |     A = 1,
    |         - first use of `1isize`
-...
-18 |     B = 1,
+15 |     B = 1,
    |         ^ enum already has `1isize`
 
 error[E0081]: discriminant value `1isize` already exists
-  --> $DIR/issue-15524.rs:22:5
+  --> $DIR/issue-15524.rs:18:5
    |
 14 |     A = 1,
    |         - first use of `1isize`
 ...
-22 |     D,
+18 |     D,
    |     ^ enum already has `1isize`
 
 error[E0081]: discriminant value `1isize` already exists
-  --> $DIR/issue-15524.rs:26:9
+  --> $DIR/issue-15524.rs:21:9
    |
 14 |     A = 1,
    |         - first use of `1isize`
 ...
-26 |     E = N,
+21 |     E = N,
    |         ^ enum already has `1isize`
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/issue-17263.rs b/src/test/ui/issue-17263.rs
index 063afe285fa..242327e93ce 100644
--- a/src/test/ui/issue-17263.rs
+++ b/src/test/ui/issue-17263.rs
@@ -16,14 +16,8 @@ fn main() {
     let mut x: Box<_> = box Foo { a: 1, b: 2 };
     let (a, b) = (&mut x.a, &mut x.b);
     //~^ ERROR cannot borrow `x` (via `x.b`) as mutable more than once at a time
-    //~| NOTE first mutable borrow occurs here (via `x.a`)
-    //~| NOTE second mutable borrow occurs here (via `x.b`)
 
     let mut foo: Box<_> = box Foo { a: 1, b: 2 };
     let (c, d) = (&mut foo.a, &foo.b);
     //~^ ERROR cannot borrow `foo` (via `foo.b`) as immutable
-    //~| NOTE mutable borrow occurs here (via `foo.a`)
-    //~| NOTE immutable borrow occurs here (via `foo.b`)
 }
-//~^ NOTE first borrow ends here
-//~^^ NOTE mutable borrow ends here
diff --git a/src/test/ui/issue-17263.stderr b/src/test/ui/issue-17263.stderr
index 934311ee412..a762c0876b5 100644
--- a/src/test/ui/issue-17263.stderr
+++ b/src/test/ui/issue-17263.stderr
@@ -6,18 +6,18 @@ error[E0499]: cannot borrow `x` (via `x.b`) as mutable more than once at a time
    |                        |
    |                        first mutable borrow occurs here (via `x.a`)
 ...
-27 | }
+23 | }
    | - first borrow ends here
 
 error[E0502]: cannot borrow `foo` (via `foo.b`) as immutable because `foo` is also borrowed as mutable (via `foo.a`)
-  --> $DIR/issue-17263.rs:23:32
+  --> $DIR/issue-17263.rs:21:32
    |
-23 |     let (c, d) = (&mut foo.a, &foo.b);
+21 |     let (c, d) = (&mut foo.a, &foo.b);
    |                        -----   ^^^^^ immutable borrow occurs here (via `foo.b`)
    |                        |
    |                        mutable borrow occurs here (via `foo.a`)
-...
-27 | }
+22 |     //~^ ERROR cannot borrow `foo` (via `foo.b`) as immutable
+23 | }
    | - mutable borrow ends here
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-17441.rs b/src/test/ui/issue-17441.rs
index bddc9c13815..c7b07701461 100644
--- a/src/test/ui/issue-17441.rs
+++ b/src/test/ui/issue-17441.rs
@@ -11,17 +11,13 @@
 fn main() {
     let _foo = &[1_usize, 2] as [usize];
     //~^ ERROR cast to unsized type: `&[usize; 2]` as `[usize]`
-    //~^^ HELP consider using an implicit coercion to `&[usize]` instead
 
     let _bar = Box::new(1_usize) as std::fmt::Debug;
     //~^ ERROR cast to unsized type: `std::boxed::Box<usize>` as `std::fmt::Debug`
-    //~^^ HELP try casting to a `Box` instead
 
     let _baz = 1_usize as std::fmt::Debug;
     //~^ ERROR cast to unsized type: `usize` as `std::fmt::Debug`
-    //~^^ HELP consider using a box or reference as appropriate
 
     let _quux = [1_usize, 2] as [usize];
     //~^ ERROR cast to unsized type: `[usize; 2]` as `[usize]`
-    //~^^ HELP consider using a box or reference as appropriate
 }
diff --git a/src/test/ui/issue-17441.stderr b/src/test/ui/issue-17441.stderr
index 4b0feb84429..593507a5d45 100644
--- a/src/test/ui/issue-17441.stderr
+++ b/src/test/ui/issue-17441.stderr
@@ -11,35 +11,35 @@ help: consider using an implicit coercion to `&[usize]` instead
    |                ^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0620]: cast to unsized type: `std::boxed::Box<usize>` as `std::fmt::Debug`
-  --> $DIR/issue-17441.rs:16:16
+  --> $DIR/issue-17441.rs:15:16
    |
-16 |     let _bar = Box::new(1_usize) as std::fmt::Debug;
+15 |     let _bar = Box::new(1_usize) as std::fmt::Debug;
    |                ^^^^^^^^^^^^^^^^^^^^^---------------
    |                                     |
    |                                     help: try casting to a `Box` instead: `Box<std::fmt::Debug>`
 
 error[E0620]: cast to unsized type: `usize` as `std::fmt::Debug`
-  --> $DIR/issue-17441.rs:20:16
+  --> $DIR/issue-17441.rs:18:16
    |
-20 |     let _baz = 1_usize as std::fmt::Debug;
+18 |     let _baz = 1_usize as std::fmt::Debug;
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
 help: consider using a box or reference as appropriate
-  --> $DIR/issue-17441.rs:20:16
+  --> $DIR/issue-17441.rs:18:16
    |
-20 |     let _baz = 1_usize as std::fmt::Debug;
+18 |     let _baz = 1_usize as std::fmt::Debug;
    |                ^^^^^^^
 
 error[E0620]: cast to unsized type: `[usize; 2]` as `[usize]`
-  --> $DIR/issue-17441.rs:24:17
+  --> $DIR/issue-17441.rs:21:17
    |
-24 |     let _quux = [1_usize, 2] as [usize];
+21 |     let _quux = [1_usize, 2] as [usize];
    |                 ^^^^^^^^^^^^^^^^^^^^^^^
    |
 help: consider using a box or reference as appropriate
-  --> $DIR/issue-17441.rs:24:17
+  --> $DIR/issue-17441.rs:21:17
    |
-24 |     let _quux = [1_usize, 2] as [usize];
+21 |     let _quux = [1_usize, 2] as [usize];
    |                 ^^^^^^^^^^^^
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/issue-17954.stderr b/src/test/ui/issue-17954.stderr
index cfd8da1d67b..2ee4a66882b 100644
--- a/src/test/ui/issue-17954.stderr
+++ b/src/test/ui/issue-17954.stderr
@@ -4,7 +4,7 @@ error[E0597]: borrowed value does not live long enough
 17 |     let a = &FOO;
    |              ^^^ does not live long enough
 ...
-25 | } //~ temporary value only lives until here
+24 | } //~ temporary value only lives until here
    | - temporary value only lives until here
    |
    = note: borrowed value must be valid for the static lifetime...
diff --git a/src/test/ui/issue-18183.rs b/src/test/ui/issue-18183.rs
index feab04531b7..2cad4a3175f 100644
--- a/src/test/ui/issue-18183.rs
+++ b/src/test/ui/issue-18183.rs
@@ -9,6 +9,5 @@
 // except according to those terms.
 
 pub struct Foo<Bar=Bar>(Bar); //~ ERROR E0128
-                              //~| NOTE defaulted type parameters cannot be forward declared
 pub struct Baz(Foo);
 fn main() {}
diff --git a/src/test/ui/issue-18819.rs b/src/test/ui/issue-18819.rs
index 148eea31ec6..c6f60f1cbba 100644
--- a/src/test/ui/issue-18819.rs
+++ b/src/test/ui/issue-18819.rs
@@ -19,12 +19,10 @@ impl Foo for X {
 }
 
 fn print_x(_: &Foo<Item=bool>, extra: &str) {
-    //~^ NOTE defined here
     println!("{}", extra);
 }
 
 fn main() {
     print_x(X);
     //~^ ERROR E0061
-    //~| NOTE expected 2 parameters
 }
diff --git a/src/test/ui/issue-18819.stderr b/src/test/ui/issue-18819.stderr
index a3f1b23c270..25623668e37 100644
--- a/src/test/ui/issue-18819.stderr
+++ b/src/test/ui/issue-18819.stderr
@@ -1,13 +1,12 @@
 error[E0061]: this function takes 2 parameters but 1 parameter was supplied
-  --> $DIR/issue-18819.rs:27:13
+  --> $DIR/issue-18819.rs:26:13
    |
 21 | / fn print_x(_: &Foo<Item=bool>, extra: &str) {
-22 | |     //~^ NOTE defined here
-23 | |     println!("{}", extra);
-24 | | }
+22 | |     println!("{}", extra);
+23 | | }
    | |_- defined here
 ...
-27 |       print_x(X);
+26 |       print_x(X);
    |               ^ expected 2 parameters
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-19100.rs b/src/test/ui/issue-19100.rs
index bcadd94eb6f..2032f23e6a3 100644
--- a/src/test/ui/issue-19100.rs
+++ b/src/test/ui/issue-19100.rs
@@ -26,12 +26,10 @@ impl Foo {
             &
 Bar if true
 //~^ WARN pattern binding `Bar` is named the same as one of the variants of the type `Foo`
-//~^^ HELP to match on a variant, consider making the path in the pattern qualified: `Foo::Bar`
 => println!("bar"),
             &
 Baz if false
 //~^ WARN pattern binding `Baz` is named the same as one of the variants of the type `Foo`
-//~^^ HELP to match on a variant, consider making the path in the pattern qualified: `Foo::Baz`
 => println!("baz"),
 _ => ()
         }
diff --git a/src/test/ui/issue-19100.stderr b/src/test/ui/issue-19100.stderr
index 45e2ef652d5..a567e86cfdb 100644
--- a/src/test/ui/issue-19100.stderr
+++ b/src/test/ui/issue-19100.stderr
@@ -7,9 +7,9 @@ warning[E0170]: pattern binding `Bar` is named the same as one of the variants o
    = help: if you meant to match on a variant, consider making the path in the pattern qualified: `Foo::Bar`
 
 warning[E0170]: pattern binding `Baz` is named the same as one of the variants of the type `Foo`
-  --> $DIR/issue-19100.rs:32:1
+  --> $DIR/issue-19100.rs:31:1
    |
-32 | Baz if false
+31 | Baz if false
    | ^^^
    |
    = help: if you meant to match on a variant, consider making the path in the pattern qualified: `Foo::Baz`
diff --git a/src/test/ui/issue-19498.rs b/src/test/ui/issue-19498.rs
index 7de16e5ecfe..30eea2efd15 100644
--- a/src/test/ui/issue-19498.rs
+++ b/src/test/ui/issue-19498.rs
@@ -8,19 +8,16 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use self::A; //~ NOTE previous import of the module `A` here
-use self::B; //~ NOTE previous import of the module `B` here
+use self::A;
+use self::B;
 mod A {} //~ ERROR the name `A` is defined multiple times
 //~| `A` redefined here
-//~| NOTE `A` must be defined only once in the type namespace of this module
 pub mod B {} //~ ERROR the name `B` is defined multiple times
 //~| `B` redefined here
-//~| NOTE `B` must be defined only once in the type namespace of this module
 mod C {
-    use C::D; //~ NOTE previous import of the module `D` here
+    use C::D;
     mod D {} //~ ERROR the name `D` is defined multiple times
     //~| `D` redefined here
-    //~| NOTE `D` must be defined only once in the type namespace of this module
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-19498.stderr b/src/test/ui/issue-19498.stderr
index fca9d1581b3..e7a308eacfe 100644
--- a/src/test/ui/issue-19498.stderr
+++ b/src/test/ui/issue-19498.stderr
@@ -1,45 +1,45 @@
 error[E0255]: the name `A` is defined multiple times
   --> $DIR/issue-19498.rs:13:1
    |
-11 | use self::A; //~ NOTE previous import of the module `A` here
+11 | use self::A;
    |     ------- previous import of the module `A` here
-12 | use self::B; //~ NOTE previous import of the module `B` here
+12 | use self::B;
 13 | mod A {} //~ ERROR the name `A` is defined multiple times
    | ^^^^^^^^ `A` redefined here
    |
    = note: `A` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-11 | use self::A as OtherA; //~ NOTE previous import of the module `A` here
+11 | use self::A as OtherA;
    |     ^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `B` is defined multiple times
-  --> $DIR/issue-19498.rs:16:1
+  --> $DIR/issue-19498.rs:15:1
    |
-12 | use self::B; //~ NOTE previous import of the module `B` here
+12 | use self::B;
    |     ------- previous import of the module `B` here
 ...
-16 | pub mod B {} //~ ERROR the name `B` is defined multiple times
+15 | pub mod B {} //~ ERROR the name `B` is defined multiple times
    | ^^^^^^^^^^^^ `B` redefined here
    |
    = note: `B` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-12 | use self::B as OtherB; //~ NOTE previous import of the module `B` here
+12 | use self::B as OtherB;
    |     ^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `D` is defined multiple times
-  --> $DIR/issue-19498.rs:21:5
+  --> $DIR/issue-19498.rs:19:5
    |
-20 |     use C::D; //~ NOTE previous import of the module `D` here
+18 |     use C::D;
    |         ---- previous import of the module `D` here
-21 |     mod D {} //~ ERROR the name `D` is defined multiple times
+19 |     mod D {} //~ ERROR the name `D` is defined multiple times
    |     ^^^^^^^^ `D` redefined here
    |
    = note: `D` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-20 |     use C::D as OtherD; //~ NOTE previous import of the module `D` here
+18 |     use C::D as OtherD;
    |         ^^^^^^^^^^^^^^
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/issue-19707.rs b/src/test/ui/issue-19707.rs
index beeb7da6d38..377aef2f7d7 100644
--- a/src/test/ui/issue-19707.rs
+++ b/src/test/ui/issue-19707.rs
@@ -11,9 +11,7 @@
 #![allow(dead_code)]
 
 type foo = fn(&u8, &u8) -> &u8; //~ ERROR missing lifetime specifier
-//~^ HELP the signature does not say whether it is borrowed from argument 1 or argument 2
 
 fn bar<F: Fn(&u8, &u8) -> &u8>(f: &F) {} //~ ERROR missing lifetime specifier
-//~^ HELP the signature does not say whether it is borrowed from argument 1 or argument 2
 
 fn main() {}
diff --git a/src/test/ui/issue-19707.stderr b/src/test/ui/issue-19707.stderr
index 73f6823fa80..b4d4f6f1bbf 100644
--- a/src/test/ui/issue-19707.stderr
+++ b/src/test/ui/issue-19707.stderr
@@ -7,9 +7,9 @@ error[E0106]: missing lifetime specifier
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from argument 1 or argument 2
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/issue-19707.rs:16:27
+  --> $DIR/issue-19707.rs:15:27
    |
-16 | fn bar<F: Fn(&u8, &u8) -> &u8>(f: &F) {} //~ ERROR missing lifetime specifier
+15 | fn bar<F: Fn(&u8, &u8) -> &u8>(f: &F) {} //~ ERROR missing lifetime specifier
    |                           ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from argument 1 or argument 2
diff --git a/src/test/ui/issue-19922.rs b/src/test/ui/issue-19922.rs
index 938ccb343d4..a8350fe0986 100644
--- a/src/test/ui/issue-19922.rs
+++ b/src/test/ui/issue-19922.rs
@@ -15,6 +15,4 @@ enum Homura {
 fn main() {
     let homura = Homura::Akemi { kaname: () };
     //~^ ERROR variant `Homura::Akemi` has no field named `kaname`
-    //~| NOTE `Homura::Akemi` does not have this field
-    //~| NOTE available fields are: `madoka`
 }
diff --git a/src/test/ui/issue-20692.rs b/src/test/ui/issue-20692.rs
index 3e440538755..0a4e7c8ee6b 100644
--- a/src/test/ui/issue-20692.rs
+++ b/src/test/ui/issue-20692.rs
@@ -13,14 +13,9 @@ trait Array: Sized {}
 fn f<T: Array>(x: &T) {
     let _ = x
     //~^ ERROR `Array` cannot be made into an object
-    //~| NOTE the trait cannot require that `Self : Sized`
-    //~| NOTE requirements on the impl of `std::ops::CoerceUnsized<&Array>`
-    //~| NOTE the trait `Array` cannot be made into an object
     as
     &Array;
     //~^ ERROR `Array` cannot be made into an object
-    //~| NOTE the trait cannot require that `Self : Sized`
-    //~| NOTE the trait `Array` cannot be made into an object
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-20692.stderr b/src/test/ui/issue-20692.stderr
index 08ce96ece6a..2a5ddd1b611 100644
--- a/src/test/ui/issue-20692.stderr
+++ b/src/test/ui/issue-20692.stderr
@@ -1,7 +1,7 @@
 error[E0038]: the trait `Array` cannot be made into an object
-  --> $DIR/issue-20692.rs:20:5
+  --> $DIR/issue-20692.rs:17:5
    |
-20 |     &Array;
+17 |     &Array;
    |     ^^^^^^ the trait `Array` cannot be made into an object
    |
    = note: the trait cannot require that `Self : Sized`
diff --git a/src/test/ui/issue-21546.rs b/src/test/ui/issue-21546.rs
index b7dbc7c7210..da1669bc913 100644
--- a/src/test/ui/issue-21546.rs
+++ b/src/test/ui/issue-21546.rs
@@ -12,66 +12,48 @@
 
 #[allow(non_snake_case)]
 mod Foo { }
-//~^ NOTE previous definition of the module `Foo` here
 
 #[allow(dead_code)]
 struct Foo;
 //~^ ERROR the name `Foo` is defined multiple times
-//~| NOTE `Foo` redefined here
-//~| NOTE `Foo` must be defined only once in the type namespace of this module
 
 #[allow(non_snake_case)]
 mod Bar { }
-//~^ NOTE previous definition of the module `Bar` here
 
 #[allow(dead_code)]
 struct Bar(i32);
 //~^ ERROR the name `Bar` is defined multiple times
-//~| NOTE `Bar` redefined here
-//~| NOTE `Bar` must be defined only once in the type namespace of this module
 
 
 #[allow(dead_code)]
 struct Baz(i32);
-//~^ NOTE previous definition of the type `Baz` here
 
 #[allow(non_snake_case)]
 mod Baz { }
 //~^ ERROR the name `Baz` is defined multiple times
-//~| NOTE `Baz` redefined here
-//~| NOTE `Baz` must be defined only once in the type namespace of this module
 
 
 #[allow(dead_code)]
 struct Qux { x: bool }
-//~^ NOTE previous definition of the type `Qux` here
 
 #[allow(non_snake_case)]
 mod Qux { }
 //~^ ERROR the name `Qux` is defined multiple times
-//~| NOTE `Qux` redefined here
-//~| NOTE `Qux` must be defined only once in the type namespace of this module
 
 
 #[allow(dead_code)]
 struct Quux;
-//~^ NOTE previous definition of the type `Quux` here
 
 #[allow(non_snake_case)]
 mod Quux { }
 //~^ ERROR the name `Quux` is defined multiple times
-//~| NOTE `Quux` redefined here
-//~| NOTE `Quux` must be defined only once in the type namespace of this module
 
 
 #[allow(dead_code)]
 enum Corge { A, B }
-//~^ NOTE previous definition of the type `Corge` here
 
 #[allow(non_snake_case)]
 mod Corge { }
 //~^ ERROR the name `Corge` is defined multiple times
-//~| NOTE `Corge` redefined here
-//~| NOTE `Corge` must be defined only once in the type namespace of this module
 
 fn main() { }
diff --git a/src/test/ui/issue-21546.stderr b/src/test/ui/issue-21546.stderr
index aea93ec1c8b..9ec8dcdd83a 100644
--- a/src/test/ui/issue-21546.stderr
+++ b/src/test/ui/issue-21546.stderr
@@ -1,65 +1,65 @@
 error[E0428]: the name `Foo` is defined multiple times
-  --> $DIR/issue-21546.rs:18:1
+  --> $DIR/issue-21546.rs:17:1
    |
 14 | mod Foo { }
    | ----------- previous definition of the module `Foo` here
 ...
-18 | struct Foo;
+17 | struct Foo;
    | ^^^^^^^^^^^ `Foo` redefined here
    |
    = note: `Foo` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Bar` is defined multiple times
-  --> $DIR/issue-21546.rs:28:1
+  --> $DIR/issue-21546.rs:24:1
    |
-24 | mod Bar { }
+21 | mod Bar { }
    | ----------- previous definition of the module `Bar` here
 ...
-28 | struct Bar(i32);
+24 | struct Bar(i32);
    | ^^^^^^^^^^^^^^^^ `Bar` redefined here
    |
    = note: `Bar` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Baz` is defined multiple times
-  --> $DIR/issue-21546.rs:39:1
+  --> $DIR/issue-21546.rs:32:1
    |
-35 | struct Baz(i32);
+29 | struct Baz(i32);
    | ---------------- previous definition of the type `Baz` here
 ...
-39 | mod Baz { }
+32 | mod Baz { }
    | ^^^^^^^^^^^ `Baz` redefined here
    |
    = note: `Baz` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Qux` is defined multiple times
-  --> $DIR/issue-21546.rs:50:1
+  --> $DIR/issue-21546.rs:40:1
    |
-46 | struct Qux { x: bool }
+37 | struct Qux { x: bool }
    | ---------------------- previous definition of the type `Qux` here
 ...
-50 | mod Qux { }
+40 | mod Qux { }
    | ^^^^^^^^^^^ `Qux` redefined here
    |
    = note: `Qux` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Quux` is defined multiple times
-  --> $DIR/issue-21546.rs:61:1
+  --> $DIR/issue-21546.rs:48:1
    |
-57 | struct Quux;
+45 | struct Quux;
    | ------------ previous definition of the type `Quux` here
 ...
-61 | mod Quux { }
+48 | mod Quux { }
    | ^^^^^^^^^^^^ `Quux` redefined here
    |
    = note: `Quux` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Corge` is defined multiple times
-  --> $DIR/issue-21546.rs:72:1
+  --> $DIR/issue-21546.rs:56:1
    |
-68 | enum Corge { A, B }
+53 | enum Corge { A, B }
    | ------------------- previous definition of the type `Corge` here
 ...
-72 | mod Corge { }
+56 | mod Corge { }
    | ^^^^^^^^^^^^^ `Corge` redefined here
    |
    = note: `Corge` must be defined only once in the type namespace of this module
diff --git a/src/test/ui/issue-21600.rs b/src/test/ui/issue-21600.rs
index 1d0473ec4b6..e4dfad2433c 100644
--- a/src/test/ui/issue-21600.rs
+++ b/src/test/ui/issue-21600.rs
@@ -19,10 +19,9 @@ impl A {
 
 fn main() {
     let mut x = A;
-    call_it(|| {    //~ HELP consider changing this to accept closures that implement `FnMut`
+    call_it(|| {
         call_it(|| x.gen());
         call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer
         //~^ ERROR cannot borrow data mutably in a captured outer
-        //~| HELP consider changing this closure to take self by mutable reference
     });
 }
diff --git a/src/test/ui/issue-21600.stderr b/src/test/ui/issue-21600.stderr
index 4cbc4448f78..e177e8ede62 100644
--- a/src/test/ui/issue-21600.stderr
+++ b/src/test/ui/issue-21600.stderr
@@ -7,13 +7,12 @@ error[E0387]: cannot borrow data mutably in a captured outer variable in an `Fn`
 help: consider changing this to accept closures that implement `FnMut`
   --> $DIR/issue-21600.rs:22:13
    |
-22 |       call_it(|| {    //~ HELP consider changing this to accept closures that implement `FnMut`
+22 |       call_it(|| {
    |  _____________^
 23 | |         call_it(|| x.gen());
 24 | |         call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer
 25 | |         //~^ ERROR cannot borrow data mutably in a captured outer
-26 | |         //~| HELP consider changing this closure to take self by mutable reference
-27 | |     });
+26 | |     });
    | |_____^
 
 error[E0387]: cannot borrow data mutably in a captured outer variable in an `Fn` closure
diff --git a/src/test/ui/issue-21950.rs b/src/test/ui/issue-21950.rs
index 935f3480db2..f9328a58d09 100644
--- a/src/test/ui/issue-21950.rs
+++ b/src/test/ui/issue-21950.rs
@@ -16,8 +16,5 @@ fn main() {
     let x = &10 as
             &Add;
             //~^ ERROR E0393
-            //~| NOTE missing reference to `RHS`
-            //~| NOTE because of the default `Self` reference, type parameters must be specified on object types
             //~| ERROR E0191
-            //~| NOTE missing associated type `Output` value
 }
diff --git a/src/test/ui/issue-22370.rs b/src/test/ui/issue-22370.rs
index 51f342e3f0a..4613c5977fd 100644
--- a/src/test/ui/issue-22370.rs
+++ b/src/test/ui/issue-22370.rs
@@ -14,7 +14,5 @@ trait A<T=Self> {}
 
 fn f(a: &A) {}
 //~^ ERROR E0393
-//~| NOTE missing reference to `T`
-//~| NOTE because of the default `Self` reference, type parameters must be specified on object types
 
 fn main() {}
diff --git a/src/test/ui/issue-22560.rs b/src/test/ui/issue-22560.rs
index 914a3bd79d4..b1c636f2ef6 100644
--- a/src/test/ui/issue-22560.rs
+++ b/src/test/ui/issue-22560.rs
@@ -14,15 +14,9 @@ use std::ops::{Add, Sub};
 
 type Test = Add +
             //~^ ERROR E0393
-            //~| NOTE missing reference to `RHS`
-            //~| NOTE because of the default `Self` reference, type parameters must be specified on object types
             //~| ERROR E0191
-            //~| NOTE missing associated type `Output` value
             Sub;
             //~^ ERROR E0393
-            //~| NOTE missing reference to `RHS`
-            //~| NOTE because of the default `Self` reference, type parameters must be specified on object types
             //~| ERROR E0225
-            //~| NOTE non-auto additional trait
 
 fn main() { }
diff --git a/src/test/ui/issue-22560.stderr b/src/test/ui/issue-22560.stderr
index 8eac545e40c..1c594cb6cb8 100644
--- a/src/test/ui/issue-22560.stderr
+++ b/src/test/ui/issue-22560.stderr
@@ -7,17 +7,17 @@ error[E0393]: the type parameter `RHS` must be explicitly specified
    = note: because of the default `Self` reference, type parameters must be specified on object types
 
 error[E0393]: the type parameter `RHS` must be explicitly specified
-  --> $DIR/issue-22560.rs:21:13
+  --> $DIR/issue-22560.rs:18:13
    |
-21 |             Sub;
+18 |             Sub;
    |             ^^^ missing reference to `RHS`
    |
    = note: because of the default `Self` reference, type parameters must be specified on object types
 
 error[E0225]: only auto traits can be used as additional traits in a trait object
-  --> $DIR/issue-22560.rs:21:13
+  --> $DIR/issue-22560.rs:18:13
    |
-21 |             Sub;
+18 |             Sub;
    |             ^^^ non-auto additional trait
 
 error[E0191]: the value of the associated type `Output` (from the trait `std::ops::Add`) must be specified
@@ -26,11 +26,8 @@ error[E0191]: the value of the associated type `Output` (from the trait `std::op
 15 |   type Test = Add +
    |  _____________^
 16 | |             //~^ ERROR E0393
-17 | |             //~| NOTE missing reference to `RHS`
-18 | |             //~| NOTE because of the default `Self` reference, type parameters must be specified on object types
-19 | |             //~| ERROR E0191
-20 | |             //~| NOTE missing associated type `Output` value
-21 | |             Sub;
+17 | |             //~| ERROR E0191
+18 | |             Sub;
    | |_______________^ missing associated type `Output` value
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/issue-22886.rs b/src/test/ui/issue-22886.rs
index d258a4a8b33..4aa2571cad0 100644
--- a/src/test/ui/issue-22886.rs
+++ b/src/test/ui/issue-22886.rs
@@ -21,7 +21,6 @@ fn crash_please() {
 struct Newtype(Option<Box<usize>>);
 
 impl<'a> Iterator for Newtype { //~ ERROR E0207
-                                //~| NOTE unconstrained lifetime parameter
     type Item = &'a Box<usize>;
 
     fn next(&mut self) -> Option<&Box<usize>> {
diff --git a/src/test/ui/issue-22933-2.rs b/src/test/ui/issue-22933-2.rs
index 583f2ace4ba..e887c7760d6 100644
--- a/src/test/ui/issue-22933-2.rs
+++ b/src/test/ui/issue-22933-2.rs
@@ -8,12 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-enum Delicious { //~ NOTE variant `PIE` not found here
+enum Delicious {
     Pie      = 0x1,
     Apple    = 0x2,
     ApplePie = Delicious::Apple as isize | Delicious::PIE as isize,
     //~^ ERROR no variant named `PIE` found for type `Delicious`
-    //~| NOTE variant not found in `Delicious`
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-22933-2.stderr b/src/test/ui/issue-22933-2.stderr
index 29e4c02d435..8853d43408c 100644
--- a/src/test/ui/issue-22933-2.stderr
+++ b/src/test/ui/issue-22933-2.stderr
@@ -1,7 +1,7 @@
 error[E0599]: no variant named `PIE` found for type `Delicious` in the current scope
   --> $DIR/issue-22933-2.rs:14:44
    |
-11 | enum Delicious { //~ NOTE variant `PIE` not found here
+11 | enum Delicious {
    | -------------- variant `PIE` not found here
 ...
 14 |     ApplePie = Delicious::Apple as isize | Delicious::PIE as isize,
diff --git a/src/test/ui/issue-23041.rs b/src/test/ui/issue-23041.rs
index 4dfad4ee3c3..1a9bb4c29f3 100644
--- a/src/test/ui/issue-23041.rs
+++ b/src/test/ui/issue-23041.rs
@@ -14,5 +14,4 @@ fn main()
     fn bar(x:i32) ->i32 { 3*x };
     let b:Box<Any> = Box::new(bar as fn(_)->_);
     b.downcast_ref::<fn(_)->_>(); //~ ERROR E0282
-                                  //~| NOTE cannot infer type for `_`
 }
diff --git a/src/test/ui/issue-23173.rs b/src/test/ui/issue-23173.rs
index c0983eb0e52..17e5317b9fe 100644
--- a/src/test/ui/issue-23173.rs
+++ b/src/test/ui/issue-23173.rs
@@ -9,11 +9,7 @@
 // except according to those terms.
 
 enum Token { LeftParen, RightParen, Plus, Minus, /* etc */ }
-//~^ NOTE variant `Homura` not found here
 struct Struct {
-    //~^ NOTE function or associated item `method` not found for this
-    //~| NOTE function or associated item `method` not found for this
-    //~| NOTE associated item `Assoc` not found for this
     a: usize,
 }
 
@@ -22,14 +18,10 @@ fn use_token(token: &Token) { unimplemented!() }
 fn main() {
     use_token(&Token::Homura);
     //~^ ERROR no variant named `Homura`
-    //~| NOTE variant not found in `Token`
     Struct::method();
     //~^ ERROR no function or associated item named `method` found for type
-    //~| NOTE function or associated item not found in `Struct`
     Struct::method;
     //~^ ERROR no function or associated item named `method` found for type
-    //~| NOTE function or associated item not found in `Struct`
     Struct::Assoc;
     //~^ ERROR no associated item named `Assoc` found for type `Struct` in
-    //~| NOTE associated item not found in `Struct`
 }
diff --git a/src/test/ui/issue-23173.stderr b/src/test/ui/issue-23173.stderr
index 2e1b9b45f93..38a22257ff8 100644
--- a/src/test/ui/issue-23173.stderr
+++ b/src/test/ui/issue-23173.stderr
@@ -1,37 +1,37 @@
 error[E0599]: no variant named `Homura` found for type `Token` in the current scope
-  --> $DIR/issue-23173.rs:23:16
+  --> $DIR/issue-23173.rs:19:16
    |
 11 | enum Token { LeftParen, RightParen, Plus, Minus, /* etc */ }
    | ---------- variant `Homura` not found here
 ...
-23 |     use_token(&Token::Homura);
+19 |     use_token(&Token::Homura);
    |                ^^^^^^^^^^^^^ variant not found in `Token`
 
 error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope
-  --> $DIR/issue-23173.rs:26:5
+  --> $DIR/issue-23173.rs:21:5
    |
-13 | struct Struct {
+12 | struct Struct {
    | ------------- function or associated item `method` not found for this
 ...
-26 |     Struct::method();
+21 |     Struct::method();
    |     ^^^^^^^^^^^^^^ function or associated item not found in `Struct`
 
 error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope
-  --> $DIR/issue-23173.rs:29:5
+  --> $DIR/issue-23173.rs:23:5
    |
-13 | struct Struct {
+12 | struct Struct {
    | ------------- function or associated item `method` not found for this
 ...
-29 |     Struct::method;
+23 |     Struct::method;
    |     ^^^^^^^^^^^^^^ function or associated item not found in `Struct`
 
 error[E0599]: no associated item named `Assoc` found for type `Struct` in the current scope
-  --> $DIR/issue-23173.rs:32:5
+  --> $DIR/issue-23173.rs:25:5
    |
-13 | struct Struct {
+12 | struct Struct {
    | ------------- associated item `Assoc` not found for this
 ...
-32 |     Struct::Assoc;
+25 |     Struct::Assoc;
    |     ^^^^^^^^^^^^^ associated item not found in `Struct`
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/issue-23217.rs b/src/test/ui/issue-23217.rs
index cce0b99c04d..dc51adf42aa 100644
--- a/src/test/ui/issue-23217.rs
+++ b/src/test/ui/issue-23217.rs
@@ -8,10 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-pub enum SomeEnum { //~ NOTE variant `A` not found here
+pub enum SomeEnum {
     B = SomeEnum::A,
     //~^ ERROR no variant named `A` found for type `SomeEnum`
-    //~| NOTE variant not found in `SomeEnum`
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-23217.stderr b/src/test/ui/issue-23217.stderr
index 7c46a131f72..eae6c2de9c5 100644
--- a/src/test/ui/issue-23217.stderr
+++ b/src/test/ui/issue-23217.stderr
@@ -1,7 +1,7 @@
 error[E0599]: no variant named `A` found for type `SomeEnum` in the current scope
   --> $DIR/issue-23217.rs:12:9
    |
-11 | pub enum SomeEnum { //~ NOTE variant `A` not found here
+11 | pub enum SomeEnum {
    | ----------------- variant `A` not found here
 12 |     B = SomeEnum::A,
    |         ^^^^^^^^^^^ variant not found in `SomeEnum`
diff --git a/src/test/ui/issue-23302.rs b/src/test/ui/issue-23302.rs
index 35f32d16a9a..2d93ab0c30c 100644
--- a/src/test/ui/issue-23302.rs
+++ b/src/test/ui/issue-23302.rs
@@ -12,21 +12,17 @@
 // the appropriate error (rather than, say, blowing the stack).
 enum X {
     A = X::A as isize, //~ ERROR E0265
-                       //~^ NOTE recursion not allowed in constant
 }
 
 // Since `Y::B` here defaults to `Y::A+1`, this is also a
 // recursive definition.
 enum Y {
     A = Y::B as isize, //~ ERROR E0265
-                       //~^ NOTE recursion not allowed in constant
     B,
 }
 
 const A: i32 = B; //~ ERROR E0265
-                  //~^ NOTE recursion not allowed in constant
 
 const B: i32 = A; //~ ERROR E0265
-                  //~^ NOTE recursion not allowed in constant
 
 fn main() { }
diff --git a/src/test/ui/issue-23302.stderr b/src/test/ui/issue-23302.stderr
index 32caa7611ef..4e93809fac3 100644
--- a/src/test/ui/issue-23302.stderr
+++ b/src/test/ui/issue-23302.stderr
@@ -5,21 +5,21 @@ error[E0265]: recursive constant
    |         ^^^^^^^^^^^^^ recursion not allowed in constant
 
 error[E0265]: recursive constant
-  --> $DIR/issue-23302.rs:21:9
+  --> $DIR/issue-23302.rs:20:9
    |
-21 |     A = Y::B as isize, //~ ERROR E0265
+20 |     A = Y::B as isize, //~ ERROR E0265
    |         ^^^^^^^^^^^^^ recursion not allowed in constant
 
 error[E0265]: recursive constant
-  --> $DIR/issue-23302.rs:26:1
+  --> $DIR/issue-23302.rs:24:1
    |
-26 | const A: i32 = B; //~ ERROR E0265
+24 | const A: i32 = B; //~ ERROR E0265
    | ^^^^^^^^^^^^^^^^^ recursion not allowed in constant
 
 error[E0265]: recursive constant
-  --> $DIR/issue-23302.rs:29:1
+  --> $DIR/issue-23302.rs:26:1
    |
-29 | const B: i32 = A; //~ ERROR E0265
+26 | const B: i32 = A; //~ ERROR E0265
    | ^^^^^^^^^^^^^^^^^ recursion not allowed in constant
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/issue-23543.rs b/src/test/ui/issue-23543.rs
index e1acc8eb475..4ed44154c47 100644
--- a/src/test/ui/issue-23543.rs
+++ b/src/test/ui/issue-23543.rs
@@ -16,7 +16,6 @@ pub trait D {
     fn f<T>(self)
         where T<Bogus = Foo>: A;
         //~^ ERROR associated type bindings are not allowed here [E0229]
-        //~| NOTE associated type not allowed here
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-23544.rs b/src/test/ui/issue-23544.rs
index 3cd6f9ebc71..1d7c2187045 100644
--- a/src/test/ui/issue-23544.rs
+++ b/src/test/ui/issue-23544.rs
@@ -14,7 +14,6 @@ pub trait D {
     fn f<T>(self)
         where T<Bogus = Self::AlsoBogus>: A;
         //~^ ERROR associated type bindings are not allowed here [E0229]
-        //~| NOTE associated type not allowed here
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-23716.rs b/src/test/ui/issue-23716.rs
index 5cf80dd172a..7b72e5689ba 100644
--- a/src/test/ui/issue-23716.rs
+++ b/src/test/ui/issue-23716.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 static foo: i32 = 0;
-//~^ NOTE a static `foo` is defined here
 
 fn bar(foo: i32) {}
 //~^ ERROR function parameters cannot shadow statics
@@ -20,7 +19,6 @@ mod submod {
 }
 
 use self::submod::answer;
-//~^ NOTE a static `answer` is imported here
 
 fn question(answer: i32) {}
 //~^ ERROR function parameters cannot shadow statics
diff --git a/src/test/ui/issue-23716.stderr b/src/test/ui/issue-23716.stderr
index cedff331824..2db67c7ec00 100644
--- a/src/test/ui/issue-23716.stderr
+++ b/src/test/ui/issue-23716.stderr
@@ -1,19 +1,19 @@
 error[E0530]: function parameters cannot shadow statics
-  --> $DIR/issue-23716.rs:14:8
+  --> $DIR/issue-23716.rs:13:8
    |
 11 | static foo: i32 = 0;
    | -------------------- a static `foo` is defined here
-...
-14 | fn bar(foo: i32) {}
+12 | 
+13 | fn bar(foo: i32) {}
    |        ^^^ cannot be named the same as a static
 
 error[E0530]: function parameters cannot shadow statics
-  --> $DIR/issue-23716.rs:25:13
+  --> $DIR/issue-23716.rs:23:13
    |
-22 | use self::submod::answer;
+21 | use self::submod::answer;
    |     -------------------- a static `answer` is imported here
-...
-25 | fn question(answer: i32) {}
+22 | 
+23 | fn question(answer: i32) {}
    |             ^^^^^^ cannot be named the same as a static
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-24036.rs b/src/test/ui/issue-24036.rs
index ac7e0f2e9a8..94ac17de4c0 100644
--- a/src/test/ui/issue-24036.rs
+++ b/src/test/ui/issue-24036.rs
@@ -12,26 +12,15 @@ fn closure_to_loc() {
     let mut x = |c| c + 1;
     x = |c| c + 1;
     //~^ ERROR mismatched types
-    //~| NOTE no two closures, even if identical, have the same type
-    //~| HELP consider boxing your closure and/or using it as a trait object
-    //~| expected closure, found a different closure
-    //~| expected type `[closure
-    //~| found type `[closure
 }
 
 fn closure_from_match() {
     let x = match 1usize {
+    //~^ ERROR match arms have incompatible types
         1 => |c| c + 1,
         2 => |c| c - 1,
-        //~^ NOTE match arm with an incompatible type
         _ => |c| c - 1
     };
-    //~^^^^^^ ERROR match arms have incompatible types
-    //~| NOTE no two closures, even if identical, have the same type
-    //~| HELP consider boxing your closure and/or using it as a trait object
-    //~| expected closure, found a different closure
-    //~| expected type `[closure
-    //~| found type `[closure
 }
 
 fn main() { }
diff --git a/src/test/ui/issue-24036.stderr b/src/test/ui/issue-24036.stderr
index 8486c14417c..1a70e90c0cc 100644
--- a/src/test/ui/issue-24036.stderr
+++ b/src/test/ui/issue-24036.stderr
@@ -18,45 +18,45 @@ help: consider boxing your closure and/or using it as a trait object
    |         ^^^^^^^^^
 
 error[E0308]: match arms have incompatible types
-  --> $DIR/issue-24036.rs:23:13
+  --> $DIR/issue-24036.rs:18:13
    |
-23 |       let x = match 1usize {
+18 |       let x = match 1usize {
    |  _____________^
-24 | |         1 => |c| c + 1,
-25 | |         2 => |c| c - 1,
-26 | |         //~^ NOTE match arm with an incompatible type
-27 | |         _ => |c| c - 1
-28 | |     };
+19 | |     //~^ ERROR match arms have incompatible types
+20 | |         1 => |c| c + 1,
+21 | |         2 => |c| c - 1,
+22 | |         _ => |c| c - 1
+23 | |     };
    | |_____^ expected closure, found a different closure
    |
-   = note: expected type `[closure@$DIR/issue-24036.rs:24:14: 24:23]`
-              found type `[closure@$DIR/issue-24036.rs:25:14: 25:23]`
+   = note: expected type `[closure@$DIR/issue-24036.rs:20:14: 20:23]`
+              found type `[closure@$DIR/issue-24036.rs:21:14: 21:23]`
 note: no two closures, even if identical, have the same type
-  --> $DIR/issue-24036.rs:23:13
+  --> $DIR/issue-24036.rs:18:13
    |
-23 |       let x = match 1usize {
+18 |       let x = match 1usize {
    |  _____________^
-24 | |         1 => |c| c + 1,
-25 | |         2 => |c| c - 1,
-26 | |         //~^ NOTE match arm with an incompatible type
-27 | |         _ => |c| c - 1
-28 | |     };
+19 | |     //~^ ERROR match arms have incompatible types
+20 | |         1 => |c| c + 1,
+21 | |         2 => |c| c - 1,
+22 | |         _ => |c| c - 1
+23 | |     };
    | |_____^
 help: consider boxing your closure and/or using it as a trait object
-  --> $DIR/issue-24036.rs:23:13
+  --> $DIR/issue-24036.rs:18:13
    |
-23 |       let x = match 1usize {
+18 |       let x = match 1usize {
    |  _____________^
-24 | |         1 => |c| c + 1,
-25 | |         2 => |c| c - 1,
-26 | |         //~^ NOTE match arm with an incompatible type
-27 | |         _ => |c| c - 1
-28 | |     };
+19 | |     //~^ ERROR match arms have incompatible types
+20 | |         1 => |c| c + 1,
+21 | |         2 => |c| c - 1,
+22 | |         _ => |c| c - 1
+23 | |     };
    | |_____^
 note: match arm with an incompatible type
-  --> $DIR/issue-24036.rs:25:14
+  --> $DIR/issue-24036.rs:21:14
    |
-25 |         2 => |c| c - 1,
+21 |         2 => |c| c - 1,
    |              ^^^^^^^^^
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-24081.rs b/src/test/ui/issue-24081.rs
index dc8fc01bbfc..16530c509f2 100644
--- a/src/test/ui/issue-24081.rs
+++ b/src/test/ui/issue-24081.rs
@@ -8,26 +8,21 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use std::ops::Add; //~ NOTE previous import of the trait `Add` here
-use std::ops::Sub; //~ NOTE previous import of the trait `Sub` here
-use std::ops::Mul; //~ NOTE previous import of the trait `Mul` here
-use std::ops::Div; //~ NOTE previous import of the trait `Div` here
-use std::ops::Rem; //~ NOTE previous import of the trait `Rem` here
+use std::ops::Add;
+use std::ops::Sub;
+use std::ops::Mul;
+use std::ops::Div;
+use std::ops::Rem;
 
 type Add = bool; //~ ERROR the name `Add` is defined multiple times
 //~| `Add` redefined here
-//~| NOTE `Add` must be defined only once in the type namespace of this module
 struct Sub { x: f32 } //~ ERROR the name `Sub` is defined multiple times
 //~| `Sub` redefined here
-//~| NOTE `Sub` must be defined only once in the type namespace of this module
 enum Mul { A, B } //~ ERROR the name `Mul` is defined multiple times
 //~| `Mul` redefined here
-//~| NOTE `Mul` must be defined only once in the type namespace of this module
 mod Div { } //~ ERROR the name `Div` is defined multiple times
 //~| `Div` redefined here
-//~| NOTE `Div` must be defined only once in the type namespace of this module
 trait Rem {  } //~ ERROR the name `Rem` is defined multiple times
 //~| `Rem` redefined here
-//~| NOTE `Rem` must be defined only once in the type namespace of this module
 
 fn main() {}
diff --git a/src/test/ui/issue-24081.stderr b/src/test/ui/issue-24081.stderr
index 599f23b8462..37a2fba3852 100644
--- a/src/test/ui/issue-24081.stderr
+++ b/src/test/ui/issue-24081.stderr
@@ -1,7 +1,7 @@
 error[E0255]: the name `Add` is defined multiple times
   --> $DIR/issue-24081.rs:17:1
    |
-11 | use std::ops::Add; //~ NOTE previous import of the trait `Add` here
+11 | use std::ops::Add;
    |     ------------- previous import of the trait `Add` here
 ...
 17 | type Add = bool; //~ ERROR the name `Add` is defined multiple times
@@ -10,67 +10,67 @@ error[E0255]: the name `Add` is defined multiple times
    = note: `Add` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-11 | use std::ops::Add as OtherAdd; //~ NOTE previous import of the trait `Add` here
+11 | use std::ops::Add as OtherAdd;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `Sub` is defined multiple times
-  --> $DIR/issue-24081.rs:20:1
+  --> $DIR/issue-24081.rs:19:1
    |
-12 | use std::ops::Sub; //~ NOTE previous import of the trait `Sub` here
+12 | use std::ops::Sub;
    |     ------------- previous import of the trait `Sub` here
 ...
-20 | struct Sub { x: f32 } //~ ERROR the name `Sub` is defined multiple times
+19 | struct Sub { x: f32 } //~ ERROR the name `Sub` is defined multiple times
    | ^^^^^^^^^^^^^^^^^^^^^ `Sub` redefined here
    |
    = note: `Sub` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-12 | use std::ops::Sub as OtherSub; //~ NOTE previous import of the trait `Sub` here
+12 | use std::ops::Sub as OtherSub;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `Mul` is defined multiple times
-  --> $DIR/issue-24081.rs:23:1
+  --> $DIR/issue-24081.rs:21:1
    |
-13 | use std::ops::Mul; //~ NOTE previous import of the trait `Mul` here
+13 | use std::ops::Mul;
    |     ------------- previous import of the trait `Mul` here
 ...
-23 | enum Mul { A, B } //~ ERROR the name `Mul` is defined multiple times
+21 | enum Mul { A, B } //~ ERROR the name `Mul` is defined multiple times
    | ^^^^^^^^^^^^^^^^^ `Mul` redefined here
    |
    = note: `Mul` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-13 | use std::ops::Mul as OtherMul; //~ NOTE previous import of the trait `Mul` here
+13 | use std::ops::Mul as OtherMul;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `Div` is defined multiple times
-  --> $DIR/issue-24081.rs:26:1
+  --> $DIR/issue-24081.rs:23:1
    |
-14 | use std::ops::Div; //~ NOTE previous import of the trait `Div` here
+14 | use std::ops::Div;
    |     ------------- previous import of the trait `Div` here
 ...
-26 | mod Div { } //~ ERROR the name `Div` is defined multiple times
+23 | mod Div { } //~ ERROR the name `Div` is defined multiple times
    | ^^^^^^^^^^^ `Div` redefined here
    |
    = note: `Div` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-14 | use std::ops::Div as OtherDiv; //~ NOTE previous import of the trait `Div` here
+14 | use std::ops::Div as OtherDiv;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0255]: the name `Rem` is defined multiple times
-  --> $DIR/issue-24081.rs:29:1
+  --> $DIR/issue-24081.rs:25:1
    |
-15 | use std::ops::Rem; //~ NOTE previous import of the trait `Rem` here
+15 | use std::ops::Rem;
    |     ------------- previous import of the trait `Rem` here
 ...
-29 | trait Rem {  } //~ ERROR the name `Rem` is defined multiple times
+25 | trait Rem {  } //~ ERROR the name `Rem` is defined multiple times
    | ^^^^^^^^^^^^^^ `Rem` redefined here
    |
    = note: `Rem` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-15 | use std::ops::Rem as OtherRem; //~ NOTE previous import of the trait `Rem` here
+15 | use std::ops::Rem as OtherRem;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: aborting due to 5 previous errors
diff --git a/src/test/ui/issue-24424.rs b/src/test/ui/issue-24424.rs
index 8d4ea66f081..8e9f675b575 100644
--- a/src/test/ui/issue-24424.rs
+++ b/src/test/ui/issue-24424.rs
@@ -13,6 +13,5 @@ trait Trait0<'l0>  {}
 
 impl <'l0, 'l1, T0> Trait1<'l0, T0> for bool where T0 : Trait0<'l0>, T0 : Trait0<'l1> {}
 //~^ ERROR type annotations required: cannot resolve `T0: Trait0<'l0>`
-//~^^ NOTE required by `Trait0`
 
 fn main() {}
diff --git a/src/test/ui/issue-25385.rs b/src/test/ui/issue-25385.rs
index 4aacb6840e9..aa941bc5691 100644
--- a/src/test/ui/issue-25385.rs
+++ b/src/test/ui/issue-25385.rs
@@ -17,7 +17,6 @@ macro_rules! foo {
 fn main() {
     let a = 1i32;
     foo!(a);
-    //~^ NOTE in this expansion of foo!
 
     foo!(1i32.foo());
     //~^ ERROR no method named `foo` found for type `i32` in the current scope
diff --git a/src/test/ui/issue-25385.stderr b/src/test/ui/issue-25385.stderr
index 2e000115ae8..467cfc53388 100644
--- a/src/test/ui/issue-25385.stderr
+++ b/src/test/ui/issue-25385.stderr
@@ -8,9 +8,9 @@ error[E0599]: no method named `foo` found for type `i32` in the current scope
    |     -------- in this macro invocation
 
 error[E0599]: no method named `foo` found for type `i32` in the current scope
-  --> $DIR/issue-25385.rs:22:15
+  --> $DIR/issue-25385.rs:21:15
    |
-22 |     foo!(1i32.foo());
+21 |     foo!(1i32.foo());
    |               ^^^
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-25793.rs b/src/test/ui/issue-25793.rs
index ceefd583a5c..4f3d29216e4 100644
--- a/src/test/ui/issue-25793.rs
+++ b/src/test/ui/issue-25793.rs
@@ -12,7 +12,6 @@ macro_rules! width(
     ($this:expr) => {
         $this.width.unwrap()
         //~^ ERROR cannot use `self.width` because it was mutably borrowed
-        //~| NOTE use of borrowed `*self`
     }
 );
 
@@ -27,8 +26,6 @@ impl HasInfo {
 
     fn get_other(&mut self) -> usize {
         self.get_size(width!(self))
-        //~^ NOTE in this expansion of width!
-        //~| NOTE borrow of `*self` occurs here
     }
 }
 
diff --git a/src/test/ui/issue-25793.stderr b/src/test/ui/issue-25793.stderr
index 2a8368c47a9..914cc6fc426 100644
--- a/src/test/ui/issue-25793.stderr
+++ b/src/test/ui/issue-25793.stderr
@@ -4,7 +4,7 @@ error[E0503]: cannot use `self.width` because it was mutably borrowed
 13 |         $this.width.unwrap()
    |         ^^^^^^^^^^^ use of borrowed `*self`
 ...
-29 |         self.get_size(width!(self))
+28 |         self.get_size(width!(self))
    |         ----          ------------ in this macro invocation
    |         |
    |         borrow of `*self` occurs here
diff --git a/src/test/ui/issue-25826.rs b/src/test/ui/issue-25826.rs
index 468282fa7cc..00e1279d58a 100644
--- a/src/test/ui/issue-25826.rs
+++ b/src/test/ui/issue-25826.rs
@@ -12,6 +12,5 @@ fn id<T>(t: T) -> T { t }
 fn main() {
     const A: bool = id::<u8> as *const () < id::<u16> as *const ();
     //~^ ERROR raw pointers cannot be compared in constants [E0395]
-    //~^^ NOTE comparing raw pointers in static
     println!("{}", A);
 }
diff --git a/src/test/ui/issue-26056.rs b/src/test/ui/issue-26056.rs
index ded685152d4..2dad2351440 100644
--- a/src/test/ui/issue-26056.rs
+++ b/src/test/ui/issue-26056.rs
@@ -29,6 +29,4 @@ fn main() {
     let _ = &()
         as &Map<Key=u32,MapValue=u32>;
     //~^ ERROR E0038
-    //~| NOTE the trait cannot use `Self` as a type parameter
-    //~| NOTE the trait `Map` cannot be made into an object
 }
diff --git a/src/test/ui/issue-26093.rs b/src/test/ui/issue-26093.rs
index 39a53648ccf..3489a2ca9be 100644
--- a/src/test/ui/issue-26093.rs
+++ b/src/test/ui/issue-26093.rs
@@ -12,11 +12,9 @@ macro_rules! not_an_lvalue {
     ($thing:expr) => {
         $thing = 42;
         //~^ ERROR invalid left-hand side expression
-        //~^^ NOTE left-hand of expression not valid
     }
 }
 
 fn main() {
     not_an_lvalue!(99);
-    //~^ NOTE in this expansion of not_an_lvalue!
 }
diff --git a/src/test/ui/issue-26093.stderr b/src/test/ui/issue-26093.stderr
index 1af248d1631..c2b81b2ce43 100644
--- a/src/test/ui/issue-26093.stderr
+++ b/src/test/ui/issue-26093.stderr
@@ -4,7 +4,7 @@ error[E0070]: invalid left-hand side expression
 13 |         $thing = 42;
    |         ^^^^^^^^^^^ left-hand of expression not valid
 ...
-20 |     not_an_lvalue!(99);
+19 |     not_an_lvalue!(99);
    |     ------------------- in this macro invocation
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-26472.rs b/src/test/ui/issue-26472.rs
index 0d59a897ef1..9b25eb72f3d 100644
--- a/src/test/ui/issue-26472.rs
+++ b/src/test/ui/issue-26472.rs
@@ -20,5 +20,4 @@ fn main() {
     let s = sub::S::new();
     let v = s.len;
     //~^ ERROR field `len` of struct `sub::S` is private
-    //~| NOTE a method `len` also exists, perhaps you wish to call it
 }
diff --git a/src/test/ui/issue-26638.rs b/src/test/ui/issue-26638.rs
index 9b8c7b25076..85a10588975 100644
--- a/src/test/ui/issue-26638.rs
+++ b/src/test/ui/issue-26638.rs
@@ -10,16 +10,11 @@
 
 fn parse_type(iter: Box<Iterator<Item=&str>+'static>) -> &str { iter.next() }
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP 2 lifetimes
 
 fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP lifetime cannot be derived
-//~^^^ HELP consider giving it an explicit bounded or 'static lifetime
 
 fn parse_type_3() -> &str { unimplemented!() }
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP no value for it to be borrowed from
-//~^^^ HELP consider giving it a 'static lifetime
 
 fn main() {}
diff --git a/src/test/ui/issue-26638.stderr b/src/test/ui/issue-26638.stderr
index 733c46adbf9..3b124ff4063 100644
--- a/src/test/ui/issue-26638.stderr
+++ b/src/test/ui/issue-26638.stderr
@@ -7,18 +7,18 @@ error[E0106]: missing lifetime specifier
    = help: this function's return type contains a borrowed value, but the signature does not say which one of `iter`'s 2 lifetimes it is borrowed from
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/issue-26638.rs:15:40
+  --> $DIR/issue-26638.rs:14:40
    |
-15 | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
+14 | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
    |                                        ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments
    = help: consider giving it an explicit bounded or 'static lifetime
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/issue-26638.rs:20:22
+  --> $DIR/issue-26638.rs:17:22
    |
-20 | fn parse_type_3() -> &str { unimplemented!() }
+17 | fn parse_type_3() -> &str { unimplemented!() }
    |                      ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
diff --git a/src/test/ui/issue-26886.rs b/src/test/ui/issue-26886.rs
index 9b195060196..24ef7cb74c8 100644
--- a/src/test/ui/issue-26886.rs
+++ b/src/test/ui/issue-26886.rs
@@ -8,13 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use std::sync::{self, Arc}; //~ NOTE previous import of the type `Arc` here
-                            //~^ NOTE previous import of the module `sync` here
+use std::sync::{self, Arc};
 use std::sync::Arc; //~ ERROR the name `Arc` is defined multiple times
-                    //~| NOTE `Arc` reimported here
                     //~| `Arc` must be defined only once in the type namespace of this module
 use std::sync; //~ ERROR the name `sync` is defined multiple times
-               //~| NOTE `sync` reimported here
                //~| `sync` must be defined only once in the type namespace of this module
 
 fn main() {
diff --git a/src/test/ui/issue-26886.stderr b/src/test/ui/issue-26886.stderr
index 1cdf5174a96..cb2eca87068 100644
--- a/src/test/ui/issue-26886.stderr
+++ b/src/test/ui/issue-26886.stderr
@@ -1,31 +1,30 @@
 error[E0252]: the name `Arc` is defined multiple times
-  --> $DIR/issue-26886.rs:13:5
+  --> $DIR/issue-26886.rs:12:5
    |
-11 | use std::sync::{self, Arc}; //~ NOTE previous import of the type `Arc` here
+11 | use std::sync::{self, Arc};
    |                       --- previous import of the type `Arc` here
-12 |                             //~^ NOTE previous import of the module `sync` here
-13 | use std::sync::Arc; //~ ERROR the name `Arc` is defined multiple times
+12 | use std::sync::Arc; //~ ERROR the name `Arc` is defined multiple times
    |     ^^^^^^^^^^^^^^ `Arc` reimported here
    |
    = note: `Arc` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-13 | use std::sync::Arc as OtherArc; //~ ERROR the name `Arc` is defined multiple times
+12 | use std::sync::Arc as OtherArc; //~ ERROR the name `Arc` is defined multiple times
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0252]: the name `sync` is defined multiple times
-  --> $DIR/issue-26886.rs:16:5
+  --> $DIR/issue-26886.rs:14:5
    |
-11 | use std::sync::{self, Arc}; //~ NOTE previous import of the type `Arc` here
+11 | use std::sync::{self, Arc};
    |                 ---- previous import of the module `sync` here
 ...
-16 | use std::sync; //~ ERROR the name `sync` is defined multiple times
+14 | use std::sync; //~ ERROR the name `sync` is defined multiple times
    |     ^^^^^^^^^ `sync` reimported here
    |
    = note: `sync` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-16 | use std::sync as Othersync; //~ ERROR the name `sync` is defined multiple times
+14 | use std::sync as Othersync; //~ ERROR the name `sync` is defined multiple times
    |     ^^^^^^^^^^^^^^^^^^^^^^
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-27842.rs b/src/test/ui/issue-27842.rs
index b4cfa607292..d9dc3458a4a 100644
--- a/src/test/ui/issue-27842.rs
+++ b/src/test/ui/issue-27842.rs
@@ -13,11 +13,9 @@ fn main() {
     // the case where we show a suggestion
     let _ = tup[0];
     //~^ ERROR cannot index into a value of type
-    //~| HELP to access tuple elements, use
 
     // the case where we show just a general hint
     let i = 0_usize;
     let _ = tup[i];
     //~^ ERROR cannot index into a value of type
-    //~| HELP to access tuple elements, use tuple indexing syntax (e.g. `tuple.0`)
 }
diff --git a/src/test/ui/issue-27842.stderr b/src/test/ui/issue-27842.stderr
index 30bc3a85a11..2e3b20e43ff 100644
--- a/src/test/ui/issue-27842.stderr
+++ b/src/test/ui/issue-27842.stderr
@@ -5,9 +5,9 @@ error[E0608]: cannot index into a value of type `({integer}, {integer}, {integer
    |             ^^^^^^ help: to access tuple elements, use: `tup.0`
 
 error[E0608]: cannot index into a value of type `({integer}, {integer}, {integer})`
-  --> $DIR/issue-27842.rs:20:13
+  --> $DIR/issue-27842.rs:19:13
    |
-20 |     let _ = tup[i];
+19 |     let _ = tup[i];
    |             ^^^^^^
    |
    = help: to access tuple elements, use tuple indexing syntax (e.g. `tuple.0`)
diff --git a/src/test/ui/issue-27942.rs b/src/test/ui/issue-27942.rs
index 0fa4184606e..2234aede00d 100644
--- a/src/test/ui/issue-27942.rs
+++ b/src/test/ui/issue-27942.rs
@@ -11,18 +11,12 @@
 pub trait Resources<'a> {}
 
 pub trait Buffer<'a, R: Resources<'a>> {
-    //~^ NOTE the lifetime 'a as defined on the trait at 13:1...
-    //~| NOTE ...does not necessarily outlive the lifetime 'a as defined on the trait
 
     fn select(&self) -> BufferViewHandle<R>;
     //~^ ERROR mismatched types
     //~| lifetime mismatch
-    //~| NOTE expected type `Resources<'_>`
-    //~| NOTE ...does not necessarily outlive the anonymous lifetime #1 defined on the method body
     //~| ERROR mismatched types
     //~| lifetime mismatch
-    //~| NOTE expected type `Resources<'_>`
-    //~| NOTE the anonymous lifetime #1 defined on the method body at 17:5...
 }
 
 pub struct BufferViewHandle<'a, R: 'a+Resources<'a>>(&'a R);
diff --git a/src/test/ui/issue-27942.stderr b/src/test/ui/issue-27942.stderr
index 528377adcb7..b580b8e7313 100644
--- a/src/test/ui/issue-27942.stderr
+++ b/src/test/ui/issue-27942.stderr
@@ -1,32 +1,32 @@
 error[E0308]: mismatched types
-  --> $DIR/issue-27942.rs:17:5
+  --> $DIR/issue-27942.rs:15:5
    |
-17 |     fn select(&self) -> BufferViewHandle<R>;
+15 |     fn select(&self) -> BufferViewHandle<R>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
    |
    = note: expected type `Resources<'_>`
               found type `Resources<'a>`
-note: the anonymous lifetime #1 defined on the method body at 17:5...
-  --> $DIR/issue-27942.rs:17:5
+note: the anonymous lifetime #1 defined on the method body at 15:5...
+  --> $DIR/issue-27942.rs:15:5
    |
-17 |     fn select(&self) -> BufferViewHandle<R>;
+15 |     fn select(&self) -> BufferViewHandle<R>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 note: ...does not necessarily outlive the lifetime 'a as defined on the trait at 13:1
   --> $DIR/issue-27942.rs:13:1
    |
 13 | / pub trait Buffer<'a, R: Resources<'a>> {
-14 | |     //~^ NOTE the lifetime 'a as defined on the trait at 13:1...
-15 | |     //~| NOTE ...does not necessarily outlive the lifetime 'a as defined on the trait
-16 | |
+14 | |
+15 | |     fn select(&self) -> BufferViewHandle<R>;
+16 | |     //~^ ERROR mismatched types
 ...  |
-25 | |     //~| NOTE the anonymous lifetime #1 defined on the method body at 17:5...
-26 | | }
+19 | |     //~| lifetime mismatch
+20 | | }
    | |_^
 
 error[E0308]: mismatched types
-  --> $DIR/issue-27942.rs:17:5
+  --> $DIR/issue-27942.rs:15:5
    |
-17 |     fn select(&self) -> BufferViewHandle<R>;
+15 |     fn select(&self) -> BufferViewHandle<R>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
    |
    = note: expected type `Resources<'_>`
@@ -35,17 +35,17 @@ note: the lifetime 'a as defined on the trait at 13:1...
   --> $DIR/issue-27942.rs:13:1
    |
 13 | / pub trait Buffer<'a, R: Resources<'a>> {
-14 | |     //~^ NOTE the lifetime 'a as defined on the trait at 13:1...
-15 | |     //~| NOTE ...does not necessarily outlive the lifetime 'a as defined on the trait
-16 | |
+14 | |
+15 | |     fn select(&self) -> BufferViewHandle<R>;
+16 | |     //~^ ERROR mismatched types
 ...  |
-25 | |     //~| NOTE the anonymous lifetime #1 defined on the method body at 17:5...
-26 | | }
+19 | |     //~| lifetime mismatch
+20 | | }
    | |_^
-note: ...does not necessarily outlive the anonymous lifetime #1 defined on the method body at 17:5
-  --> $DIR/issue-27942.rs:17:5
+note: ...does not necessarily outlive the anonymous lifetime #1 defined on the method body at 15:5
+  --> $DIR/issue-27942.rs:15:5
    |
-17 |     fn select(&self) -> BufferViewHandle<R>;
+15 |     fn select(&self) -> BufferViewHandle<R>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/issue-2848.rs b/src/test/ui/issue-2848.rs
index 38bd7adefd9..f3fc94434d3 100644
--- a/src/test/ui/issue-2848.rs
+++ b/src/test/ui/issue-2848.rs
@@ -20,7 +20,6 @@ fn main() {
     use bar::foo::{alpha, charlie};
     match alpha {
       alpha | beta => {} //~  ERROR variable `beta` is not bound in all patterns
-      charlie => {}      //~| NOTE pattern doesn't bind `beta`
-                         //~| NOTE variable not in all patterns
+      charlie => {}
     }
 }
diff --git a/src/test/ui/issue-28568.rs b/src/test/ui/issue-28568.rs
index f03daafc637..e8c34198852 100644
--- a/src/test/ui/issue-28568.rs
+++ b/src/test/ui/issue-28568.rs
@@ -11,13 +11,11 @@
 struct MyStruct;
 
 impl Drop for MyStruct {
-//~^ NOTE first implementation here
     fn drop(&mut self) { }
 }
 
 impl Drop for MyStruct {
 //~^ ERROR conflicting implementations of trait
-//~| NOTE conflicting implementation for `MyStruct`
     fn drop(&mut self) { }
 }
 
diff --git a/src/test/ui/issue-28568.stderr b/src/test/ui/issue-28568.stderr
index 19e15502487..2b4025ac122 100644
--- a/src/test/ui/issue-28568.stderr
+++ b/src/test/ui/issue-28568.stderr
@@ -1,17 +1,15 @@
 error[E0119]: conflicting implementations of trait `std::ops::Drop` for type `MyStruct`:
-  --> $DIR/issue-28568.rs:18:1
+  --> $DIR/issue-28568.rs:17:1
    |
 13 | / impl Drop for MyStruct {
-14 | | //~^ NOTE first implementation here
-15 | |     fn drop(&mut self) { }
-16 | | }
+14 | |     fn drop(&mut self) { }
+15 | | }
    | |_- first implementation here
-17 | 
-18 | / impl Drop for MyStruct {
-19 | | //~^ ERROR conflicting implementations of trait
-20 | | //~| NOTE conflicting implementation for `MyStruct`
-21 | |     fn drop(&mut self) { }
-22 | | }
+16 | 
+17 | / impl Drop for MyStruct {
+18 | | //~^ ERROR conflicting implementations of trait
+19 | |     fn drop(&mut self) { }
+20 | | }
    | |_^ conflicting implementation for `MyStruct`
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-28776.rs b/src/test/ui/issue-28776.rs
index 4a36bc88fa7..196c4bd2728 100644
--- a/src/test/ui/issue-28776.rs
+++ b/src/test/ui/issue-28776.rs
@@ -13,5 +13,4 @@ use std::ptr;
 fn main() {
     (&ptr::write)(1 as *mut _, 42);
     //~^ ERROR E0133
-    //~| NOTE call to unsafe function
 }
diff --git a/src/test/ui/issue-28837.rs b/src/test/ui/issue-28837.rs
index c7cf63bf2c4..91ea18a8c6c 100644
--- a/src/test/ui/issue-28837.rs
+++ b/src/test/ui/issue-28837.rs
@@ -14,47 +14,32 @@ fn main() {
     let a = A;
 
     a + a; //~ ERROR binary operation `+` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Add` might be missing for `A`
 
     a - a; //~ ERROR binary operation `-` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Sub` might be missing for `A`
 
     a * a; //~ ERROR binary operation `*` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Mul` might be missing for `A`
 
     a / a; //~ ERROR binary operation `/` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Div` might be missing for `A`
 
     a % a; //~ ERROR binary operation `%` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Rem` might be missing for `A`
 
     a & a; //~ ERROR binary operation `&` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::BitAnd` might be missing for `A`
 
     a | a; //~ ERROR binary operation `|` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::BitOr` might be missing for `A`
 
     a << a; //~ ERROR binary operation `<<` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Shl` might be missing for `A`
 
     a >> a; //~ ERROR binary operation `>>` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::ops::Shr` might be missing for `A`
 
     a == a; //~ ERROR binary operation `==` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialEq` might be missing for `A`
 
     a != a; //~ ERROR binary operation `!=` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialEq` might be missing for `A`
 
     a < a; //~ ERROR binary operation `<` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
     a <= a; //~ ERROR binary operation `<=` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
     a > a; //~ ERROR binary operation `>` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
     a >= a; //~ ERROR binary operation `>=` cannot be applied to type `A`
-    //~^ NOTE an implementation of `std::cmp::PartialOrd` might be missing for `A`
 }
diff --git a/src/test/ui/issue-28837.stderr b/src/test/ui/issue-28837.stderr
index 71f9d57a065..8d9afb5be79 100644
--- a/src/test/ui/issue-28837.stderr
+++ b/src/test/ui/issue-28837.stderr
@@ -7,113 +7,113 @@ error[E0369]: binary operation `+` cannot be applied to type `A`
    = note: an implementation of `std::ops::Add` might be missing for `A`
 
 error[E0369]: binary operation `-` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:19:5
+  --> $DIR/issue-28837.rs:18:5
    |
-19 |     a - a; //~ ERROR binary operation `-` cannot be applied to type `A`
+18 |     a - a; //~ ERROR binary operation `-` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::Sub` might be missing for `A`
 
 error[E0369]: binary operation `*` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:22:5
+  --> $DIR/issue-28837.rs:20:5
    |
-22 |     a * a; //~ ERROR binary operation `*` cannot be applied to type `A`
+20 |     a * a; //~ ERROR binary operation `*` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::Mul` might be missing for `A`
 
 error[E0369]: binary operation `/` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:25:5
+  --> $DIR/issue-28837.rs:22:5
    |
-25 |     a / a; //~ ERROR binary operation `/` cannot be applied to type `A`
+22 |     a / a; //~ ERROR binary operation `/` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::Div` might be missing for `A`
 
 error[E0369]: binary operation `%` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:28:5
+  --> $DIR/issue-28837.rs:24:5
    |
-28 |     a % a; //~ ERROR binary operation `%` cannot be applied to type `A`
+24 |     a % a; //~ ERROR binary operation `%` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::Rem` might be missing for `A`
 
 error[E0369]: binary operation `&` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:31:5
+  --> $DIR/issue-28837.rs:26:5
    |
-31 |     a & a; //~ ERROR binary operation `&` cannot be applied to type `A`
+26 |     a & a; //~ ERROR binary operation `&` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::BitAnd` might be missing for `A`
 
 error[E0369]: binary operation `|` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:34:5
+  --> $DIR/issue-28837.rs:28:5
    |
-34 |     a | a; //~ ERROR binary operation `|` cannot be applied to type `A`
+28 |     a | a; //~ ERROR binary operation `|` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::ops::BitOr` might be missing for `A`
 
 error[E0369]: binary operation `<<` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:37:5
+  --> $DIR/issue-28837.rs:30:5
    |
-37 |     a << a; //~ ERROR binary operation `<<` cannot be applied to type `A`
+30 |     a << a; //~ ERROR binary operation `<<` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::ops::Shl` might be missing for `A`
 
 error[E0369]: binary operation `>>` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:40:5
+  --> $DIR/issue-28837.rs:32:5
    |
-40 |     a >> a; //~ ERROR binary operation `>>` cannot be applied to type `A`
+32 |     a >> a; //~ ERROR binary operation `>>` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::ops::Shr` might be missing for `A`
 
 error[E0369]: binary operation `==` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:43:5
+  --> $DIR/issue-28837.rs:34:5
    |
-43 |     a == a; //~ ERROR binary operation `==` cannot be applied to type `A`
+34 |     a == a; //~ ERROR binary operation `==` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::cmp::PartialEq` might be missing for `A`
 
 error[E0369]: binary operation `!=` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:46:5
+  --> $DIR/issue-28837.rs:36:5
    |
-46 |     a != a; //~ ERROR binary operation `!=` cannot be applied to type `A`
+36 |     a != a; //~ ERROR binary operation `!=` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::cmp::PartialEq` might be missing for `A`
 
 error[E0369]: binary operation `<` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:49:5
+  --> $DIR/issue-28837.rs:38:5
    |
-49 |     a < a; //~ ERROR binary operation `<` cannot be applied to type `A`
+38 |     a < a; //~ ERROR binary operation `<` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
 error[E0369]: binary operation `<=` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:52:5
+  --> $DIR/issue-28837.rs:40:5
    |
-52 |     a <= a; //~ ERROR binary operation `<=` cannot be applied to type `A`
+40 |     a <= a; //~ ERROR binary operation `<=` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
 error[E0369]: binary operation `>` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:55:5
+  --> $DIR/issue-28837.rs:42:5
    |
-55 |     a > a; //~ ERROR binary operation `>` cannot be applied to type `A`
+42 |     a > a; //~ ERROR binary operation `>` cannot be applied to type `A`
    |     ^^^^^
    |
    = note: an implementation of `std::cmp::PartialOrd` might be missing for `A`
 
 error[E0369]: binary operation `>=` cannot be applied to type `A`
-  --> $DIR/issue-28837.rs:58:5
+  --> $DIR/issue-28837.rs:44:5
    |
-58 |     a >= a; //~ ERROR binary operation `>=` cannot be applied to type `A`
+44 |     a >= a; //~ ERROR binary operation `>=` cannot be applied to type `A`
    |     ^^^^^^
    |
    = note: an implementation of `std::cmp::PartialOrd` might be missing for `A`
diff --git a/src/test/ui/issue-28971.rs b/src/test/ui/issue-28971.rs
index 10be4d6210d..e553fee5a62 100644
--- a/src/test/ui/issue-28971.rs
+++ b/src/test/ui/issue-28971.rs
@@ -10,7 +10,7 @@
 
 // This should not cause an ICE
 
-enum Foo { //~ NOTE variant `Baz` not found here
+enum Foo {
     Bar(u8)
 }
 fn main(){
@@ -18,7 +18,6 @@ fn main(){
         match Foo::Bar(1) {
             Foo::Baz(..) => (),
             //~^ ERROR no variant named `Baz` found for type `Foo`
-            //~| NOTE variant not found in `Foo`
             _ => (),
         }
     });
diff --git a/src/test/ui/issue-28971.stderr b/src/test/ui/issue-28971.stderr
index 6a2cf044373..6237aae67be 100644
--- a/src/test/ui/issue-28971.stderr
+++ b/src/test/ui/issue-28971.stderr
@@ -1,7 +1,7 @@
 error[E0599]: no variant named `Baz` found for type `Foo` in the current scope
   --> $DIR/issue-28971.rs:19:13
    |
-13 | enum Foo { //~ NOTE variant `Baz` not found here
+13 | enum Foo {
    | -------- variant `Baz` not found here
 ...
 19 |             Foo::Baz(..) => (),
diff --git a/src/test/ui/issue-29124.rs b/src/test/ui/issue-29124.rs
index a72dac0d5dd..77fa8192b97 100644
--- a/src/test/ui/issue-29124.rs
+++ b/src/test/ui/issue-29124.rs
@@ -24,8 +24,6 @@ fn func() -> ret {
 fn main() {
     obj::func.x();
     //~^ ERROR no method named `x` found for type `fn() -> ret {obj::func}` in the current scope
-    //~^^ NOTE obj::func is a function, perhaps you wish to call it
     func.x();
     //~^ ERROR no method named `x` found for type `fn() -> ret {func}` in the current scope
-    //~^^ NOTE func is a function, perhaps you wish to call it
 }
diff --git a/src/test/ui/issue-29124.stderr b/src/test/ui/issue-29124.stderr
index 7c350b18752..0b81526d655 100644
--- a/src/test/ui/issue-29124.stderr
+++ b/src/test/ui/issue-29124.stderr
@@ -7,9 +7,9 @@ error[E0599]: no method named `x` found for type `fn() -> ret {obj::func}` in th
    = note: obj::func is a function, perhaps you wish to call it
 
 error[E0599]: no method named `x` found for type `fn() -> ret {func}` in the current scope
-  --> $DIR/issue-29124.rs:28:10
+  --> $DIR/issue-29124.rs:27:10
    |
-28 |     func.x();
+27 |     func.x();
    |          ^
    |
    = note: func is a function, perhaps you wish to call it
diff --git a/src/test/ui/issue-30007.rs b/src/test/ui/issue-30007.rs
index fa0b75da999..c17833ee830 100644
--- a/src/test/ui/issue-30007.rs
+++ b/src/test/ui/issue-30007.rs
@@ -13,5 +13,5 @@ macro_rules! t {
 }
 
 fn main() {
-    let i: Vec<t!()>;       //~ NOTE caused by the macro expansion here
+    let i: Vec<t!()>;
 }
diff --git a/src/test/ui/issue-30007.stderr b/src/test/ui/issue-30007.stderr
index cf4bc10a3d7..24458ef44c4 100644
--- a/src/test/ui/issue-30007.stderr
+++ b/src/test/ui/issue-30007.stderr
@@ -7,7 +7,7 @@ error: macro expansion ignores token `;` and any following
 note: caused by the macro expansion here; the usage of `t!` is likely invalid in type context
   --> $DIR/issue-30007.rs:16:16
    |
-16 |     let i: Vec<t!()>;       //~ NOTE caused by the macro expansion here
+16 |     let i: Vec<t!()>;
    |                ^^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-3008-1.rs b/src/test/ui/issue-3008-1.rs
index 7ca6d9301a6..89de27326b4 100644
--- a/src/test/ui/issue-3008-1.rs
+++ b/src/test/ui/issue-3008-1.rs
@@ -14,9 +14,8 @@ enum Foo {
 
 enum Bar {
     //~^ ERROR recursive type `Bar` has infinite size
-    //~| NOTE recursive type has infinite size
     BarNone,
-    BarSome(Bar)  //~ NOTE recursive without indirection
+    BarSome(Bar)
 }
 
 fn main() {
diff --git a/src/test/ui/issue-3008-1.stderr b/src/test/ui/issue-3008-1.stderr
index 7d1e139e5ce..7d8e10a7606 100644
--- a/src/test/ui/issue-3008-1.stderr
+++ b/src/test/ui/issue-3008-1.stderr
@@ -4,7 +4,7 @@ error[E0072]: recursive type `Bar` has infinite size
 15 | enum Bar {
    | ^^^^^^^^ recursive type has infinite size
 ...
-19 |     BarSome(Bar)  //~ NOTE recursive without indirection
+18 |     BarSome(Bar)
    |             ---- recursive without indirection
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Bar` representable
diff --git a/src/test/ui/issue-3008-2.rs b/src/test/ui/issue-3008-2.rs
index 061d1facda0..b627656c91a 100644
--- a/src/test/ui/issue-3008-2.rs
+++ b/src/test/ui/issue-3008-2.rs
@@ -11,8 +11,6 @@
 enum foo { foo_(bar) }
 struct bar { x: bar }
 //~^ ERROR E0072
-//~| NOTE recursive type has infinite size
-//~| NOTE recursive without indirection
 
 fn main() {
 }
diff --git a/src/test/ui/issue-30255.rs b/src/test/ui/issue-30255.rs
index e3f55ae51e8..7db0b1ca203 100644
--- a/src/test/ui/issue-30255.rs
+++ b/src/test/ui/issue-30255.rs
@@ -17,19 +17,16 @@ struct S<'a> {
 
 fn f(a: &S, b: i32) -> &i32 {
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP does not say which one of `a`'s 2 lifetimes it is borrowed from
     panic!();
 }
 
 fn g(a: &S, b: bool, c: &i32) -> &i32 {
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP does not say whether it is borrowed from one of `a`'s 2 lifetimes or `c`
     panic!();
 }
 
 fn h(a: &bool, b: bool, c: &S, d: &i32) -> &i32 {
 //~^ ERROR missing lifetime specifier [E0106]
-//~^^ HELP does not say whether it is borrowed from `a`, one of `c`'s 2 lifetimes, or `d`
     panic!();
 }
 
diff --git a/src/test/ui/issue-30255.stderr b/src/test/ui/issue-30255.stderr
index 54b14bc6419..b0c314912cc 100644
--- a/src/test/ui/issue-30255.stderr
+++ b/src/test/ui/issue-30255.stderr
@@ -7,17 +7,17 @@ error[E0106]: missing lifetime specifier
    = help: this function's return type contains a borrowed value, but the signature does not say which one of `a`'s 2 lifetimes it is borrowed from
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/issue-30255.rs:24:34
+  --> $DIR/issue-30255.rs:23:34
    |
-24 | fn g(a: &S, b: bool, c: &i32) -> &i32 {
+23 | fn g(a: &S, b: bool, c: &i32) -> &i32 {
    |                                  ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from one of `a`'s 2 lifetimes or `c`
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/issue-30255.rs:30:44
+  --> $DIR/issue-30255.rs:28:44
    |
-30 | fn h(a: &bool, b: bool, c: &S, d: &i32) -> &i32 {
+28 | fn h(a: &bool, b: bool, c: &S, d: &i32) -> &i32 {
    |                                            ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `a`, one of `c`'s 2 lifetimes, or `d`
diff --git a/src/test/ui/issue-30302.rs b/src/test/ui/issue-30302.rs
index 01150ff1374..51c76713a76 100644
--- a/src/test/ui/issue-30302.rs
+++ b/src/test/ui/issue-30302.rs
@@ -22,7 +22,6 @@ fn is_empty<T>(s: Stack<T>) -> bool {
     match s {
         Nil => true,
 //~^ WARN pattern binding `Nil` is named the same as one of the variants of the type `Stack`
-//~| HELP consider making the path in the pattern qualified: `Stack::Nil`
         _ => false
 //~^ ERROR unreachable pattern
     }
diff --git a/src/test/ui/issue-30302.stderr b/src/test/ui/issue-30302.stderr
index b880a4e0ea2..e86b588aad2 100644
--- a/src/test/ui/issue-30302.stderr
+++ b/src/test/ui/issue-30302.stderr
@@ -7,9 +7,9 @@ warning[E0170]: pattern binding `Nil` is named the same as one of the variants o
    = help: if you meant to match on a variant, consider making the path in the pattern qualified: `Stack::Nil`
 
 error: unreachable pattern
-  --> $DIR/issue-30302.rs:26:9
+  --> $DIR/issue-30302.rs:25:9
    |
-26 |         _ => false
+25 |         _ => false
    |         ^ this is an unreachable pattern
    |
 note: lint level defined here
diff --git a/src/test/ui/issue-3044.rs b/src/test/ui/issue-3044.rs
index 4c63f7761a6..5708f160a41 100644
--- a/src/test/ui/issue-3044.rs
+++ b/src/test/ui/issue-3044.rs
@@ -14,5 +14,4 @@ fn main() {
     needlesArr.iter().fold(|x, y| {
     });
     //~^^ ERROR this function takes 2 parameters but 1 parameter was supplied
-    //~| NOTE expected 2 parameters
 }
diff --git a/src/test/ui/issue-30730.rs b/src/test/ui/issue-30730.rs
index d1af39a6c18..c57a34a90df 100644
--- a/src/test/ui/issue-30730.rs
+++ b/src/test/ui/issue-30730.rs
@@ -9,8 +9,7 @@
 // except according to those terms.
 
 #![warn(unused)]
-#![deny(warnings)] //~ NOTE: lint level defined here
+#![deny(warnings)]
 use std::thread;
 //~^ ERROR: unused import
-//~| NOTE: #[deny(unused_imports)] implied by #[deny(warnings)]
 fn main() {}
diff --git a/src/test/ui/issue-30730.stderr b/src/test/ui/issue-30730.stderr
index 1a91ee2e841..192c1f542de 100644
--- a/src/test/ui/issue-30730.stderr
+++ b/src/test/ui/issue-30730.stderr
@@ -7,7 +7,7 @@ error: unused import: `std::thread`
 note: lint level defined here
   --> $DIR/issue-30730.rs:12:9
    |
-12 | #![deny(warnings)] //~ NOTE: lint level defined here
+12 | #![deny(warnings)]
    |         ^^^^^^^^
    = note: #[deny(unused_imports)] implied by #[deny(warnings)]
 
diff --git a/src/test/ui/issue-31221.rs b/src/test/ui/issue-31221.rs
index 8701ca0178f..ca15a869a9c 100644
--- a/src/test/ui/issue-31221.rs
+++ b/src/test/ui/issue-31221.rs
@@ -12,7 +12,6 @@
 #![allow(unused_variables)]
 #![allow(non_snake_case)]
 #![deny(unreachable_patterns)]
-//~^ NOTE lint level defined here
 
 #[derive(Clone, Copy)]
 enum Enum {
@@ -26,26 +25,20 @@ fn main() {
     match s {
         Var1 => (),
         Var3 => (),
-        //~^ NOTE this pattern matches any value
         Var2 => (),
         //~^ ERROR unreachable pattern
-        //~^^ NOTE this is an unreachable pattern
     };
     match &s {
         &Var1 => (),
         &Var3 => (),
-        //~^ NOTE this pattern matches any value
         &Var2 => (),
         //~^ ERROR unreachable pattern
-        //~^^ NOTE this is an unreachable pattern
     };
     let t = (Var1, Var1);
     match t {
         (Var1, b) => (),
         (c, d) => (),
-        //~^ NOTE this pattern matches any value
         anything => ()
         //~^ ERROR unreachable pattern
-        //~^^ NOTE this is an unreachable pattern
     };
 }
diff --git a/src/test/ui/issue-31221.stderr b/src/test/ui/issue-31221.stderr
index 13a2e5aeef7..ccc1df04ff7 100644
--- a/src/test/ui/issue-31221.stderr
+++ b/src/test/ui/issue-31221.stderr
@@ -1,7 +1,7 @@
 error: unreachable pattern
-  --> $DIR/issue-31221.rs:30:9
+  --> $DIR/issue-31221.rs:28:9
    |
-30 |         Var2 => (),
+28 |         Var2 => (),
    |         ^^^^ this is an unreachable pattern
    |
 note: lint level defined here
@@ -10,33 +10,33 @@ note: lint level defined here
 14 | #![deny(unreachable_patterns)]
    |         ^^^^^^^^^^^^^^^^^^^^
 note: this pattern matches any value
-  --> $DIR/issue-31221.rs:28:9
+  --> $DIR/issue-31221.rs:27:9
    |
-28 |         Var3 => (),
+27 |         Var3 => (),
    |         ^^^^
 
 error: unreachable pattern
-  --> $DIR/issue-31221.rs:38:9
+  --> $DIR/issue-31221.rs:34:9
    |
-38 |         &Var2 => (),
+34 |         &Var2 => (),
    |         ^^^^^ this is an unreachable pattern
    |
 note: this pattern matches any value
-  --> $DIR/issue-31221.rs:36:9
+  --> $DIR/issue-31221.rs:33:9
    |
-36 |         &Var3 => (),
+33 |         &Var3 => (),
    |         ^^^^^
 
 error: unreachable pattern
-  --> $DIR/issue-31221.rs:47:9
+  --> $DIR/issue-31221.rs:41:9
    |
-47 |         anything => ()
+41 |         anything => ()
    |         ^^^^^^^^ this is an unreachable pattern
    |
 note: this pattern matches any value
-  --> $DIR/issue-31221.rs:45:9
+  --> $DIR/issue-31221.rs:40:9
    |
-45 |         (c, d) => (),
+40 |         (c, d) => (),
    |         ^^^^^^
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/issue-32326.rs b/src/test/ui/issue-32326.rs
index 70a7cd8b970..8af243afc22 100644
--- a/src/test/ui/issue-32326.rs
+++ b/src/test/ui/issue-32326.rs
@@ -13,10 +13,7 @@
 // too big.
 
 enum Expr { //~ ERROR E0072
-            //~| NOTE recursive type has infinite size
     Plus(Expr, Expr),
-    //~^ NOTE recursive without indirection
-    //~| NOTE recursive without indirection
     Literal(i64),
 }
 
diff --git a/src/test/ui/issue-32326.stderr b/src/test/ui/issue-32326.stderr
index 79110a05475..f907e3adaf1 100644
--- a/src/test/ui/issue-32326.stderr
+++ b/src/test/ui/issue-32326.stderr
@@ -3,8 +3,7 @@ error[E0072]: recursive type `Expr` has infinite size
    |
 15 | enum Expr { //~ ERROR E0072
    | ^^^^^^^^^ recursive type has infinite size
-16 |             //~| NOTE recursive type has infinite size
-17 |     Plus(Expr, Expr),
+16 |     Plus(Expr, Expr),
    |          ----- ----- recursive without indirection
    |          |
    |          recursive without indirection
diff --git a/src/test/ui/issue-32950.rs b/src/test/ui/issue-32950.rs
index 20e5b1d72d3..4e5cdd50b2a 100644
--- a/src/test/ui/issue-32950.rs
+++ b/src/test/ui/issue-32950.rs
@@ -10,7 +10,7 @@
 
 #![feature(concat_idents)]
 
-#[derive(Debug)] //~ NOTE in this expansion
+#[derive(Debug)]
 struct Baz<T>(
     concat_idents!(Foo, Bar) //~ ERROR `derive` cannot be used on items with type macros
 );
diff --git a/src/test/ui/issue-34047.rs b/src/test/ui/issue-34047.rs
index 630694d9156..db284102503 100644
--- a/src/test/ui/issue-34047.rs
+++ b/src/test/ui/issue-34047.rs
@@ -8,12 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-const C: u8 = 0; //~ NOTE a constant `C` is defined here
+const C: u8 = 0;
 
 fn main() {
     match 1u8 {
         mut C => {} //~ ERROR match bindings cannot shadow constants
-        //~^ NOTE cannot be named the same as a constant
         _ => {}
     }
 }
diff --git a/src/test/ui/issue-34047.stderr b/src/test/ui/issue-34047.stderr
index d2e1826b634..0c109bffb24 100644
--- a/src/test/ui/issue-34047.stderr
+++ b/src/test/ui/issue-34047.stderr
@@ -1,7 +1,7 @@
 error[E0530]: match bindings cannot shadow constants
   --> $DIR/issue-34047.rs:15:13
    |
-11 | const C: u8 = 0; //~ NOTE a constant `C` is defined here
+11 | const C: u8 = 0;
    | ---------------- a constant `C` is defined here
 ...
 15 |         mut C => {} //~ ERROR match bindings cannot shadow constants
diff --git a/src/test/ui/issue-34209.rs b/src/test/ui/issue-34209.rs
index 5e3b777cc0b..b3cb7d4cc30 100644
--- a/src/test/ui/issue-34209.rs
+++ b/src/test/ui/issue-34209.rs
@@ -16,8 +16,6 @@ fn bug(l: S) {
     match l {
         S::B{ } => { },
         //~^ ERROR ambiguous associated type
-        //~| NOTE ambiguous associated type
-        //~| NOTE specify the type using the syntax `<S as Trait>::B`
     }
 }
 
diff --git a/src/test/ui/issue-35139.rs b/src/test/ui/issue-35139.rs
index 5c4f161a500..67f0e7aaf97 100644
--- a/src/test/ui/issue-35139.rs
+++ b/src/test/ui/issue-35139.rs
@@ -17,7 +17,6 @@ pub trait MethodType {
 pub struct MTFn;
 
 impl<'a> MethodType for MTFn { //~ ERROR E0207
-                               //~| NOTE unconstrained lifetime parameter
     type GetProp = fmt::Debug + 'a;
 }
 
diff --git a/src/test/ui/issue-35675.rs b/src/test/ui/issue-35675.rs
index ee9d1324cdb..f3495468151 100644
--- a/src/test/ui/issue-35675.rs
+++ b/src/test/ui/issue-35675.rs
@@ -9,49 +9,34 @@
 // except according to those terms.
 
 // these two HELPs are actually in a new line between this line and the `enum Fruit` line
-enum Fruit { //~ HELP possible candidate is found in another module, you can import it into scope
-    //~^ HELP possible candidate is found in another module, you can import it into scope
+enum Fruit {
     Apple(i64),
     Orange(i64),
 }
 
 fn should_return_fruit() -> Apple {
     //~^ ERROR cannot find type `Apple` in this scope
-    //~| NOTE not found in this scope
-    //~| HELP you can try using the variant's enum
     Apple(5)
     //~^ ERROR cannot find function `Apple` in this scope
-    //~| NOTE not found in this scope
 }
 
 fn should_return_fruit_too() -> Fruit::Apple {
     //~^ ERROR expected type, found variant `Fruit::Apple`
-    //~| NOTE not a type
-    //~| HELP you can try using the variant's enum
     Apple(5)
     //~^ ERROR cannot find function `Apple` in this scope
-    //~| NOTE not found in this scope
 }
 
 fn foo() -> Ok {
     //~^ ERROR expected type, found variant `Ok`
-    //~| NOTE not a type
-    //~| HELP there is an enum variant
-    //~| HELP there is an enum variant
     Ok(())
 }
 
 fn bar() -> Variant3 {
     //~^ ERROR cannot find type `Variant3` in this scope
-    //~| NOTE not found in this scope
-    //~| HELP you can try using the variant's enum
 }
 
 fn qux() -> Some {
     //~^ ERROR expected type, found variant `Some`
-    //~| NOTE not a type
-    //~| HELP there is an enum variant
-    //~| HELP there is an enum variant
     Some(1)
 }
 
diff --git a/src/test/ui/issue-35675.stderr b/src/test/ui/issue-35675.stderr
index 550e094dc51..c4d0e51c07e 100644
--- a/src/test/ui/issue-35675.stderr
+++ b/src/test/ui/issue-35675.stderr
@@ -1,16 +1,16 @@
 error[E0412]: cannot find type `Apple` in this scope
-  --> $DIR/issue-35675.rs:18:29
+  --> $DIR/issue-35675.rs:17:29
    |
-18 | fn should_return_fruit() -> Apple {
+17 | fn should_return_fruit() -> Apple {
    |                             ^^^^^
    |                             |
    |                             not found in this scope
    |                             help: you can try using the variant's enum: `Fruit`
 
 error[E0425]: cannot find function `Apple` in this scope
-  --> $DIR/issue-35675.rs:22:5
+  --> $DIR/issue-35675.rs:19:5
    |
-22 |     Apple(5)
+19 |     Apple(5)
    |     ^^^^^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
@@ -18,18 +18,18 @@ help: possible candidate is found in another module, you can import it into scop
    |
 
 error[E0573]: expected type, found variant `Fruit::Apple`
-  --> $DIR/issue-35675.rs:27:33
+  --> $DIR/issue-35675.rs:23:33
    |
-27 | fn should_return_fruit_too() -> Fruit::Apple {
+23 | fn should_return_fruit_too() -> Fruit::Apple {
    |                                 ^^^^^^^^^^^^
    |                                 |
    |                                 not a type
    |                                 help: you can try using the variant's enum: `Fruit`
 
 error[E0425]: cannot find function `Apple` in this scope
-  --> $DIR/issue-35675.rs:31:5
+  --> $DIR/issue-35675.rs:25:5
    |
-31 |     Apple(5)
+25 |     Apple(5)
    |     ^^^^^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
@@ -37,27 +37,27 @@ help: possible candidate is found in another module, you can import it into scop
    |
 
 error[E0573]: expected type, found variant `Ok`
-  --> $DIR/issue-35675.rs:36:13
+  --> $DIR/issue-35675.rs:29:13
    |
-36 | fn foo() -> Ok {
+29 | fn foo() -> Ok {
    |             ^^ not a type
    |
    = help: there is an enum variant `std::prelude::v1::Ok`, try using `std::prelude::v1`?
    = help: there is an enum variant `std::result::Result::Ok`, try using `std::result::Result`?
 
 error[E0412]: cannot find type `Variant3` in this scope
-  --> $DIR/issue-35675.rs:44:13
+  --> $DIR/issue-35675.rs:34:13
    |
-44 | fn bar() -> Variant3 {
+34 | fn bar() -> Variant3 {
    |             ^^^^^^^^
    |             |
    |             not found in this scope
    |             help: you can try using the variant's enum: `x::Enum`
 
 error[E0573]: expected type, found variant `Some`
-  --> $DIR/issue-35675.rs:50:13
+  --> $DIR/issue-35675.rs:38:13
    |
-50 | fn qux() -> Some {
+38 | fn qux() -> Some {
    |             ^^^^ not a type
    |
    = help: there is an enum variant `std::prelude::v1::Option::Some`, try using `std::prelude::v1::Option`?
diff --git a/src/test/ui/issue-35869.rs b/src/test/ui/issue-35869.rs
index 1942fd38d11..17ee62aed1b 100644
--- a/src/test/ui/issue-35869.rs
+++ b/src/test/ui/issue-35869.rs
@@ -11,10 +11,10 @@
 #![feature(conservative_impl_trait)]
 
 trait Foo {
-    fn foo(_: fn(u8) -> ()); //~ NOTE type in trait
-    fn bar(_: Option<u8>); //~ NOTE type in trait
-    fn baz(_: (u8, u16)); //~ NOTE type in trait
-    fn qux() -> u8; //~ NOTE type in trait
+    fn foo(_: fn(u8) -> ());
+    fn bar(_: Option<u8>);
+    fn baz(_: (u8, u16));
+    fn qux() -> u8;
 }
 
 struct Bar;
@@ -22,20 +22,12 @@ struct Bar;
 impl Foo for Bar {
     fn foo(_: fn(u16) -> ()) {}
     //~^ ERROR method `foo` has an incompatible type for trait
-    //~| NOTE expected u8
-    //~| NOTE expected type `fn(fn(u8))`
     fn bar(_: Option<u16>) {}
     //~^ ERROR method `bar` has an incompatible type for trait
-    //~| NOTE expected u8
-    //~| NOTE expected type `fn(std::option::Option<u8>)`
     fn baz(_: (u16, u16)) {}
     //~^ ERROR method `baz` has an incompatible type for trait
-    //~| NOTE expected u8
-    //~| NOTE expected type `fn((u8, u16))`
     fn qux() -> u16 { 5u16 }
     //~^ ERROR method `qux` has an incompatible type for trait
-    //~| NOTE expected u8
-    //~| NOTE expected type `fn() -> u8`
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-35869.stderr b/src/test/ui/issue-35869.stderr
index cd79f8912ba..5d2772b06a2 100644
--- a/src/test/ui/issue-35869.stderr
+++ b/src/test/ui/issue-35869.stderr
@@ -1,7 +1,7 @@
 error[E0053]: method `foo` has an incompatible type for trait
   --> $DIR/issue-35869.rs:23:15
    |
-14 |     fn foo(_: fn(u8) -> ()); //~ NOTE type in trait
+14 |     fn foo(_: fn(u8) -> ());
    |               ------------ type in trait
 ...
 23 |     fn foo(_: fn(u16) -> ()) {}
@@ -11,36 +11,36 @@ error[E0053]: method `foo` has an incompatible type for trait
               found type `fn(fn(u16))`
 
 error[E0053]: method `bar` has an incompatible type for trait
-  --> $DIR/issue-35869.rs:27:15
+  --> $DIR/issue-35869.rs:25:15
    |
-15 |     fn bar(_: Option<u8>); //~ NOTE type in trait
+15 |     fn bar(_: Option<u8>);
    |               ---------- type in trait
 ...
-27 |     fn bar(_: Option<u16>) {}
+25 |     fn bar(_: Option<u16>) {}
    |               ^^^^^^^^^^^ expected u8, found u16
    |
    = note: expected type `fn(std::option::Option<u8>)`
               found type `fn(std::option::Option<u16>)`
 
 error[E0053]: method `baz` has an incompatible type for trait
-  --> $DIR/issue-35869.rs:31:15
+  --> $DIR/issue-35869.rs:27:15
    |
-16 |     fn baz(_: (u8, u16)); //~ NOTE type in trait
+16 |     fn baz(_: (u8, u16));
    |               --------- type in trait
 ...
-31 |     fn baz(_: (u16, u16)) {}
+27 |     fn baz(_: (u16, u16)) {}
    |               ^^^^^^^^^^ expected u8, found u16
    |
    = note: expected type `fn((u8, u16))`
               found type `fn((u16, u16))`
 
 error[E0053]: method `qux` has an incompatible type for trait
-  --> $DIR/issue-35869.rs:35:17
+  --> $DIR/issue-35869.rs:29:17
    |
-17 |     fn qux() -> u8; //~ NOTE type in trait
+17 |     fn qux() -> u8;
    |                 -- type in trait
 ...
-35 |     fn qux() -> u16 { 5u16 }
+29 |     fn qux() -> u16 { 5u16 }
    |                 ^^^ expected u8, found u16
    |
    = note: expected type `fn() -> u8`
diff --git a/src/test/ui/issue-36163.rs b/src/test/ui/issue-36163.rs
index 9dad6ede776..2337f82afa4 100644
--- a/src/test/ui/issue-36163.rs
+++ b/src/test/ui/issue-36163.rs
@@ -9,16 +9,13 @@
 // except according to those terms.
 
 const A: i32 = Foo::B; //~ ERROR E0265
-                       //~^ NOTE recursion not allowed in constant
 
 enum Foo {
     B = A, //~ ERROR E0265
-           //~^ NOTE recursion not allowed in constant
 }
 
 enum Bar {
     C = Bar::C, //~ ERROR E0265
-                //~^ NOTE recursion not allowed in constant
 }
 
 const D: i32 = A;
diff --git a/src/test/ui/issue-36163.stderr b/src/test/ui/issue-36163.stderr
index 79267bdbeed..5a107d88f2e 100644
--- a/src/test/ui/issue-36163.stderr
+++ b/src/test/ui/issue-36163.stderr
@@ -5,15 +5,15 @@ error[E0265]: recursive constant
    | ^^^^^^^^^^^^^^^^^^^^^^ recursion not allowed in constant
 
 error[E0265]: recursive constant
-  --> $DIR/issue-36163.rs:15:9
+  --> $DIR/issue-36163.rs:14:9
    |
-15 |     B = A, //~ ERROR E0265
+14 |     B = A, //~ ERROR E0265
    |         ^ recursion not allowed in constant
 
 error[E0265]: recursive constant
-  --> $DIR/issue-36163.rs:20:9
+  --> $DIR/issue-36163.rs:18:9
    |
-20 |     C = Bar::C, //~ ERROR E0265
+18 |     C = Bar::C, //~ ERROR E0265
    |         ^^^^^^ recursion not allowed in constant
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/issue-36708.rs b/src/test/ui/issue-36708.rs
index 6146258fa8d..92a724a7e96 100644
--- a/src/test/ui/issue-36708.rs
+++ b/src/test/ui/issue-36708.rs
@@ -17,7 +17,6 @@ struct Bar;
 impl lib::Foo for Bar {
     fn foo<T>() {}
     //~^ ERROR E0049
-    //~| NOTE found 1 type parameter, expected 0
 }
 
 fn main() {}
diff --git a/src/test/ui/issue-3779.rs b/src/test/ui/issue-3779.rs
index 10f73dc0862..7490960da36 100644
--- a/src/test/ui/issue-3779.rs
+++ b/src/test/ui/issue-3779.rs
@@ -10,9 +10,7 @@
 
 struct S {
     //~^ ERROR E0072
-    //~| NOTE recursive type has infinite size
     element: Option<S>
-    //~^ NOTE recursive without indirection
 }
 
 fn main() {
diff --git a/src/test/ui/issue-3779.stderr b/src/test/ui/issue-3779.stderr
index 18f2726b63b..538304803b4 100644
--- a/src/test/ui/issue-3779.stderr
+++ b/src/test/ui/issue-3779.stderr
@@ -3,8 +3,8 @@ error[E0072]: recursive type `S` has infinite size
    |
 11 | struct S {
    | ^^^^^^^^ recursive type has infinite size
-...
-14 |     element: Option<S>
+12 |     //~^ ERROR E0072
+13 |     element: Option<S>
    |     ------------------ recursive without indirection
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `S` representable
diff --git a/src/test/ui/issue-37884.rs b/src/test/ui/issue-37884.rs
index 6313293bf2b..ea6403a3eef 100644
--- a/src/test/ui/issue-37884.rs
+++ b/src/test/ui/issue-37884.rs
@@ -11,14 +11,11 @@
 struct RepeatMut<'a, T>(T, &'a ());
 
 impl<'a, T: 'a> Iterator for RepeatMut<'a, T> {
-    //~^ NOTE ...does not necessarily outlive the lifetime 'a as defined on the impl
 
     type Item = &'a mut T;
     fn next(&'a mut self) -> Option<Self::Item>
     //~^ ERROR method not compatible with trait
     //~| lifetime mismatch
-    //~| NOTE expected type `fn(&mut RepeatMut<'a, T>) -> std::option::Option<&mut T>`
-    //~| NOTE the anonymous lifetime #1 defined on the method body
     {
         Some(&mut self.0)
     }
diff --git a/src/test/ui/issue-37884.stderr b/src/test/ui/issue-37884.stderr
index b101adfdd7c..439b123975f 100644
--- a/src/test/ui/issue-37884.stderr
+++ b/src/test/ui/issue-37884.stderr
@@ -1,38 +1,36 @@
 error[E0308]: method not compatible with trait
-  --> $DIR/issue-37884.rs:17:5
+  --> $DIR/issue-37884.rs:16:5
    |
-17 | /     fn next(&'a mut self) -> Option<Self::Item>
-18 | |     //~^ ERROR method not compatible with trait
-19 | |     //~| lifetime mismatch
-20 | |     //~| NOTE expected type `fn(&mut RepeatMut<'a, T>) -> std::option::Option<&mut T>`
-...  |
-23 | |         Some(&mut self.0)
-24 | |     }
+16 | /     fn next(&'a mut self) -> Option<Self::Item>
+17 | |     //~^ ERROR method not compatible with trait
+18 | |     //~| lifetime mismatch
+19 | |     {
+20 | |         Some(&mut self.0)
+21 | |     }
    | |_____^ lifetime mismatch
    |
    = note: expected type `fn(&mut RepeatMut<'a, T>) -> std::option::Option<&mut T>`
               found type `fn(&'a mut RepeatMut<'a, T>) -> std::option::Option<&mut T>`
-note: the anonymous lifetime #1 defined on the method body at 17:5...
-  --> $DIR/issue-37884.rs:17:5
+note: the anonymous lifetime #1 defined on the method body at 16:5...
+  --> $DIR/issue-37884.rs:16:5
    |
-17 | /     fn next(&'a mut self) -> Option<Self::Item>
-18 | |     //~^ ERROR method not compatible with trait
-19 | |     //~| lifetime mismatch
-20 | |     //~| NOTE expected type `fn(&mut RepeatMut<'a, T>) -> std::option::Option<&mut T>`
-...  |
-23 | |         Some(&mut self.0)
-24 | |     }
+16 | /     fn next(&'a mut self) -> Option<Self::Item>
+17 | |     //~^ ERROR method not compatible with trait
+18 | |     //~| lifetime mismatch
+19 | |     {
+20 | |         Some(&mut self.0)
+21 | |     }
    | |_____^
 note: ...does not necessarily outlive the lifetime 'a as defined on the impl at 13:1
   --> $DIR/issue-37884.rs:13:1
    |
 13 | / impl<'a, T: 'a> Iterator for RepeatMut<'a, T> {
-14 | |     //~^ NOTE ...does not necessarily outlive the lifetime 'a as defined on the impl
-15 | |
-16 | |     type Item = &'a mut T;
+14 | |
+15 | |     type Item = &'a mut T;
+16 | |     fn next(&'a mut self) -> Option<Self::Item>
 ...  |
-24 | |     }
-25 | | }
+21 | |     }
+22 | | }
    | |_^
 
 error: aborting due to previous error
diff --git a/src/test/ui/issue-41652/issue_41652.rs b/src/test/ui/issue-41652/issue_41652.rs
index 1874ee6cd3a..f38c682d319 100644
--- a/src/test/ui/issue-41652/issue_41652.rs
+++ b/src/test/ui/issue-41652/issue_41652.rs
@@ -18,8 +18,6 @@ impl issue_41652_b::Tr for S {
     fn f() {
         3.f()
         //~^ ERROR no method named `f` found for type `{integer}` in the current scope
-        //~| NOTE found the following associated functions
-        //~| NOTE candidate #1 is defined in the trait `issue_41652_b::Tr`
     }
 }
 
diff --git a/src/test/ui/issue-4335.rs b/src/test/ui/issue-4335.rs
index c5aae894c3e..540504eb07e 100644
--- a/src/test/ui/issue-4335.rs
+++ b/src/test/ui/issue-4335.rs
@@ -15,10 +15,7 @@ fn id<T>(t: T) -> T { t }
 fn f<'r, T>(v: &'r T) -> Box<FnMut() -> T + 'r> {
     id(Box::new(|| *v))
         //~^ ERROR E0373
-        //~| NOTE `v` is borrowed here
-        //~| NOTE may outlive borrowed value `v`
         //~| ERROR E0507
-        //~| NOTE cannot move out of borrowed content
 }
 
 fn main() {
diff --git a/src/test/ui/issue-4935.rs b/src/test/ui/issue-4935.rs
index e9f8367378a..5b6e2c75a1c 100644
--- a/src/test/ui/issue-4935.rs
+++ b/src/test/ui/issue-4935.rs
@@ -14,4 +14,3 @@ fn foo(a: usize) {}
 //~^ defined here
 fn main() { foo(5, 6) }
 //~^ ERROR this function takes 1 parameter but 2 parameters were supplied
-//~| NOTE expected 1 parameter
diff --git a/src/test/ui/issue-5239-1.rs b/src/test/ui/issue-5239-1.rs
index a77b27150d7..f88b6931344 100644
--- a/src/test/ui/issue-5239-1.rs
+++ b/src/test/ui/issue-5239-1.rs
@@ -13,5 +13,4 @@
 fn main() {
     let x = |ref x: isize| { x += 1; };
     //~^ ERROR E0368
-    //~| NOTE cannot use `+=` on type `&isize`
 }
diff --git a/src/test/ui/issue-6458-3.rs b/src/test/ui/issue-6458-3.rs
index 1503da2baa7..038f6043fa6 100644
--- a/src/test/ui/issue-6458-3.rs
+++ b/src/test/ui/issue-6458-3.rs
@@ -13,5 +13,4 @@ use std::mem;
 fn main() {
     mem::transmute(0);
     //~^ ERROR type annotations needed [E0282]
-    //~| NOTE cannot infer type for `U`
 }
diff --git a/src/test/ui/issue-6458-4.rs b/src/test/ui/issue-6458-4.rs
index a078cdea4ac..45934d03ed4 100644
--- a/src/test/ui/issue-6458-4.rs
+++ b/src/test/ui/issue-6458-4.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 fn foo(b: bool) -> Result<bool,String> { //~ ERROR mismatched types
-    Err("bar".to_string()); //~ HELP consider removing this semicolon
+    Err("bar".to_string());
 }
 
 fn main() {
diff --git a/src/test/ui/issue-6458-4.stderr b/src/test/ui/issue-6458-4.stderr
index acb9b218df4..6cc1edcd9fa 100644
--- a/src/test/ui/issue-6458-4.stderr
+++ b/src/test/ui/issue-6458-4.stderr
@@ -3,7 +3,7 @@ error[E0308]: mismatched types
    |
 11 |   fn foo(b: bool) -> Result<bool,String> { //~ ERROR mismatched types
    |  ________________________________________^
-12 | |     Err("bar".to_string()); //~ HELP consider removing this semicolon
+12 | |     Err("bar".to_string());
    | |                           - help: consider removing this semicolon
 13 | | }
    | |_^ expected enum `std::result::Result`, found ()
diff --git a/src/test/ui/issue-6458.rs b/src/test/ui/issue-6458.rs
index db4d4e76c11..b4e7c0c40cf 100644
--- a/src/test/ui/issue-6458.rs
+++ b/src/test/ui/issue-6458.rs
@@ -18,7 +18,6 @@ pub fn foo<State>(_: TypeWithState<State>) {}
 pub fn bar() {
    foo(TypeWithState(marker::PhantomData));
    //~^ ERROR type annotations needed [E0282]
-   //~| NOTE cannot infer type for `State`
 }
 
 fn main() {
diff --git a/src/test/ui/issue-7813.rs b/src/test/ui/issue-7813.rs
index a5f001b785c..39a87bfaf74 100644
--- a/src/test/ui/issue-7813.rs
+++ b/src/test/ui/issue-7813.rs
@@ -10,7 +10,5 @@
 
 fn main() {
     let v = &[]; //~ ERROR type annotations needed
-    //~| NOTE consider giving `v` a type
-    //~| NOTE cannot infer type for `_`
     let it = v.iter();
 }
diff --git a/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.rs b/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.rs
index 2d9de57a265..a5fada7869e 100644
--- a/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.rs
+++ b/src/test/ui/lifetime-elision-return-type-requires-explicit-lifetime.rs
@@ -10,14 +10,11 @@
 
 // Lifetime annotation needed because we have no arguments.
 fn f() -> &isize {    //~ ERROR missing lifetime specifier
-//~^ HELP there is no value for it to be borrowed from
-//~| HELP consider giving it a 'static lifetime
     panic!()
 }
 
 // Lifetime annotation needed because we have two by-reference parameters.
 fn g(_x: &isize, _y: &isize) -> &isize {    //~ ERROR missing lifetime specifier
-//~^ HELP the signature does not say whether it is borrowed from `_x` or `_y`
     panic!()
 }
 
@@ -28,13 +25,10 @@ struct Foo<'a> {
 // Lifetime annotation needed because we have two lifetimes: one as a parameter
 // and one on the reference.
 fn h(_x: &Foo) -> &isize { //~ ERROR missing lifetime specifier
-//~^ HELP the signature does not say which one of `_x`'s 2 lifetimes it is borrowed from
     panic!()
 }
 
 fn i(_x: isize) -> &isize { //~ ERROR missing lifetime specifier
-//~^ HELP this function's return type contains a borrowed value
-//~| HELP consider giving it an explicit bounded or 'static lifetime
     panic!()
 }
 
@@ -48,8 +42,6 @@ trait WithLifetime<'a> {
 // This worked because the type of the first argument contains
 // 'static, although StaticStr doesn't even have parameters.
 fn j(_x: StaticStr) -> &isize { //~ ERROR missing lifetime specifier
-//~^ HELP this function's return type contains a borrowed value
-//~| HELP consider giving it an explicit bounded or 'static lifetime
     panic!()
 }
 
@@ -57,8 +49,6 @@ fn j(_x: StaticStr) -> &isize { //~ ERROR missing lifetime specifier
 // to <T as WithLifetime<'a>>::Output which has the hidden 'a.
 fn k<'a, T: WithLifetime<'a>>(_x: T::Output) -> &isize {
 //~^ ERROR missing lifetime specifier
-//~| HELP this function's return type contains a borrowed value
-//~| HELP consider giving it an explicit bounded or 'static lifetime
     panic!()
 }
 
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 3e67d9ab11b..f91b286bc4a 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
@@ -8,43 +8,43 @@ error[E0106]: missing lifetime specifier
    = help: consider giving it a 'static lifetime
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:19:33
+  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:17:33
    |
-19 | fn g(_x: &isize, _y: &isize) -> &isize {    //~ ERROR missing lifetime specifier
+17 | fn g(_x: &isize, _y: &isize) -> &isize {    //~ ERROR missing lifetime specifier
    |                                 ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `_x` or `_y`
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:30:19
+  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:27:19
    |
-30 | fn h(_x: &Foo) -> &isize { //~ ERROR missing lifetime specifier
+27 | fn h(_x: &Foo) -> &isize { //~ ERROR missing lifetime specifier
    |                   ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value, but the signature does not say which one of `_x`'s 2 lifetimes it is borrowed from
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:35:20
+  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:31:20
    |
-35 | fn i(_x: isize) -> &isize { //~ ERROR missing lifetime specifier
+31 | fn i(_x: isize) -> &isize { //~ ERROR missing lifetime specifier
    |                    ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments
    = help: consider giving it an explicit bounded or 'static lifetime
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:50:24
+  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:44:24
    |
-50 | fn j(_x: StaticStr) -> &isize { //~ ERROR missing lifetime specifier
+44 | fn j(_x: StaticStr) -> &isize { //~ ERROR missing lifetime specifier
    |                        ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments
    = help: consider giving it an explicit bounded or 'static lifetime
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:58:49
+  --> $DIR/lifetime-elision-return-type-requires-explicit-lifetime.rs:50:49
    |
-58 | fn k<'a, T: WithLifetime<'a>>(_x: T::Output) -> &isize {
+50 | fn k<'a, T: WithLifetime<'a>>(_x: T::Output) -> &isize {
    |                                                 ^ expected lifetime parameter
    |
    = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments
diff --git a/src/test/ui/lint-forbid-attr.rs b/src/test/ui/lint-forbid-attr.rs
index a23083b5c8c..65e01600c10 100644
--- a/src/test/ui/lint-forbid-attr.rs
+++ b/src/test/ui/lint-forbid-attr.rs
@@ -9,10 +9,8 @@
 // except according to those terms.
 
 #![forbid(deprecated)]
-//~^ NOTE `forbid` level set here
 
 #[allow(deprecated)]
 //~^ ERROR allow(deprecated) overruled by outer forbid(deprecated)
-//~| NOTE overruled by previous forbid
 fn main() {
 }
diff --git a/src/test/ui/lint-forbid-attr.stderr b/src/test/ui/lint-forbid-attr.stderr
index e2ecb6a201e..dcef7fb9ac0 100644
--- a/src/test/ui/lint-forbid-attr.stderr
+++ b/src/test/ui/lint-forbid-attr.stderr
@@ -1,10 +1,10 @@
 error[E0453]: allow(deprecated) overruled by outer forbid(deprecated)
-  --> $DIR/lint-forbid-attr.rs:14:9
+  --> $DIR/lint-forbid-attr.rs:13:9
    |
 11 | #![forbid(deprecated)]
    |           ---------- `forbid` level set here
-...
-14 | #[allow(deprecated)]
+12 | 
+13 | #[allow(deprecated)]
    |         ^^^^^^^^^^ overruled by previous forbid
 
 error: aborting due to previous error
diff --git a/src/test/ui/lint-output-format-2.rs b/src/test/ui/lint-output-format-2.rs
index 29d7c6caec4..5cd0084901f 100644
--- a/src/test/ui/lint-output-format-2.rs
+++ b/src/test/ui/lint-output-format-2.rs
@@ -19,7 +19,6 @@
 extern crate lint_output_format;
 use lint_output_format::{foo, bar};
 //~^ WARNING use of deprecated item 'lint_output_format::foo': text
-//~| NOTE #[warn(deprecated)] on by default
 
 #[rustc_error]
 fn main() { //~ ERROR: compilation successful
diff --git a/src/test/ui/lint-output-format-2.stderr b/src/test/ui/lint-output-format-2.stderr
index b68eced0c1a..d8c67c760db 100644
--- a/src/test/ui/lint-output-format-2.stderr
+++ b/src/test/ui/lint-output-format-2.stderr
@@ -7,18 +7,18 @@ warning: use of deprecated item 'lint_output_format::foo': text
    = note: #[warn(deprecated)] on by default
 
 warning: use of deprecated item 'lint_output_format::foo': text
-  --> $DIR/lint-output-format-2.rs:26:14
+  --> $DIR/lint-output-format-2.rs:25:14
    |
-26 |     let _x = foo();
+25 |     let _x = foo();
    |              ^^^
 
 error: compilation successful
-  --> $DIR/lint-output-format-2.rs:25:1
+  --> $DIR/lint-output-format-2.rs:24:1
    |
-25 | / fn main() { //~ ERROR: compilation successful
-26 | |     let _x = foo();
-27 | |     //~^ WARNING use of deprecated item 'lint_output_format::foo': text
-28 | |     let _y = bar();
-29 | | }
+24 | / fn main() { //~ ERROR: compilation successful
+25 | |     let _x = foo();
+26 | |     //~^ WARNING use of deprecated item 'lint_output_format::foo': text
+27 | |     let _y = bar();
+28 | | }
    | |_^
 
diff --git a/src/test/ui/lint-unconditional-recursion.rs b/src/test/ui/lint-unconditional-recursion.rs
index bee5a2c45be..bfc144615a2 100644
--- a/src/test/ui/lint-unconditional-recursion.rs
+++ b/src/test/ui/lint-unconditional-recursion.rs
@@ -9,11 +9,10 @@
 // except according to those terms.
 
 #![deny(unconditional_recursion)]
-//~^ NOTE lint level defined here
 
 #![allow(dead_code)]
 fn foo() { //~ ERROR function cannot return without recurring
-    foo(); //~ NOTE recursive call site
+    foo();
 }
 
 fn bar() {
@@ -24,9 +23,9 @@ fn bar() {
 
 fn baz() { //~ ERROR function cannot return without recurring
     if true {
-        baz() //~ NOTE recursive call site
+        baz()
     } else {
-        baz() //~ NOTE recursive call site
+        baz()
     }
 }
 
@@ -36,24 +35,24 @@ fn qux() {
 
 fn quz() -> bool { //~ ERROR function cannot return without recurring
     if true {
-        while quz() {} //~ NOTE recursive call site
+        while quz() {}
         true
     } else {
-        loop { quz(); } //~ NOTE recursive call site
+        loop { quz(); }
     }
 }
 
 // Trait method calls.
 trait Foo {
     fn bar(&self) { //~ ERROR function cannot return without recurring
-        self.bar() //~ NOTE recursive call site
+        self.bar()
     }
 }
 
 impl Foo for Box<Foo+'static> {
     fn bar(&self) { //~ ERROR function cannot return without recurring
         loop {
-            self.bar() //~ NOTE recursive call site
+            self.bar()
         }
     }
 }
@@ -61,7 +60,7 @@ impl Foo for Box<Foo+'static> {
 // Trait method call with integer fallback after method resolution.
 impl Foo for i32 {
     fn bar(&self) { //~ ERROR function cannot return without recurring
-        0.bar() //~ NOTE recursive call site
+        0.bar()
     }
 }
 
@@ -74,14 +73,14 @@ impl Foo for u32 {
 // Trait method calls via paths.
 trait Foo2 {
     fn bar(&self) { //~ ERROR function cannot return without recurring
-        Foo2::bar(self) //~ NOTE recursive call site
+        Foo2::bar(self)
     }
 }
 
 impl Foo2 for Box<Foo2+'static> {
     fn bar(&self) { //~ ERROR function cannot return without recurring
         loop {
-            Foo2::bar(self) //~ NOTE recursive call site
+            Foo2::bar(self)
         }
     }
 }
@@ -90,19 +89,19 @@ struct Baz;
 impl Baz {
     // Inherent method call.
     fn qux(&self) { //~ ERROR function cannot return without recurring
-        self.qux(); //~ NOTE recursive call site
+        self.qux();
     }
 
     // Inherent method call via path.
     fn as_ref(&self) -> &Self { //~ ERROR function cannot return without recurring
-        Baz::as_ref(self) //~ NOTE recursive call site
+        Baz::as_ref(self)
     }
 }
 
 // Trait method calls to impls via paths.
 impl Default for Baz {
     fn default() -> Baz { //~ ERROR function cannot return without recurring
-        let x = Default::default(); //~ NOTE recursive call site
+        let x = Default::default();
         x
     }
 }
@@ -111,14 +110,14 @@ impl Default for Baz {
 impl std::ops::Deref for Baz {
     type Target = ();
     fn deref(&self) -> &() { //~ ERROR function cannot return without recurring
-        &**self //~ NOTE recursive call site
+        &**self
     }
 }
 
 impl std::ops::Index<usize> for Baz {
     type Output = Baz;
     fn index(&self, x: usize) -> &Baz { //~ ERROR function cannot return without recurring
-        &self[x] //~ NOTE recursive call site
+        &self[x]
     }
 }
 
@@ -127,7 +126,7 @@ struct Quux;
 impl std::ops::Deref for Quux {
     type Target = Baz;
     fn deref(&self) -> &Baz { //~ ERROR function cannot return without recurring
-        self.as_ref() //~ NOTE recursive call site
+        self.as_ref()
     }
 }
 
diff --git a/src/test/ui/lint-unconditional-recursion.stderr b/src/test/ui/lint-unconditional-recursion.stderr
index fc8b9f87d80..40eaab1437f 100644
--- a/src/test/ui/lint-unconditional-recursion.stderr
+++ b/src/test/ui/lint-unconditional-recursion.stderr
@@ -1,9 +1,9 @@
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:15:1
+  --> $DIR/lint-unconditional-recursion.rs:14:1
    |
-15 | / fn foo() { //~ ERROR function cannot return without recurring
-16 | |     foo(); //~ NOTE recursive call site
-17 | | }
+14 | / fn foo() { //~ ERROR function cannot return without recurring
+15 | |     foo();
+16 | | }
    | |_^
    |
 note: lint level defined here
@@ -12,227 +12,227 @@ note: lint level defined here
 11 | #![deny(unconditional_recursion)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:16:5
+  --> $DIR/lint-unconditional-recursion.rs:15:5
    |
-16 |     foo(); //~ NOTE recursive call site
+15 |     foo();
    |     ^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:25:1
-   |
-25 | / fn baz() { //~ ERROR function cannot return without recurring
-26 | |     if true {
-27 | |         baz() //~ NOTE recursive call site
-28 | |     } else {
-29 | |         baz() //~ NOTE recursive call site
-30 | |     }
-31 | | }
+  --> $DIR/lint-unconditional-recursion.rs:24:1
+   |
+24 | / fn baz() { //~ ERROR function cannot return without recurring
+25 | |     if true {
+26 | |         baz()
+27 | |     } else {
+28 | |         baz()
+29 | |     }
+30 | | }
    | |_^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:27:9
+  --> $DIR/lint-unconditional-recursion.rs:26:9
    |
-27 |         baz() //~ NOTE recursive call site
+26 |         baz()
    |         ^^^^^
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:29:9
+  --> $DIR/lint-unconditional-recursion.rs:28:9
    |
-29 |         baz() //~ NOTE recursive call site
+28 |         baz()
    |         ^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:37:1
+  --> $DIR/lint-unconditional-recursion.rs:36:1
    |
-37 | / fn quz() -> bool { //~ ERROR function cannot return without recurring
-38 | |     if true {
-39 | |         while quz() {} //~ NOTE recursive call site
-40 | |         true
+36 | / fn quz() -> bool { //~ ERROR function cannot return without recurring
+37 | |     if true {
+38 | |         while quz() {}
+39 | |         true
 ...  |
-43 | |     }
-44 | | }
+42 | |     }
+43 | | }
    | |_^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:39:15
+  --> $DIR/lint-unconditional-recursion.rs:38:15
    |
-39 |         while quz() {} //~ NOTE recursive call site
+38 |         while quz() {}
    |               ^^^^^
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:42:16
+  --> $DIR/lint-unconditional-recursion.rs:41:16
    |
-42 |         loop { quz(); } //~ NOTE recursive call site
+41 |         loop { quz(); }
    |                ^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:48:5
+  --> $DIR/lint-unconditional-recursion.rs:47:5
    |
-48 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
-49 | |         self.bar() //~ NOTE recursive call site
-50 | |     }
+47 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
+48 | |         self.bar()
+49 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:49:9
+  --> $DIR/lint-unconditional-recursion.rs:48:9
    |
-49 |         self.bar() //~ NOTE recursive call site
+48 |         self.bar()
    |         ^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:54:5
+  --> $DIR/lint-unconditional-recursion.rs:53:5
    |
-54 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
-55 | |         loop {
-56 | |             self.bar() //~ NOTE recursive call site
-57 | |         }
-58 | |     }
+53 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
+54 | |         loop {
+55 | |             self.bar()
+56 | |         }
+57 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:56:13
+  --> $DIR/lint-unconditional-recursion.rs:55:13
    |
-56 |             self.bar() //~ NOTE recursive call site
+55 |             self.bar()
    |             ^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:63:5
+  --> $DIR/lint-unconditional-recursion.rs:62:5
    |
-63 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
-64 | |         0.bar() //~ NOTE recursive call site
-65 | |     }
+62 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
+63 | |         0.bar()
+64 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:64:9
+  --> $DIR/lint-unconditional-recursion.rs:63:9
    |
-64 |         0.bar() //~ NOTE recursive call site
+63 |         0.bar()
    |         ^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:76:5
+  --> $DIR/lint-unconditional-recursion.rs:75:5
    |
-76 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
-77 | |         Foo2::bar(self) //~ NOTE recursive call site
-78 | |     }
+75 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
+76 | |         Foo2::bar(self)
+77 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:77:9
+  --> $DIR/lint-unconditional-recursion.rs:76:9
    |
-77 |         Foo2::bar(self) //~ NOTE recursive call site
+76 |         Foo2::bar(self)
    |         ^^^^^^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:82:5
+  --> $DIR/lint-unconditional-recursion.rs:81:5
    |
-82 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
-83 | |         loop {
-84 | |             Foo2::bar(self) //~ NOTE recursive call site
-85 | |         }
-86 | |     }
+81 | /     fn bar(&self) { //~ ERROR function cannot return without recurring
+82 | |         loop {
+83 | |             Foo2::bar(self)
+84 | |         }
+85 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:84:13
+  --> $DIR/lint-unconditional-recursion.rs:83:13
    |
-84 |             Foo2::bar(self) //~ NOTE recursive call site
+83 |             Foo2::bar(self)
    |             ^^^^^^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:92:5
+  --> $DIR/lint-unconditional-recursion.rs:91:5
    |
-92 | /     fn qux(&self) { //~ ERROR function cannot return without recurring
-93 | |         self.qux(); //~ NOTE recursive call site
-94 | |     }
+91 | /     fn qux(&self) { //~ ERROR function cannot return without recurring
+92 | |         self.qux();
+93 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:93:9
+  --> $DIR/lint-unconditional-recursion.rs:92:9
    |
-93 |         self.qux(); //~ NOTE recursive call site
+92 |         self.qux();
    |         ^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-  --> $DIR/lint-unconditional-recursion.rs:97:5
+  --> $DIR/lint-unconditional-recursion.rs:96:5
    |
-97 | /     fn as_ref(&self) -> &Self { //~ ERROR function cannot return without recurring
-98 | |         Baz::as_ref(self) //~ NOTE recursive call site
-99 | |     }
+96 | /     fn as_ref(&self) -> &Self { //~ ERROR function cannot return without recurring
+97 | |         Baz::as_ref(self)
+98 | |     }
    | |_____^
    |
 note: recursive call site
-  --> $DIR/lint-unconditional-recursion.rs:98:9
+  --> $DIR/lint-unconditional-recursion.rs:97:9
    |
-98 |         Baz::as_ref(self) //~ NOTE recursive call site
+97 |         Baz::as_ref(self)
    |         ^^^^^^^^^^^^^^^^^
    = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-   --> $DIR/lint-unconditional-recursion.rs:104:5
+   --> $DIR/lint-unconditional-recursion.rs:103:5
     |
-104 | /     fn default() -> Baz { //~ ERROR function cannot return without recurring
-105 | |         let x = Default::default(); //~ NOTE recursive call site
-106 | |         x
-107 | |     }
+103 | /     fn default() -> Baz { //~ ERROR function cannot return without recurring
+104 | |         let x = Default::default();
+105 | |         x
+106 | |     }
     | |_____^
     |
 note: recursive call site
-   --> $DIR/lint-unconditional-recursion.rs:105:17
+   --> $DIR/lint-unconditional-recursion.rs:104:17
     |
-105 |         let x = Default::default(); //~ NOTE recursive call site
+104 |         let x = Default::default();
     |                 ^^^^^^^^^^^^^^^^^^
     = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-   --> $DIR/lint-unconditional-recursion.rs:113:5
+   --> $DIR/lint-unconditional-recursion.rs:112:5
     |
-113 | /     fn deref(&self) -> &() { //~ ERROR function cannot return without recurring
-114 | |         &**self //~ NOTE recursive call site
-115 | |     }
+112 | /     fn deref(&self) -> &() { //~ ERROR function cannot return without recurring
+113 | |         &**self
+114 | |     }
     | |_____^
     |
 note: recursive call site
-   --> $DIR/lint-unconditional-recursion.rs:114:10
+   --> $DIR/lint-unconditional-recursion.rs:113:10
     |
-114 |         &**self //~ NOTE recursive call site
+113 |         &**self
     |          ^^^^^^
     = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-   --> $DIR/lint-unconditional-recursion.rs:120:5
+   --> $DIR/lint-unconditional-recursion.rs:119:5
     |
-120 | /     fn index(&self, x: usize) -> &Baz { //~ ERROR function cannot return without recurring
-121 | |         &self[x] //~ NOTE recursive call site
-122 | |     }
+119 | /     fn index(&self, x: usize) -> &Baz { //~ ERROR function cannot return without recurring
+120 | |         &self[x]
+121 | |     }
     | |_____^
     |
 note: recursive call site
-   --> $DIR/lint-unconditional-recursion.rs:121:10
+   --> $DIR/lint-unconditional-recursion.rs:120:10
     |
-121 |         &self[x] //~ NOTE recursive call site
+120 |         &self[x]
     |          ^^^^^^^
     = help: a `loop` may express intention better if this is on purpose
 
 error: function cannot return without recurring
-   --> $DIR/lint-unconditional-recursion.rs:129:5
+   --> $DIR/lint-unconditional-recursion.rs:128:5
     |
-129 | /     fn deref(&self) -> &Baz { //~ ERROR function cannot return without recurring
-130 | |         self.as_ref() //~ NOTE recursive call site
-131 | |     }
+128 | /     fn deref(&self) -> &Baz { //~ ERROR function cannot return without recurring
+129 | |         self.as_ref()
+130 | |     }
     | |_____^
     |
 note: recursive call site
-   --> $DIR/lint-unconditional-recursion.rs:130:9
+   --> $DIR/lint-unconditional-recursion.rs:129:9
     |
-130 |         self.as_ref() //~ NOTE recursive call site
+129 |         self.as_ref()
     |         ^^^^
     = help: a `loop` may express intention better if this is on purpose
 
diff --git a/src/test/ui/liveness-return-last-stmt-semi.rs b/src/test/ui/liveness-return-last-stmt-semi.rs
index ada91c38d48..663c0275b82 100644
--- a/src/test/ui/liveness-return-last-stmt-semi.rs
+++ b/src/test/ui/liveness-return-last-stmt-semi.rs
@@ -12,12 +12,11 @@
 
 macro_rules! test { () => { fn foo() -> i32 { 1; } } }
                                            //~^ ERROR mismatched types
-                                           //~| HELP consider removing this semicolon
 
 fn no_return() -> i32 {} //~ ERROR mismatched types
 
 fn bar(x: u32) -> u32 { //~ ERROR mismatched types
-    x * 2; //~ HELP consider removing this semicolon
+    x * 2;
 }
 
 fn baz(x: u64) -> u32 { //~ ERROR mismatched types
diff --git a/src/test/ui/liveness-return-last-stmt-semi.stderr b/src/test/ui/liveness-return-last-stmt-semi.stderr
index f27091a115d..2057e14d55f 100644
--- a/src/test/ui/liveness-return-last-stmt-semi.stderr
+++ b/src/test/ui/liveness-return-last-stmt-semi.stderr
@@ -7,41 +7,41 @@ error[E0308]: mismatched types
    |                                             |  help: consider removing this semicolon
    |                                             expected i32, found ()
 ...
-28 |     test!();
+27 |     test!();
    |     -------- in this macro invocation
    |
    = note: expected type `i32`
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/liveness-return-last-stmt-semi.rs:17:23
+  --> $DIR/liveness-return-last-stmt-semi.rs:16:23
    |
-17 | fn no_return() -> i32 {} //~ ERROR mismatched types
+16 | fn no_return() -> i32 {} //~ ERROR mismatched types
    |                       ^^ expected i32, found ()
    |
    = note: expected type `i32`
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/liveness-return-last-stmt-semi.rs:19:23
+  --> $DIR/liveness-return-last-stmt-semi.rs:18:23
    |
-19 |   fn bar(x: u32) -> u32 { //~ ERROR mismatched types
+18 |   fn bar(x: u32) -> u32 { //~ ERROR mismatched types
    |  _______________________^
-20 | |     x * 2; //~ HELP consider removing this semicolon
+19 | |     x * 2;
    | |          - help: consider removing this semicolon
-21 | | }
+20 | | }
    | |_^ expected u32, found ()
    |
    = note: expected type `u32`
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/liveness-return-last-stmt-semi.rs:23:23
+  --> $DIR/liveness-return-last-stmt-semi.rs:22:23
    |
-23 |   fn baz(x: u64) -> u32 { //~ ERROR mismatched types
+22 |   fn baz(x: u64) -> u32 { //~ ERROR mismatched types
    |  _______________________^
-24 | |     x * 2;
-25 | | }
+23 | |     x * 2;
+24 | | }
    | |_^ expected u32, found ()
    |
    = note: expected type `u32`
diff --git a/src/test/ui/loops-reject-duplicate-labels-2.rs b/src/test/ui/loops-reject-duplicate-labels-2.rs
index ca18ca3796a..598c7370b89 100644
--- a/src/test/ui/loops-reject-duplicate-labels-2.rs
+++ b/src/test/ui/loops-reject-duplicate-labels-2.rs
@@ -19,31 +19,23 @@
 // https://internals.rust-lang.org/t/psa-rejecting-duplicate-loop-labels/1833
 
 pub fn foo() {
-    { 'fl: for _ in 0..10 { break; } }   //~ NOTE first declared here
+    { 'fl: for _ in 0..10 { break; } }
     { 'fl: loop { break; } }             //~ WARN label name `'fl` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'fl already in scope
-    { 'lf: loop { break; } }             //~ NOTE first declared here
+    { 'lf: loop { break; } }
     { 'lf: for _ in 0..10 { break; } }   //~ WARN label name `'lf` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'lf already in scope
-    { 'wl: while 2 > 1 { break; } }      //~ NOTE first declared here
+    { 'wl: while 2 > 1 { break; } }
     { 'wl: loop { break; } }             //~ WARN label name `'wl` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'wl already in scope
-    { 'lw: loop { break; } }             //~ NOTE first declared here
+    { 'lw: loop { break; } }
     { 'lw: while 2 > 1 { break; } }      //~ WARN label name `'lw` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'lw already in scope
-    { 'fw: for _ in 0..10 { break; } }   //~ NOTE first declared here
+    { 'fw: for _ in 0..10 { break; } }
     { 'fw: while 2 > 1 { break; } }      //~ WARN label name `'fw` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'fw already in scope
-    { 'wf: while 2 > 1 { break; } }      //~ NOTE first declared here
+    { 'wf: while 2 > 1 { break; } }
     { 'wf: for _ in 0..10 { break; } }   //~ WARN label name `'wf` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'wf already in scope
-    { 'tl: while let Some(_) = None::<i32> { break; } } //~ NOTE first declared here
+    { 'tl: while let Some(_) = None::<i32> { break; } }
     { 'tl: loop { break; } }             //~ WARN label name `'tl` shadows a label name that is already in scope
-    //~^ NOTE lifetime 'tl already in scope
-    { 'lt: loop { break; } }             //~ NOTE first declared here
+    { 'lt: loop { break; } }
     { 'lt: while let Some(_) = None::<i32> { break; } }
                                          //~^ WARN label name `'lt` shadows a label name that is already in scope
-                                         //~| NOTE lifetime 'lt already in scope
 }
 
 #[rustc_error]
diff --git a/src/test/ui/loops-reject-duplicate-labels-2.stderr b/src/test/ui/loops-reject-duplicate-labels-2.stderr
index 4bd318d5aa1..488046b71b3 100644
--- a/src/test/ui/loops-reject-duplicate-labels-2.stderr
+++ b/src/test/ui/loops-reject-duplicate-labels-2.stderr
@@ -1,72 +1,72 @@
 warning: label name `'fl` shadows a label name that is already in scope
   --> $DIR/loops-reject-duplicate-labels-2.rs:23:7
    |
-22 |     { 'fl: for _ in 0..10 { break; } }   //~ NOTE first declared here
+22 |     { 'fl: for _ in 0..10 { break; } }
    |       --- first declared here
 23 |     { 'fl: loop { break; } }             //~ WARN label name `'fl` shadows a label name that is already in scope
    |       ^^^ lifetime 'fl already in scope
 
 warning: label name `'lf` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:26:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:25:7
    |
-25 |     { 'lf: loop { break; } }             //~ NOTE first declared here
+24 |     { 'lf: loop { break; } }
    |       --- first declared here
-26 |     { 'lf: for _ in 0..10 { break; } }   //~ WARN label name `'lf` shadows a label name that is already in scope
+25 |     { 'lf: for _ in 0..10 { break; } }   //~ WARN label name `'lf` shadows a label name that is already in scope
    |       ^^^ lifetime 'lf already in scope
 
 warning: label name `'wl` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:29:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:27:7
    |
-28 |     { 'wl: while 2 > 1 { break; } }      //~ NOTE first declared here
+26 |     { 'wl: while 2 > 1 { break; } }
    |       --- first declared here
-29 |     { 'wl: loop { break; } }             //~ WARN label name `'wl` shadows a label name that is already in scope
+27 |     { 'wl: loop { break; } }             //~ WARN label name `'wl` shadows a label name that is already in scope
    |       ^^^ lifetime 'wl already in scope
 
 warning: label name `'lw` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:32:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:29:7
    |
-31 |     { 'lw: loop { break; } }             //~ NOTE first declared here
+28 |     { 'lw: loop { break; } }
    |       --- first declared here
-32 |     { 'lw: while 2 > 1 { break; } }      //~ WARN label name `'lw` shadows a label name that is already in scope
+29 |     { 'lw: while 2 > 1 { break; } }      //~ WARN label name `'lw` shadows a label name that is already in scope
    |       ^^^ lifetime 'lw already in scope
 
 warning: label name `'fw` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:35:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:31:7
    |
-34 |     { 'fw: for _ in 0..10 { break; } }   //~ NOTE first declared here
+30 |     { 'fw: for _ in 0..10 { break; } }
    |       --- first declared here
-35 |     { 'fw: while 2 > 1 { break; } }      //~ WARN label name `'fw` shadows a label name that is already in scope
+31 |     { 'fw: while 2 > 1 { break; } }      //~ WARN label name `'fw` shadows a label name that is already in scope
    |       ^^^ lifetime 'fw already in scope
 
 warning: label name `'wf` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:38:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:33:7
    |
-37 |     { 'wf: while 2 > 1 { break; } }      //~ NOTE first declared here
+32 |     { 'wf: while 2 > 1 { break; } }
    |       --- first declared here
-38 |     { 'wf: for _ in 0..10 { break; } }   //~ WARN label name `'wf` shadows a label name that is already in scope
+33 |     { 'wf: for _ in 0..10 { break; } }   //~ WARN label name `'wf` shadows a label name that is already in scope
    |       ^^^ lifetime 'wf already in scope
 
 warning: label name `'tl` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:41:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:35:7
    |
-40 |     { 'tl: while let Some(_) = None::<i32> { break; } } //~ NOTE first declared here
+34 |     { 'tl: while let Some(_) = None::<i32> { break; } }
    |       --- first declared here
-41 |     { 'tl: loop { break; } }             //~ WARN label name `'tl` shadows a label name that is already in scope
+35 |     { 'tl: loop { break; } }             //~ WARN label name `'tl` shadows a label name that is already in scope
    |       ^^^ lifetime 'tl already in scope
 
 warning: label name `'lt` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels-2.rs:44:7
+  --> $DIR/loops-reject-duplicate-labels-2.rs:37:7
    |
-43 |     { 'lt: loop { break; } }             //~ NOTE first declared here
+36 |     { 'lt: loop { break; } }
    |       --- first declared here
-44 |     { 'lt: while let Some(_) = None::<i32> { break; } }
+37 |     { 'lt: while let Some(_) = None::<i32> { break; } }
    |       ^^^ lifetime 'lt already in scope
 
 error: compilation successful
-  --> $DIR/loops-reject-duplicate-labels-2.rs:50:1
+  --> $DIR/loops-reject-duplicate-labels-2.rs:42:1
    |
-50 | / pub fn main() { //~ ERROR compilation successful
-51 | |     foo();
-52 | | }
+42 | / pub fn main() { //~ ERROR compilation successful
+43 | |     foo();
+44 | | }
    | |_^
 
diff --git a/src/test/ui/loops-reject-duplicate-labels.rs b/src/test/ui/loops-reject-duplicate-labels.rs
index 31f89493896..d768b002ab1 100644
--- a/src/test/ui/loops-reject-duplicate-labels.rs
+++ b/src/test/ui/loops-reject-duplicate-labels.rs
@@ -16,32 +16,24 @@
 // This is testing the exact cases that are in the issue description.
 
 fn foo() {
-    'fl: for _ in 0..10 { break; } //~ NOTE first declared here
+    'fl: for _ in 0..10 { break; }
     'fl: loop { break; }           //~ WARN label name `'fl` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'fl already in scope
 
-    'lf: loop { break; }           //~ NOTE first declared here
+    'lf: loop { break; }
     'lf: for _ in 0..10 { break; } //~ WARN label name `'lf` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'lf already in scope
-    'wl: while 2 > 1 { break; }    //~ NOTE first declared here
+    'wl: while 2 > 1 { break; }
     'wl: loop { break; }           //~ WARN label name `'wl` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'wl already in scope
-    'lw: loop { break; }           //~ NOTE first declared here
+    'lw: loop { break; }
     'lw: while 2 > 1 { break; }    //~ WARN label name `'lw` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'lw already in scope
-    'fw: for _ in 0..10 { break; } //~ NOTE first declared here
+    'fw: for _ in 0..10 { break; }
     'fw: while 2 > 1 { break; }    //~ WARN label name `'fw` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'fw already in scope
-    'wf: while 2 > 1 { break; }    //~ NOTE first declared here
+    'wf: while 2 > 1 { break; }
     'wf: for _ in 0..10 { break; } //~ WARN label name `'wf` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'wf already in scope
-    'tl: while let Some(_) = None::<i32> { break; } //~ NOTE first declared here
+    'tl: while let Some(_) = None::<i32> { break; }
     'tl: loop { break; }           //~ WARN label name `'tl` shadows a label name that is already in scope
-                                   //~^ NOTE lifetime 'tl already in scope
-    'lt: loop { break; }           //~ NOTE first declared here
+    'lt: loop { break; }
     'lt: while let Some(_) = None::<i32> { break; }
                                    //~^ WARN label name `'lt` shadows a label name that is already in scope
-                                   //~| NOTE lifetime 'lt already in scope
 }
 
 // Note however that it is okay for the same label to be reused in
diff --git a/src/test/ui/loops-reject-duplicate-labels.stderr b/src/test/ui/loops-reject-duplicate-labels.stderr
index f97be84f896..3c287138c92 100644
--- a/src/test/ui/loops-reject-duplicate-labels.stderr
+++ b/src/test/ui/loops-reject-duplicate-labels.stderr
@@ -1,75 +1,75 @@
 warning: label name `'fl` shadows a label name that is already in scope
   --> $DIR/loops-reject-duplicate-labels.rs:20:5
    |
-19 |     'fl: for _ in 0..10 { break; } //~ NOTE first declared here
+19 |     'fl: for _ in 0..10 { break; }
    |     --- first declared here
 20 |     'fl: loop { break; }           //~ WARN label name `'fl` shadows a label name that is already in scope
    |     ^^^ lifetime 'fl already in scope
 
 warning: label name `'lf` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:24:5
+  --> $DIR/loops-reject-duplicate-labels.rs:23:5
    |
-23 |     'lf: loop { break; }           //~ NOTE first declared here
+22 |     'lf: loop { break; }
    |     --- first declared here
-24 |     'lf: for _ in 0..10 { break; } //~ WARN label name `'lf` shadows a label name that is already in scope
+23 |     'lf: for _ in 0..10 { break; } //~ WARN label name `'lf` shadows a label name that is already in scope
    |     ^^^ lifetime 'lf already in scope
 
 warning: label name `'wl` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:27:5
+  --> $DIR/loops-reject-duplicate-labels.rs:25:5
    |
-26 |     'wl: while 2 > 1 { break; }    //~ NOTE first declared here
+24 |     'wl: while 2 > 1 { break; }
    |     --- first declared here
-27 |     'wl: loop { break; }           //~ WARN label name `'wl` shadows a label name that is already in scope
+25 |     'wl: loop { break; }           //~ WARN label name `'wl` shadows a label name that is already in scope
    |     ^^^ lifetime 'wl already in scope
 
 warning: label name `'lw` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:30:5
+  --> $DIR/loops-reject-duplicate-labels.rs:27:5
    |
-29 |     'lw: loop { break; }           //~ NOTE first declared here
+26 |     'lw: loop { break; }
    |     --- first declared here
-30 |     'lw: while 2 > 1 { break; }    //~ WARN label name `'lw` shadows a label name that is already in scope
+27 |     'lw: while 2 > 1 { break; }    //~ WARN label name `'lw` shadows a label name that is already in scope
    |     ^^^ lifetime 'lw already in scope
 
 warning: label name `'fw` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:33:5
+  --> $DIR/loops-reject-duplicate-labels.rs:29:5
    |
-32 |     'fw: for _ in 0..10 { break; } //~ NOTE first declared here
+28 |     'fw: for _ in 0..10 { break; }
    |     --- first declared here
-33 |     'fw: while 2 > 1 { break; }    //~ WARN label name `'fw` shadows a label name that is already in scope
+29 |     'fw: while 2 > 1 { break; }    //~ WARN label name `'fw` shadows a label name that is already in scope
    |     ^^^ lifetime 'fw already in scope
 
 warning: label name `'wf` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:36:5
+  --> $DIR/loops-reject-duplicate-labels.rs:31:5
    |
-35 |     'wf: while 2 > 1 { break; }    //~ NOTE first declared here
+30 |     'wf: while 2 > 1 { break; }
    |     --- first declared here
-36 |     'wf: for _ in 0..10 { break; } //~ WARN label name `'wf` shadows a label name that is already in scope
+31 |     'wf: for _ in 0..10 { break; } //~ WARN label name `'wf` shadows a label name that is already in scope
    |     ^^^ lifetime 'wf already in scope
 
 warning: label name `'tl` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:39:5
+  --> $DIR/loops-reject-duplicate-labels.rs:33:5
    |
-38 |     'tl: while let Some(_) = None::<i32> { break; } //~ NOTE first declared here
+32 |     'tl: while let Some(_) = None::<i32> { break; }
    |     --- first declared here
-39 |     'tl: loop { break; }           //~ WARN label name `'tl` shadows a label name that is already in scope
+33 |     'tl: loop { break; }           //~ WARN label name `'tl` shadows a label name that is already in scope
    |     ^^^ lifetime 'tl already in scope
 
 warning: label name `'lt` shadows a label name that is already in scope
-  --> $DIR/loops-reject-duplicate-labels.rs:42:5
+  --> $DIR/loops-reject-duplicate-labels.rs:35:5
    |
-41 |     'lt: loop { break; }           //~ NOTE first declared here
+34 |     'lt: loop { break; }
    |     --- first declared here
-42 |     'lt: while let Some(_) = None::<i32> { break; }
+35 |     'lt: while let Some(_) = None::<i32> { break; }
    |     ^^^ lifetime 'lt already in scope
 
 error: compilation successful
-  --> $DIR/loops-reject-duplicate-labels.rs:57:1
+  --> $DIR/loops-reject-duplicate-labels.rs:49:1
    |
-57 | / pub fn main() { //~ ERROR compilation successful
-58 | |     let s = S;
-59 | |     s.m1();
-60 | |     s.m2();
-61 | |     foo();
-62 | | }
+49 | / pub fn main() { //~ ERROR compilation successful
+50 | |     let s = S;
+51 | |     s.m1();
+52 | |     s.m2();
+53 | |     foo();
+54 | | }
    | |_^
 
diff --git a/src/test/ui/loops-reject-labels-shadowing-lifetimes.rs b/src/test/ui/loops-reject-labels-shadowing-lifetimes.rs
index 9a735f9c97c..74da125d575 100644
--- a/src/test/ui/loops-reject-labels-shadowing-lifetimes.rs
+++ b/src/test/ui/loops-reject-labels-shadowing-lifetimes.rs
@@ -16,10 +16,9 @@
 #![allow(dead_code, unused_variables)]
 
 fn foo() {
-    fn foo<'a>() { //~ NOTE first declared here
+    fn foo<'a>() {
         'a: loop { break 'a; }
         //~^ WARN label name `'a` shadows a lifetime name that is already in scope
-        //~| NOTE lifetime 'a already in scope
     }
 
     struct Struct<'b, 'c> { _f: &'b i8, _g: &'c i8 }
@@ -41,87 +40,75 @@ fn foo() {
         }
     }
 
-    impl<'bad, 'c> Struct<'bad, 'c> { //~ NOTE first declared here
+    impl<'bad, 'c> Struct<'bad, 'c> {
         fn meth_bad(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
 
-    impl<'b, 'bad> Struct<'b, 'bad> { //~ NOTE first declared here
+    impl<'b, 'bad> Struct<'b, 'bad> {
         fn meth_bad2(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
 
     impl<'b, 'c> Struct<'b, 'c> {
-        fn meth_bad3<'bad>(x: &'bad i8) { //~ NOTE first declared here
+        fn meth_bad3<'bad>(x: &'bad i8) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
 
         fn meth_bad4<'a,'bad>(x: &'a i8, y: &'bad i8) {
-            //~^ NOTE first declared here
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
 
-    impl <'bad, 'e> Enum<'bad, 'e> { //~ NOTE first declared here
+    impl <'bad, 'e> Enum<'bad, 'e> {
         fn meth_bad(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
-    impl <'d, 'bad> Enum<'d, 'bad> { //~ NOTE first declared here
+    impl <'d, 'bad> Enum<'d, 'bad> {
         fn meth_bad2(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
     impl <'d, 'e> Enum<'d, 'e> {
-        fn meth_bad3<'bad>(x: &'bad i8) { //~ NOTE first declared here
+        fn meth_bad3<'bad>(x: &'bad i8) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
 
-        fn meth_bad4<'a,'bad>(x: &'bad i8) { //~ NOTE first declared here
+        fn meth_bad4<'a,'bad>(x: &'bad i8) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
 
-    trait HasDefaultMethod1<'bad> { //~ NOTE first declared here
+    trait HasDefaultMethod1<'bad> {
         fn meth_okay() {
             'c: loop { break 'c; }
         }
         fn meth_bad(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
-    trait HasDefaultMethod2<'a,'bad> { //~ NOTE first declared here
+    trait HasDefaultMethod2<'a,'bad> {
         fn meth_bad(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
     trait HasDefaultMethod3<'a,'b> {
-        fn meth_bad<'bad>(&self) { //~ NOTE first declared here
+        fn meth_bad<'bad>(&self) {
             'bad: loop { break 'bad; }
             //~^ WARN label name `'bad` shadows a lifetime name that is already in scope
-            //~| NOTE lifetime 'bad already in scope
         }
     }
 }
diff --git a/src/test/ui/loops-reject-labels-shadowing-lifetimes.stderr b/src/test/ui/loops-reject-labels-shadowing-lifetimes.stderr
index bd2b439b70f..07dbb68725d 100644
--- a/src/test/ui/loops-reject-labels-shadowing-lifetimes.stderr
+++ b/src/test/ui/loops-reject-labels-shadowing-lifetimes.stderr
@@ -1,111 +1,110 @@
 warning: label name `'a` shadows a lifetime name that is already in scope
   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:20:9
    |
-19 |     fn foo<'a>() { //~ NOTE first declared here
+19 |     fn foo<'a>() {
    |            -- first declared here
 20 |         'a: loop { break 'a; }
    |         ^^ lifetime 'a already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:46:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:45:13
    |
-44 |     impl<'bad, 'c> Struct<'bad, 'c> { //~ NOTE first declared here
+43 |     impl<'bad, 'c> Struct<'bad, 'c> {
    |          ---- first declared here
-45 |         fn meth_bad(&self) {
-46 |             'bad: loop { break 'bad; }
+44 |         fn meth_bad(&self) {
+45 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:54:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:52:13
    |
-52 |     impl<'b, 'bad> Struct<'b, 'bad> { //~ NOTE first declared here
+50 |     impl<'b, 'bad> Struct<'b, 'bad> {
    |              ---- first declared here
-53 |         fn meth_bad2(&self) {
-54 |             'bad: loop { break 'bad; }
+51 |         fn meth_bad2(&self) {
+52 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:62:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:59:13
    |
-61 |         fn meth_bad3<'bad>(x: &'bad i8) { //~ NOTE first declared here
+58 |         fn meth_bad3<'bad>(x: &'bad i8) {
    |                      ---- first declared here
-62 |             'bad: loop { break 'bad; }
+59 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:69:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:64:13
    |
-67 |         fn meth_bad4<'a,'bad>(x: &'a i8, y: &'bad i8) {
+63 |         fn meth_bad4<'a,'bad>(x: &'a i8, y: &'bad i8) {
    |                         ---- first declared here
-68 |             //~^ NOTE first declared here
-69 |             'bad: loop { break 'bad; }
+64 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:77:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:71:13
    |
-75 |     impl <'bad, 'e> Enum<'bad, 'e> { //~ NOTE first declared here
+69 |     impl <'bad, 'e> Enum<'bad, 'e> {
    |           ---- first declared here
-76 |         fn meth_bad(&self) {
-77 |             'bad: loop { break 'bad; }
+70 |         fn meth_bad(&self) {
+71 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:84:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:77:13
    |
-82 |     impl <'d, 'bad> Enum<'d, 'bad> { //~ NOTE first declared here
+75 |     impl <'d, 'bad> Enum<'d, 'bad> {
    |               ---- first declared here
-83 |         fn meth_bad2(&self) {
-84 |             'bad: loop { break 'bad; }
+76 |         fn meth_bad2(&self) {
+77 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:91:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:83:13
    |
-90 |         fn meth_bad3<'bad>(x: &'bad i8) { //~ NOTE first declared here
+82 |         fn meth_bad3<'bad>(x: &'bad i8) {
    |                      ---- first declared here
-91 |             'bad: loop { break 'bad; }
+83 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:97:13
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:88:13
    |
-96 |         fn meth_bad4<'a,'bad>(x: &'bad i8) { //~ NOTE first declared here
+87 |         fn meth_bad4<'a,'bad>(x: &'bad i8) {
    |                         ---- first declared here
-97 |             'bad: loop { break 'bad; }
+88 |             'bad: loop { break 'bad; }
    |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:108:13
-    |
-103 |     trait HasDefaultMethod1<'bad> { //~ NOTE first declared here
-    |                             ---- first declared here
+  --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:98:13
+   |
+93 |     trait HasDefaultMethod1<'bad> {
+   |                             ---- first declared here
 ...
-108 |             'bad: loop { break 'bad; }
-    |             ^^^^ lifetime 'bad already in scope
+98 |             'bad: loop { break 'bad; }
+   |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:115:13
+   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:104:13
     |
-113 |     trait HasDefaultMethod2<'a,'bad> { //~ NOTE first declared here
+102 |     trait HasDefaultMethod2<'a,'bad> {
     |                                ---- first declared here
-114 |         fn meth_bad(&self) {
-115 |             'bad: loop { break 'bad; }
+103 |         fn meth_bad(&self) {
+104 |             'bad: loop { break 'bad; }
     |             ^^^^ lifetime 'bad already in scope
 
 warning: label name `'bad` shadows a lifetime name that is already in scope
-   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:122:13
+   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:110:13
     |
-121 |         fn meth_bad<'bad>(&self) { //~ NOTE first declared here
+109 |         fn meth_bad<'bad>(&self) {
     |                     ---- first declared here
-122 |             'bad: loop { break 'bad; }
+110 |             'bad: loop { break 'bad; }
     |             ^^^^ lifetime 'bad already in scope
 
 error: compilation successful
-   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:130:1
+   --> $DIR/loops-reject-labels-shadowing-lifetimes.rs:117:1
     |
-130 | / pub fn main() { //~ ERROR compilation successful
-131 | |     foo();
-132 | | }
+117 | / pub fn main() { //~ ERROR compilation successful
+118 | |     foo();
+119 | | }
     | |_^
 
diff --git a/src/test/ui/loops-reject-lifetime-shadowing-label.rs b/src/test/ui/loops-reject-lifetime-shadowing-label.rs
index 0a90917d975..077e57c9579 100644
--- a/src/test/ui/loops-reject-lifetime-shadowing-label.rs
+++ b/src/test/ui/loops-reject-lifetime-shadowing-label.rs
@@ -27,10 +27,9 @@ fn foo() {
 
     let z = 3_i8;
 
-    'a: loop { //~ NOTE first declared here
+    'a: loop {
         let b = Box::new(|x: &i8| *x) as Box<for <'a> Fn(&'a i8) -> i8>;
         //~^ WARN lifetime name `'a` shadows a label name that is already in scope
-        //~| NOTE lifetime 'a already in scope
         assert_eq!((*b)(&z), z);
         break 'a;
     }
diff --git a/src/test/ui/loops-reject-lifetime-shadowing-label.stderr b/src/test/ui/loops-reject-lifetime-shadowing-label.stderr
index 7671c505e1b..d44b1b7b623 100644
--- a/src/test/ui/loops-reject-lifetime-shadowing-label.stderr
+++ b/src/test/ui/loops-reject-lifetime-shadowing-label.stderr
@@ -1,16 +1,16 @@
 warning: lifetime name `'a` shadows a label name that is already in scope
   --> $DIR/loops-reject-lifetime-shadowing-label.rs:31:51
    |
-30 |     'a: loop { //~ NOTE first declared here
+30 |     'a: loop {
    |     -- first declared here
 31 |         let b = Box::new(|x: &i8| *x) as Box<for <'a> Fn(&'a i8) -> i8>;
    |                                                   ^^ lifetime 'a already in scope
 
 error: compilation successful
-  --> $DIR/loops-reject-lifetime-shadowing-label.rs:40:1
+  --> $DIR/loops-reject-lifetime-shadowing-label.rs:39:1
    |
-40 | / pub fn main() { //~ ERROR compilation successful
-41 | |     foo();
-42 | | }
+39 | / pub fn main() { //~ ERROR compilation successful
+40 | |     foo();
+41 | | }
    | |_^
 
diff --git a/src/test/ui/macro-context.rs b/src/test/ui/macro-context.rs
index cc714a6e431..56b3d5d0def 100644
--- a/src/test/ui/macro-context.rs
+++ b/src/test/ui/macro-context.rs
@@ -17,11 +17,11 @@ macro_rules! m {
 }
 
 fn main() {
-    let a: m!();    //~ NOTE the usage of `m!` is likely invalid in type context
-    let i = m!();   //~ NOTE the usage of `m!` is likely invalid in expression context
+    let a: m!();
+    let i = m!();
     match 0 {
-        m!() => {}  //~ NOTE the usage of `m!` is likely invalid in pattern context
+        m!() => {}
     }
 
-    m!(); //~ NOTE in this expansion
+    m!();
 }
diff --git a/src/test/ui/macro-context.stderr b/src/test/ui/macro-context.stderr
index 7eb2016b4e7..37d99913d97 100644
--- a/src/test/ui/macro-context.stderr
+++ b/src/test/ui/macro-context.stderr
@@ -7,7 +7,7 @@ error: macro expansion ignores token `;` and any following
 note: caused by the macro expansion here; the usage of `m!` is likely invalid in type context
   --> $DIR/macro-context.rs:20:12
    |
-20 |     let a: m!();    //~ NOTE the usage of `m!` is likely invalid in type context
+20 |     let a: m!();
    |            ^^^^
 
 error: macro expansion ignores token `typeof` and any following
@@ -19,7 +19,7 @@ error: macro expansion ignores token `typeof` and any following
 note: caused by the macro expansion here; the usage of `m!` is likely invalid in expression context
   --> $DIR/macro-context.rs:21:13
    |
-21 |     let i = m!();   //~ NOTE the usage of `m!` is likely invalid in expression context
+21 |     let i = m!();
    |             ^^^^
 
 error: macro expansion ignores token `;` and any following
@@ -31,7 +31,7 @@ error: macro expansion ignores token `;` and any following
 note: caused by the macro expansion here; the usage of `m!` is likely invalid in pattern context
   --> $DIR/macro-context.rs:23:9
    |
-23 |         m!() => {}  //~ NOTE the usage of `m!` is likely invalid in pattern context
+23 |         m!() => {}
    |         ^^^^
 
 error: expected expression, found reserved keyword `typeof`
@@ -40,7 +40,7 @@ error: expected expression, found reserved keyword `typeof`
 13 |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
    |                 ^^^^^^
 ...
-26 |     m!(); //~ NOTE in this expansion
+26 |     m!();
    |     ----- in this macro invocation
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/macro-invalid-fragment-spec.rs b/src/test/ui/macro-invalid-fragment-spec.rs
index ca6cd664e73..630e481f75e 100644
--- a/src/test/ui/macro-invalid-fragment-spec.rs
+++ b/src/test/ui/macro-invalid-fragment-spec.rs
@@ -11,7 +11,6 @@
 macro_rules! foo(
     ($x:foo) => ()
     //~^ ERROR invalid fragment specifier
-    //~| HELP valid fragment specifiers are
 );
 
 fn main() {
diff --git a/src/test/ui/macro-shadowing.rs b/src/test/ui/macro-shadowing.rs
index f5e7305e4ea..61abaf8a2dd 100644
--- a/src/test/ui/macro-shadowing.rs
+++ b/src/test/ui/macro-shadowing.rs
@@ -18,16 +18,11 @@ macro_rules! macro_one { () => {} }
 
 macro_rules! m1 { () => {
     macro_rules! foo { () => {} } //~ ERROR `foo` is already in scope
-    //~^ NOTE macro-expanded `macro_rules!`s may not shadow existing macros
 
     #[macro_use] //~ ERROR `macro_two` is already in scope
-    //~^ NOTE macro-expanded `#[macro_use]`s may not shadow existing macros
     extern crate two_macros as __;
 }}
-m1!(); //~ NOTE in this expansion
-       //~| NOTE in this expansion
-       //~| NOTE in this expansion
-       //~| NOTE in this expansion
+m1!();
 
 foo!();
 
diff --git a/src/test/ui/macro-shadowing.stderr b/src/test/ui/macro-shadowing.stderr
index 95370e50925..9ed372f275d 100644
--- a/src/test/ui/macro-shadowing.stderr
+++ b/src/test/ui/macro-shadowing.stderr
@@ -1,10 +1,10 @@
 error: `macro_two` is already in scope
-  --> $DIR/macro-shadowing.rs:23:5
+  --> $DIR/macro-shadowing.rs:22:5
    |
-23 |     #[macro_use] //~ ERROR `macro_two` is already in scope
+22 |     #[macro_use] //~ ERROR `macro_two` is already in scope
    |     ^^^^^^^^^^^^
 ...
-27 | m1!(); //~ NOTE in this expansion
+25 | m1!();
    | ------ in this macro invocation
    |
    = note: macro-expanded `#[macro_use]`s may not shadow existing macros (see RFC 1560)
@@ -15,7 +15,7 @@ error: `foo` is already in scope
 20 |     macro_rules! foo { () => {} } //~ ERROR `foo` is already in scope
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ...
-27 | m1!(); //~ NOTE in this expansion
+25 | m1!();
    | ------ in this macro invocation
    |
    = note: macro-expanded `macro_rules!`s may not shadow existing macros (see RFC 1560)
diff --git a/src/test/ui/main-wrong-location.rs b/src/test/ui/main-wrong-location.rs
index ef3f8140c68..45be5f14787 100644
--- a/src/test/ui/main-wrong-location.rs
+++ b/src/test/ui/main-wrong-location.rs
@@ -11,5 +11,5 @@
 mod m {
     // An inferred main entry point (that doesn't use #[main])
     // must appear at the top of the crate
-    fn main() { } //~ NOTE here is a function named 'main'
+    fn main() { }
 }
diff --git a/src/test/ui/main-wrong-location.stderr b/src/test/ui/main-wrong-location.stderr
index 22a270aabf6..cb9740b8779 100644
--- a/src/test/ui/main-wrong-location.stderr
+++ b/src/test/ui/main-wrong-location.stderr
@@ -4,7 +4,7 @@ error[E0601]: main function not found
 note: here is a function named 'main'
  --> $DIR/main-wrong-location.rs:14:5
   |
-14|     fn main() { } //~ NOTE here is a function named 'main'
+14|     fn main() { }
   |     ^^^^^^^^^^^^^
 
 error: aborting due to previous error
diff --git a/src/test/ui/maybe-bounds.rs b/src/test/ui/maybe-bounds.rs
index b0b412bbf89..1dc198dee83 100644
--- a/src/test/ui/maybe-bounds.rs
+++ b/src/test/ui/maybe-bounds.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 trait Tr: ?Sized {} //~ ERROR `?Trait` is not permitted in supertraits
-                    //~^ NOTE traits are `?Sized` by default
 
 type A1 = Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
 type A2 = for<'a> Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
diff --git a/src/test/ui/maybe-bounds.stderr b/src/test/ui/maybe-bounds.stderr
index a6036c80018..df9c3bca364 100644
--- a/src/test/ui/maybe-bounds.stderr
+++ b/src/test/ui/maybe-bounds.stderr
@@ -7,15 +7,15 @@ error: `?Trait` is not permitted in supertraits
    = note: traits are `?Sized` by default
 
 error: `?Trait` is not permitted in trait object types
-  --> $DIR/maybe-bounds.rs:14:17
+  --> $DIR/maybe-bounds.rs:13:17
    |
-14 | type A1 = Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
+13 | type A1 = Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
    |                 ^^^^^
 
 error: `?Trait` is not permitted in trait object types
-  --> $DIR/maybe-bounds.rs:15:25
+  --> $DIR/maybe-bounds.rs:14:25
    |
-15 | type A2 = for<'a> Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
+14 | type A2 = for<'a> Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
    |                         ^^^^^
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/method-call-err-msg.rs b/src/test/ui/method-call-err-msg.rs
index 37806e43a9d..3434cf96fce 100644
--- a/src/test/ui/method-call-err-msg.rs
+++ b/src/test/ui/method-call-err-msg.rs
@@ -10,29 +10,21 @@
 
 // Test that parameter cardinality or missing method error gets span exactly.
 
-pub struct Foo; //~ NOTE not found for this
+pub struct Foo;
 impl Foo {
     fn zero(self) -> Foo { self }
-    //~^ NOTE defined here
     fn one(self, _: isize) -> Foo { self }
-    //~^ NOTE defined here
     fn two(self, _: isize, _: isize) -> Foo { self }
-    //~^ NOTE defined here
 }
 
 fn main() {
     let x = Foo;
     x.zero(0)   //~ ERROR this function takes 0 parameters but 1 parameter was supplied
-     //~^ NOTE expected 0 parameters
      .one()     //~ ERROR this function takes 1 parameter but 0 parameters were supplied
-     //~^ NOTE expected 1 parameter
      .two(0);   //~ ERROR this function takes 2 parameters but 1 parameter was supplied
-     //~^ NOTE expected 2 parameters
 
     let y = Foo;
     y.zero()
      .take()    //~ ERROR no method named `take` found for type `Foo` in the current scope
-     //~^ NOTE the method `take` exists but the following trait bounds were not satisfied
-     //~| NOTE the following traits define an item `take`, perhaps you need to implement one of them
      .one(0);
 }
diff --git a/src/test/ui/method-call-err-msg.stderr b/src/test/ui/method-call-err-msg.stderr
index 2aa654ff624..59a94ae144c 100644
--- a/src/test/ui/method-call-err-msg.stderr
+++ b/src/test/ui/method-call-err-msg.stderr
@@ -8,12 +8,12 @@ error[E0061]: this function takes 0 parameters but 1 parameter was supplied
    |       ^^^^ expected 0 parameters
 
 error[E0061]: this function takes 1 parameter but 0 parameters were supplied
-  --> $DIR/method-call-err-msg.rs:27:7
+  --> $DIR/method-call-err-msg.rs:23:7
    |
 17 |     fn one(self, _: isize) -> Foo { self }
    |     ----------------------------- defined here
 ...
-27 |      .one()     //~ ERROR this function takes 1 parameter but 0 parameters were supplied
+23 |      .one()     //~ ERROR this function takes 1 parameter but 0 parameters were supplied
    |       ^^^ expected 1 parameter
 
 error[E0061]: this function takes 2 parameters but 1 parameter was supplied
@@ -26,12 +26,12 @@ error[E0061]: this function takes 2 parameters but 1 parameter was supplied
    |       ^^^ expected 2 parameters
 
 error[E0599]: no method named `take` found for type `Foo` in the current scope
-  --> $DIR/method-call-err-msg.rs:34:7
+  --> $DIR/method-call-err-msg.rs:28:7
    |
-13 | pub struct Foo; //~ NOTE not found for this
+13 | pub struct Foo;
    | --------------- method `take` not found for this
 ...
-34 |      .take()    //~ ERROR no method named `take` found for type `Foo` in the current scope
+28 |      .take()    //~ ERROR no method named `take` found for type `Foo` in the current scope
    |       ^^^^
    |
    = note: the method `take` exists but the following trait bounds were not satisfied:
diff --git a/src/test/ui/method-missing-call.rs b/src/test/ui/method-missing-call.rs
index b13d4250ee9..7a6ea94d977 100644
--- a/src/test/ui/method-missing-call.rs
+++ b/src/test/ui/method-missing-call.rs
@@ -30,7 +30,6 @@ fn main() {
     let point: Point = Point::new();
     let px: isize =  point
                         .get_x;//~ ERROR attempted to take value of method `get_x` on type `Point`
-                        //~^ HELP maybe a `()` to call it is missing
 
     // Ensure the span is useful
     let ys = &[1,2,3,4,5,6,7];
@@ -38,5 +37,4 @@ fn main() {
               .map(|x| x)
               .filter(|&&x| x == 1)
               .filter_map; //~ ERROR attempted to take value of method `filter_map` on type
-              //~^ HELP maybe a `()` to call it is missing
 }
diff --git a/src/test/ui/method-missing-call.stderr b/src/test/ui/method-missing-call.stderr
index 9ebaed11e7d..d4cffbff4ef 100644
--- a/src/test/ui/method-missing-call.stderr
+++ b/src/test/ui/method-missing-call.stderr
@@ -6,10 +6,10 @@ error[E0615]: attempted to take value of method `get_x` on type `Point`
    |
    = help: maybe a `()` to call it is missing?
 
-error[E0615]: attempted to take value of method `filter_map` on type `std::iter::Filter<std::iter::Map<std::slice::Iter<'_, {integer}>, [closure@$DIR/method-missing-call.rs:38:20: 38:25]>, [closure@$DIR/method-missing-call.rs:39:23: 39:35]>`
-  --> $DIR/method-missing-call.rs:40:16
+error[E0615]: attempted to take value of method `filter_map` on type `std::iter::Filter<std::iter::Map<std::slice::Iter<'_, {integer}>, [closure@$DIR/method-missing-call.rs:37:20: 37:25]>, [closure@$DIR/method-missing-call.rs:38:23: 38:35]>`
+  --> $DIR/method-missing-call.rs:39:16
    |
-40 |               .filter_map; //~ ERROR attempted to take value of method `filter_map` on type
+39 |               .filter_map; //~ ERROR attempted to take value of method `filter_map` on type
    |                ^^^^^^^^^^
    |
    = help: maybe a `()` to call it is missing?
diff --git a/src/test/ui/mismatched_types/E0053.rs b/src/test/ui/mismatched_types/E0053.rs
index f82f3fb0fa4..c09d6673aeb 100644
--- a/src/test/ui/mismatched_types/E0053.rs
+++ b/src/test/ui/mismatched_types/E0053.rs
@@ -9,8 +9,8 @@
 // except according to those terms.
 
 trait Foo {
-    fn foo(x: u16); //~ NOTE type in trait
-    fn bar(&self); //~ NOTE type in trait
+    fn foo(x: u16);
+    fn bar(&self);
 }
 
 struct Bar;
@@ -18,12 +18,8 @@ struct Bar;
 impl Foo for Bar {
     fn foo(x: i16) { }
     //~^ ERROR method `foo` has an incompatible type for trait
-    //~| NOTE expected u16
-    //~| NOTE expected type `fn(u16)`
     fn bar(&mut self) { }
     //~^ ERROR method `bar` has an incompatible type for trait
-    //~| NOTE types differ in mutability
-    //~| NOTE expected type `fn(&Bar)`
 }
 
 fn main() {
diff --git a/src/test/ui/mismatched_types/E0053.stderr b/src/test/ui/mismatched_types/E0053.stderr
index b80363e3d3e..226cb473e77 100644
--- a/src/test/ui/mismatched_types/E0053.stderr
+++ b/src/test/ui/mismatched_types/E0053.stderr
@@ -1,7 +1,7 @@
 error[E0053]: method `foo` has an incompatible type for trait
   --> $DIR/E0053.rs:19:15
    |
-12 |     fn foo(x: u16); //~ NOTE type in trait
+12 |     fn foo(x: u16);
    |               --- type in trait
 ...
 19 |     fn foo(x: i16) { }
@@ -11,12 +11,12 @@ error[E0053]: method `foo` has an incompatible type for trait
               found type `fn(i16)`
 
 error[E0053]: method `bar` has an incompatible type for trait
-  --> $DIR/E0053.rs:23:12
+  --> $DIR/E0053.rs:21:12
    |
-13 |     fn bar(&self); //~ NOTE type in trait
+13 |     fn bar(&self);
    |            ----- type in trait
 ...
-23 |     fn bar(&mut self) { }
+21 |     fn bar(&mut self) { }
    |            ^^^^^^^^^ types differ in mutability
    |
    = note: expected type `fn(&Bar)`
diff --git a/src/test/ui/mismatched_types/E0409.rs b/src/test/ui/mismatched_types/E0409.rs
index 17bbc3f2433..345020f2eae 100644
--- a/src/test/ui/mismatched_types/E0409.rs
+++ b/src/test/ui/mismatched_types/E0409.rs
@@ -13,11 +13,7 @@ fn main() {
 
     match x {
         (0, ref y) | (y, 0) => {} //~ ERROR E0409
-                                  //~^ NOTE bound in different ways
-                                  //~| NOTE first binding
                                   //~| ERROR E0308
-                                  //~| NOTE expected &{integer}, found integral variable
-                                  //~| NOTE expected type `&{integer}`
         _ => ()
     }
 }
diff --git a/src/test/ui/mismatched_types/fn-variance-1.rs b/src/test/ui/mismatched_types/fn-variance-1.rs
index af691663411..de4278e3a03 100644
--- a/src/test/ui/mismatched_types/fn-variance-1.rs
+++ b/src/test/ui/mismatched_types/fn-variance-1.rs
@@ -22,12 +22,8 @@ fn main() {
     apply(&3, takes_imm);
     apply(&3, takes_mut);
     //~^ ERROR type mismatch
-    //~| NOTE required by `apply`
-    //~| NOTE expected signature
 
     apply(&mut 3, takes_mut);
     apply(&mut 3, takes_imm);
     //~^ ERROR type mismatch
-    //~| NOTE required by `apply`
-    //~| NOTE expected signature
 }
diff --git a/src/test/ui/mismatched_types/for-loop-has-unit-body.rs b/src/test/ui/mismatched_types/for-loop-has-unit-body.rs
index 8c61fc602e0..4ffee75348a 100644
--- a/src/test/ui/mismatched_types/for-loop-has-unit-body.rs
+++ b/src/test/ui/mismatched_types/for-loop-has-unit-body.rs
@@ -11,7 +11,5 @@
 fn main() {
     for x in 0..3 {
         x //~ ERROR mismatched types
-        //~| NOTE expected ()
-        //~| NOTE expected type `()`
     }
 }
diff --git a/src/test/ui/mismatched_types/issue-19109.rs b/src/test/ui/mismatched_types/issue-19109.rs
index 59127c10cd1..0f85218fcb8 100644
--- a/src/test/ui/mismatched_types/issue-19109.rs
+++ b/src/test/ui/mismatched_types/issue-19109.rs
@@ -13,8 +13,6 @@ trait Trait { }
 fn function(t: &mut Trait) {
     t as *mut Trait
  //~^ ERROR: mismatched types
- //~| NOTE: expected type `()`
- //~| NOTE: expected (), found *-ptr
 }
 
 fn main() { }
diff --git a/src/test/ui/mismatched_types/issue-36053-2.rs b/src/test/ui/mismatched_types/issue-36053-2.rs
index 76885651c5b..bf72e584b56 100644
--- a/src/test/ui/mismatched_types/issue-36053-2.rs
+++ b/src/test/ui/mismatched_types/issue-36053-2.rs
@@ -17,7 +17,4 @@ fn main() {
     once::<&str>("str").fuse().filter(|a: &str| true).count();
     //~^ ERROR no method named `count`
     //~| ERROR type mismatch in closure arguments
-    //~| NOTE the method `count` exists but the following trait bounds
-    //~| NOTE expected signature
-    //~| NOTE found signature
 }
diff --git a/src/test/ui/mismatched_types/method-help-unsatisfied-bound.rs b/src/test/ui/mismatched_types/method-help-unsatisfied-bound.rs
index a4eb4455551..2c7b8218de0 100644
--- a/src/test/ui/mismatched_types/method-help-unsatisfied-bound.rs
+++ b/src/test/ui/mismatched_types/method-help-unsatisfied-bound.rs
@@ -14,5 +14,4 @@ fn main() {
     let a: Result<(), Foo> = Ok(());
     a.unwrap();
     //~^ ERROR no method named `unwrap` found for type `std::result::Result<(), Foo>`
-    //~| NOTE the method `unwrap` exists but the following trait bounds were not satisfied
 }
diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.rs b/src/test/ui/mismatched_types/overloaded-calls-bad.rs
index da1265dfeff..00edc07db81 100644
--- a/src/test/ui/mismatched_types/overloaded-calls-bad.rs
+++ b/src/test/ui/mismatched_types/overloaded-calls-bad.rs
@@ -36,12 +36,8 @@ fn main() {
         y: 3,
     };
     let ans = s("what");    //~ ERROR mismatched types
-    //~^ NOTE expected isize, found reference
-    //~| NOTE expected type
     let ans = s();
     //~^ ERROR this function takes 1 parameter but 0 parameters were supplied
-    //~| NOTE expected 1 parameter
     let ans = s("burma", "shave");
     //~^ ERROR this function takes 1 parameter but 2 parameters were supplied
-    //~| NOTE expected 1 parameter
 }
diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
index 66642466de3..2122e810046 100644
--- a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
+++ b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr
@@ -8,9 +8,9 @@ error[E0308]: mismatched types
               found type `&'static str`
 
 error[E0057]: this function takes 1 parameter but 0 parameters were supplied
-  --> $DIR/overloaded-calls-bad.rs:41:15
+  --> $DIR/overloaded-calls-bad.rs:39:15
    |
-41 |     let ans = s();
+39 |     let ans = s();
    |               ^^^ expected 1 parameter
 
 error[E0057]: this function takes 1 parameter but 2 parameters were supplied
diff --git a/src/test/ui/mismatched_types/trait-bounds-cant-coerce.rs b/src/test/ui/mismatched_types/trait-bounds-cant-coerce.rs
index 115be1bf4de..b2aeabdc1e1 100644
--- a/src/test/ui/mismatched_types/trait-bounds-cant-coerce.rs
+++ b/src/test/ui/mismatched_types/trait-bounds-cant-coerce.rs
@@ -22,8 +22,6 @@ fn c(x: Box<Foo+Sync+Send>) {
 
 fn d(x: Box<Foo>) {
     a(x); //~ ERROR mismatched types [E0308]
-          //~| NOTE expected type `std::boxed::Box<Foo + std::marker::Send + 'static>`
-          //~| NOTE expected trait `Foo + std::marker::Send`, found trait `Foo`
 }
 
 fn main() { }
diff --git a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.rs b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.rs
index 814f2c4d187..10f4b3229f0 100644
--- a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.rs
+++ b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.rs
@@ -20,10 +20,8 @@ fn call_it<F:FnMut(isize,isize)->isize>(y: isize, mut f: F) -> isize {
 
 pub fn main() {
     let f = to_fn_mut(|x: usize, y: isize| -> isize { (x as isize) + y });
-    //~^ NOTE found signature of `fn(usize, isize)
     let z = call_it(3, f);
     //~^ ERROR type mismatch
-    //~| NOTE expected signature of `fn(isize, isize)
     //~| required by `call_it`
     println!("{}", z);
 }
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 8fa430ffff9..4964a81f4d2 100644
--- a/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
+++ b/src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
@@ -1,5 +1,5 @@
 error[E0631]: type mismatch in closure arguments
-  --> $DIR/unboxed-closures-vtable-mismatch.rs:24:13
+  --> $DIR/unboxed-closures-vtable-mismatch.rs:23:13
    |
 22 |     let f = to_fn_mut(|x: usize, y: isize| -> isize { (x as isize) + y });
    |                       ----------------------------- found signature of `fn(usize, isize) -> _`
diff --git a/src/test/ui/missing-block-hint.rs b/src/test/ui/missing-block-hint.rs
index 22636b0a5a1..777ff5b9b26 100644
--- a/src/test/ui/missing-block-hint.rs
+++ b/src/test/ui/missing-block-hint.rs
@@ -15,6 +15,5 @@ fn main() {
     {
         if (foo)
             bar; //~ ERROR expected `{`, found `bar`
-                 //~^ HELP try placing this code inside a block
     }
 }
diff --git a/src/test/ui/moves-based-on-type-block-bad.rs b/src/test/ui/moves-based-on-type-block-bad.rs
index deaff3c3521..dd4c4c843ab 100644
--- a/src/test/ui/moves-based-on-type-block-bad.rs
+++ b/src/test/ui/moves-based-on-type-block-bad.rs
@@ -35,7 +35,6 @@ fn main() {
                                  //~| cannot move out of borrowed content
                 box E::Foo(_) => {}
                 box E::Bar(x) => println!("{}", x.to_string()),
-                //~^ NOTE to prevent move
                 box E::Baz => {}
             }
         })
diff --git a/src/test/ui/moves-based-on-type-match-bindings.rs b/src/test/ui/moves-based-on-type-match-bindings.rs
index bcbb8dbfad1..1fd3d03570a 100644
--- a/src/test/ui/moves-based-on-type-match-bindings.rs
+++ b/src/test/ui/moves-based-on-type-match-bindings.rs
@@ -20,7 +20,7 @@ fn f10() {
     let x = Foo {f: "hi".to_string()};
 
     let y = match x {
-        Foo {f} => {} //~ NOTE moved here
+        Foo {f} => {}
     };
 
     touch(&x); //~ ERROR use of partially moved value: `x`
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 74d90e0eb7f..5256b55f01c 100644
--- a/src/test/ui/moves-based-on-type-match-bindings.stderr
+++ b/src/test/ui/moves-based-on-type-match-bindings.stderr
@@ -1,7 +1,7 @@
 error[E0382]: use of partially moved value: `x`
   --> $DIR/moves-based-on-type-match-bindings.rs:26:12
    |
-23 |         Foo {f} => {} //~ NOTE moved here
+23 |         Foo {f} => {}
    |              - value moved here
 ...
 26 |     touch(&x); //~ ERROR use of partially moved value: `x`
diff --git a/src/test/ui/no-patterns-in-args.rs b/src/test/ui/no-patterns-in-args.rs
index 081d6caaa13..757bd2cb52b 100644
--- a/src/test/ui/no-patterns-in-args.rs
+++ b/src/test/ui/no-patterns-in-args.rs
@@ -10,11 +10,8 @@
 
 extern {
     fn f1(mut arg: u8); //~ ERROR patterns aren't allowed in foreign function declarations
-                        //~^ NOTE pattern not allowed in foreign function
     fn f2(&arg: u8); //~ ERROR patterns aren't allowed in foreign function declarations
-                     //~^ NOTE pattern not allowed in foreign function
     fn f3(arg @ _: u8); //~ ERROR patterns aren't allowed in foreign function declarations
-                        //~^ NOTE pattern not allowed in foreign function
     fn g1(arg: u8); // OK
     fn g2(_: u8); // OK
     // fn g3(u8); // Not yet
diff --git a/src/test/ui/no-patterns-in-args.stderr b/src/test/ui/no-patterns-in-args.stderr
index 1aa14691611..0db9eb9ded3 100644
--- a/src/test/ui/no-patterns-in-args.stderr
+++ b/src/test/ui/no-patterns-in-args.stderr
@@ -5,27 +5,27 @@ error[E0130]: patterns aren't allowed in foreign function declarations
    |           ^^^^^^^ pattern not allowed in foreign function
 
 error[E0130]: patterns aren't allowed in foreign function declarations
-  --> $DIR/no-patterns-in-args.rs:14:11
+  --> $DIR/no-patterns-in-args.rs:13:11
    |
-14 |     fn f2(&arg: u8); //~ ERROR patterns aren't allowed in foreign function declarations
+13 |     fn f2(&arg: u8); //~ ERROR patterns aren't allowed in foreign function declarations
    |           ^^^^ pattern not allowed in foreign function
 
 error[E0130]: patterns aren't allowed in foreign function declarations
-  --> $DIR/no-patterns-in-args.rs:16:11
+  --> $DIR/no-patterns-in-args.rs:14:11
    |
-16 |     fn f3(arg @ _: u8); //~ ERROR patterns aren't allowed in foreign function declarations
+14 |     fn f3(arg @ _: u8); //~ ERROR patterns aren't allowed in foreign function declarations
    |           ^^^^^^^ pattern not allowed in foreign function
 
 error[E0561]: patterns aren't allowed in function pointer types
-  --> $DIR/no-patterns-in-args.rs:23:14
+  --> $DIR/no-patterns-in-args.rs:20:14
    |
-23 | type A1 = fn(mut arg: u8); //~ ERROR patterns aren't allowed in function pointer types
+20 | type A1 = fn(mut arg: u8); //~ ERROR patterns aren't allowed in function pointer types
    |              ^^^^^^^
 
 error[E0561]: patterns aren't allowed in function pointer types
-  --> $DIR/no-patterns-in-args.rs:24:14
+  --> $DIR/no-patterns-in-args.rs:21:14
    |
-24 | type A2 = fn(&arg: u8); //~ ERROR patterns aren't allowed in function pointer types
+21 | type A2 = fn(&arg: u8); //~ ERROR patterns aren't allowed in function pointer types
    |              ^^^^
 
 error: aborting due to 5 previous errors
diff --git a/src/test/ui/non-constant-expr-for-arr-len.rs b/src/test/ui/non-constant-expr-for-arr-len.rs
index 17df7ae2347..f8f46f30f8d 100644
--- a/src/test/ui/non-constant-expr-for-arr-len.rs
+++ b/src/test/ui/non-constant-expr-for-arr-len.rs
@@ -14,6 +14,5 @@ fn main() {
     fn bar(n: usize) {
         let _x = [0; n];
         //~^ ERROR attempt to use a non-constant value in a constant [E0435]
-        //~| NOTE non-constant value
     }
 }
diff --git a/src/test/ui/non-exhaustive-pattern-witness.rs b/src/test/ui/non-exhaustive-pattern-witness.rs
index eba61ede8cb..0b12a9acbcb 100644
--- a/src/test/ui/non-exhaustive-pattern-witness.rs
+++ b/src/test/ui/non-exhaustive-pattern-witness.rs
@@ -19,7 +19,6 @@ struct Foo {
 fn struct_with_a_nested_enum_and_vector() {
     match (Foo { first: true, second: None }) {
 //~^ ERROR non-exhaustive patterns: `Foo { first: false, second: Some([_, _, _, _]) }` not covered
-//~| NOTE pattern `Foo { first: false, second: Some([_, _, _, _]) }` not covered
         Foo { first: true, second: None } => (),
         Foo { first: true, second: Some(_) } => (),
         Foo { first: false, second: None } => (),
@@ -36,7 +35,6 @@ enum Color {
 fn enum_with_single_missing_variant() {
     match Color::Red {
     //~^ ERROR non-exhaustive patterns: `Red` not covered
-    //~| NOTE pattern `Red` not covered
         Color::CustomRGBA { .. } => (),
         Color::Green => ()
     }
@@ -49,7 +47,6 @@ enum Direction {
 fn enum_with_multiple_missing_variants() {
     match Direction::North {
     //~^ ERROR non-exhaustive patterns: `East`, `South` and `West` not covered
-    //~| NOTE patterns `East`, `South` and `West` not covered
         Direction::North => ()
     }
 }
@@ -61,7 +58,6 @@ enum ExcessiveEnum {
 fn enum_with_excessive_missing_variants() {
     match ExcessiveEnum::First {
     //~^ ERROR `Second`, `Third`, `Fourth` and 8 more not covered
-    //~| NOTE patterns `Second`, `Third`, `Fourth` and 8 more not covered
 
         ExcessiveEnum::First => ()
     }
@@ -70,7 +66,6 @@ fn enum_with_excessive_missing_variants() {
 fn enum_struct_variant() {
     match Color::Red {
     //~^ ERROR non-exhaustive patterns: `CustomRGBA { a: true, .. }` not covered
-    //~| NOTE pattern `CustomRGBA { a: true, .. }` not covered
         Color::Red => (),
         Color::Green => (),
         Color::CustomRGBA { a: false, r: _, g: _, b: 0 } => (),
@@ -87,7 +82,6 @@ fn vectors_with_nested_enums() {
     let x: &'static [Enum] = &[Enum::First, Enum::Second(false)];
     match *x {
     //~^ ERROR non-exhaustive patterns: `[Second(true), Second(false)]` not covered
-    //~| NOTE pattern `[Second(true), Second(false)]` not covered
         [] => (),
         [_] => (),
         [Enum::First, _] => (),
@@ -101,7 +95,6 @@ fn vectors_with_nested_enums() {
 fn missing_nil() {
     match ((), false) {
     //~^ ERROR non-exhaustive patterns: `((), false)` not covered
-    //~| NOTE pattern `((), false)` not covered
         ((), true) => ()
     }
 }
diff --git a/src/test/ui/non-exhaustive-pattern-witness.stderr b/src/test/ui/non-exhaustive-pattern-witness.stderr
index d9574c9e960..f012dfed0b8 100644
--- a/src/test/ui/non-exhaustive-pattern-witness.stderr
+++ b/src/test/ui/non-exhaustive-pattern-witness.stderr
@@ -5,40 +5,40 @@ error[E0004]: non-exhaustive patterns: `Foo { first: false, second: Some([_, _,
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pattern `Foo { first: false, second: Some([_, _, _, _]) }` not covered
 
 error[E0004]: non-exhaustive patterns: `Red` not covered
-  --> $DIR/non-exhaustive-pattern-witness.rs:37:11
+  --> $DIR/non-exhaustive-pattern-witness.rs:36:11
    |
-37 |     match Color::Red {
+36 |     match Color::Red {
    |           ^^^^^^^^^^ pattern `Red` not covered
 
 error[E0004]: non-exhaustive patterns: `East`, `South` and `West` not covered
-  --> $DIR/non-exhaustive-pattern-witness.rs:50:11
+  --> $DIR/non-exhaustive-pattern-witness.rs:48:11
    |
-50 |     match Direction::North {
+48 |     match Direction::North {
    |           ^^^^^^^^^^^^^^^^ patterns `East`, `South` and `West` not covered
 
 error[E0004]: non-exhaustive patterns: `Second`, `Third`, `Fourth` and 8 more not covered
-  --> $DIR/non-exhaustive-pattern-witness.rs:62:11
+  --> $DIR/non-exhaustive-pattern-witness.rs:59:11
    |
-62 |     match ExcessiveEnum::First {
+59 |     match ExcessiveEnum::First {
    |           ^^^^^^^^^^^^^^^^^^^^ patterns `Second`, `Third`, `Fourth` and 8 more not covered
 
 error[E0004]: non-exhaustive patterns: `CustomRGBA { a: true, .. }` not covered
-  --> $DIR/non-exhaustive-pattern-witness.rs:71:11
+  --> $DIR/non-exhaustive-pattern-witness.rs:67:11
    |
-71 |     match Color::Red {
+67 |     match Color::Red {
    |           ^^^^^^^^^^ pattern `CustomRGBA { a: true, .. }` not covered
 
 error[E0004]: non-exhaustive patterns: `[Second(true), Second(false)]` not covered
-  --> $DIR/non-exhaustive-pattern-witness.rs:88:11
+  --> $DIR/non-exhaustive-pattern-witness.rs:83:11
    |
-88 |     match *x {
+83 |     match *x {
    |           ^^ pattern `[Second(true), Second(false)]` not covered
 
 error[E0004]: non-exhaustive patterns: `((), false)` not covered
-   --> $DIR/non-exhaustive-pattern-witness.rs:102:11
-    |
-102 |     match ((), false) {
-    |           ^^^^^^^^^^^ pattern `((), false)` not covered
+  --> $DIR/non-exhaustive-pattern-witness.rs:96:11
+   |
+96 |     match ((), false) {
+   |           ^^^^^^^^^^^ pattern `((), false)` not covered
 
 error: aborting due to 7 previous errors
 
diff --git a/src/test/ui/not-enough-arguments.rs b/src/test/ui/not-enough-arguments.rs
index e13008df0d9..c952906e5e8 100644
--- a/src/test/ui/not-enough-arguments.rs
+++ b/src/test/ui/not-enough-arguments.rs
@@ -13,12 +13,10 @@
 // unrelated errors.
 
 fn foo(a: isize, b: isize, c: isize, d:isize) {
-  //~^ NOTE defined here
   panic!();
 }
 
 fn main() {
   foo(1, 2, 3);
   //~^ ERROR this function takes 4 parameters but 3
-  //~| NOTE expected 4 parameters
 }
diff --git a/src/test/ui/not-enough-arguments.stderr b/src/test/ui/not-enough-arguments.stderr
index 70b53fca6da..e92175c09d7 100644
--- a/src/test/ui/not-enough-arguments.stderr
+++ b/src/test/ui/not-enough-arguments.stderr
@@ -1,13 +1,12 @@
 error[E0061]: this function takes 4 parameters but 3 parameters were supplied
-  --> $DIR/not-enough-arguments.rs:21:7
+  --> $DIR/not-enough-arguments.rs:20:7
    |
 15 | / fn foo(a: isize, b: isize, c: isize, d:isize) {
-16 | |   //~^ NOTE defined here
-17 | |   panic!();
-18 | | }
+16 | |   panic!();
+17 | | }
    | |_- defined here
 ...
-21 |     foo(1, 2, 3);
+20 |     foo(1, 2, 3);
    |         ^^^^^^^ expected 4 parameters
 
 error: aborting due to previous error
diff --git a/src/test/ui/numeric-fields.rs b/src/test/ui/numeric-fields.rs
index d6e091a1472..89d09560369 100644
--- a/src/test/ui/numeric-fields.rs
+++ b/src/test/ui/numeric-fields.rs
@@ -13,11 +13,8 @@ struct S(u8, u16);
 fn main() {
     let s = S{0b1: 10, 0: 11};
     //~^ ERROR struct `S` has no field named `0b1`
-    //~| NOTE `S` does not have this field
-    //~| NOTE available fields are: `0`, `1`
     match s {
         S{0: a, 0x1: b, ..} => {}
         //~^ ERROR does not have a field named `0x1`
-        //~| NOTE struct `S` does not have field `0x1`
     }
 }
diff --git a/src/test/ui/numeric-fields.stderr b/src/test/ui/numeric-fields.stderr
index 23f7be2fd13..cdf85d4f971 100644
--- a/src/test/ui/numeric-fields.stderr
+++ b/src/test/ui/numeric-fields.stderr
@@ -7,9 +7,9 @@ error[E0560]: struct `S` has no field named `0b1`
    = note: available fields are: `0`, `1`
 
 error[E0026]: struct `S` does not have a field named `0x1`
-  --> $DIR/numeric-fields.rs:19:17
+  --> $DIR/numeric-fields.rs:17:17
    |
-19 |         S{0: a, 0x1: b, ..} => {}
+17 |         S{0: a, 0x1: b, ..} => {}
    |                 ^^^^^^ struct `S` does not have field `0x1`
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/object-safety-associated-consts.rs b/src/test/ui/object-safety-associated-consts.rs
index ebb52face06..4bce2c5982a 100644
--- a/src/test/ui/object-safety-associated-consts.rs
+++ b/src/test/ui/object-safety-associated-consts.rs
@@ -18,8 +18,6 @@ trait Bar {
 
 fn make_bar<T:Bar>(t: &T) -> &Bar {
     //~^ ERROR E0038
-    //~| NOTE the trait cannot contain associated consts like `X`
-    //~| NOTE the trait `Bar` cannot be made into an object
     t
 }
 
diff --git a/src/test/ui/object-safety-generics.rs b/src/test/ui/object-safety-generics.rs
index 6174d45b898..969ceeec276 100644
--- a/src/test/ui/object-safety-generics.rs
+++ b/src/test/ui/object-safety-generics.rs
@@ -23,15 +23,11 @@ trait Quux {
 
 fn make_bar<T:Bar>(t: &T) -> &Bar {
         //~^ ERROR E0038
-        //~| NOTE method `bar` has generic type parameters
-        //~| NOTE the trait `Bar` cannot be made into an object
     t
 }
 
 fn make_bar_explicit<T:Bar>(t: &T) -> &Bar {
     //~^ ERROR E0038
-    //~| NOTE method `bar` has generic type parameters
-    //~| NOTE the trait `Bar` cannot be made into an object
     t as &Bar
 }
 
diff --git a/src/test/ui/object-safety-generics.stderr b/src/test/ui/object-safety-generics.stderr
index 62a1a27d684..7bc714163c7 100644
--- a/src/test/ui/object-safety-generics.stderr
+++ b/src/test/ui/object-safety-generics.stderr
@@ -7,9 +7,9 @@ error[E0038]: the trait `Bar` cannot be made into an object
    = note: method `bar` has generic type parameters
 
 error[E0038]: the trait `Bar` cannot be made into an object
-  --> $DIR/object-safety-generics.rs:31:1
+  --> $DIR/object-safety-generics.rs:29:1
    |
-31 | fn make_bar_explicit<T:Bar>(t: &T) -> &Bar {
+29 | fn make_bar_explicit<T:Bar>(t: &T) -> &Bar {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Bar` cannot be made into an object
    |
    = note: method `bar` has generic type parameters
diff --git a/src/test/ui/object-safety-mentions-Self.rs b/src/test/ui/object-safety-mentions-Self.rs
index d85614fa5b5..0f59a928fef 100644
--- a/src/test/ui/object-safety-mentions-Self.rs
+++ b/src/test/ui/object-safety-mentions-Self.rs
@@ -26,15 +26,11 @@ trait Quux {
 
 fn make_bar<T:Bar>(t: &T) -> &Bar {
         //~^ ERROR E0038
-        //~| NOTE method `bar` references the `Self` type in its arguments or return type
-        //~| NOTE the trait `Bar` cannot be made into an object
     loop { }
 }
 
 fn make_baz<T:Baz>(t: &T) -> &Baz {
         //~^ ERROR E0038
-        //~| NOTE method `bar` references the `Self` type in its arguments or return type
-        //~| NOTE the trait `Baz` cannot be made into an object
     t
 }
 
diff --git a/src/test/ui/object-safety-mentions-Self.stderr b/src/test/ui/object-safety-mentions-Self.stderr
index 2f7c8d5eec2..8ed8dcc8031 100644
--- a/src/test/ui/object-safety-mentions-Self.stderr
+++ b/src/test/ui/object-safety-mentions-Self.stderr
@@ -7,9 +7,9 @@ error[E0038]: the trait `Bar` cannot be made into an object
    = note: method `bar` references the `Self` type in its arguments or return type
 
 error[E0038]: the trait `Baz` cannot be made into an object
-  --> $DIR/object-safety-mentions-Self.rs:34:1
+  --> $DIR/object-safety-mentions-Self.rs:32:1
    |
-34 | fn make_baz<T:Baz>(t: &T) -> &Baz {
+32 | fn make_baz<T:Baz>(t: &T) -> &Baz {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Baz` cannot be made into an object
    |
    = note: method `bar` references the `Self` type in its arguments or return type
diff --git a/src/test/ui/object-safety-sized.rs b/src/test/ui/object-safety-sized.rs
index accd7fa87ac..7c58609c7e9 100644
--- a/src/test/ui/object-safety-sized.rs
+++ b/src/test/ui/object-safety-sized.rs
@@ -17,8 +17,6 @@ trait Bar : Sized {
 
 fn make_bar<T:Bar>(t: &T) -> &Bar {
         //~^ ERROR E0038
-        //~| NOTE the trait cannot require that `Self : Sized`
-        //~| NOTE the trait `Bar` cannot be made into an object
     t
 }
 
diff --git a/src/test/ui/object-safety-supertrait-mentions-Self.rs b/src/test/ui/object-safety-supertrait-mentions-Self.rs
index a93c056c410..53b4fc2de9e 100644
--- a/src/test/ui/object-safety-supertrait-mentions-Self.rs
+++ b/src/test/ui/object-safety-supertrait-mentions-Self.rs
@@ -24,8 +24,6 @@ fn make_bar<T:Bar<u32>>(t: &T) -> &Bar<u32> {
 
 fn make_baz<T:Baz>(t: &T) -> &Baz {
     //~^ ERROR E0038
-    //~| NOTE the trait cannot use `Self` as a type parameter in the supertraits or where-clauses
-    //~| NOTE the trait `Baz` cannot be made into an object
     t
 }
 
diff --git a/src/test/ui/on-unimplemented/multiple-impls.rs b/src/test/ui/on-unimplemented/multiple-impls.rs
index 15375936b89..539f5d63c0b 100644
--- a/src/test/ui/on-unimplemented/multiple-impls.rs
+++ b/src/test/ui/on-unimplemented/multiple-impls.rs
@@ -42,20 +42,11 @@ impl Index<Bar<usize>> for [i32] {
 fn main() {
     Index::index(&[] as &[i32], 2u32);
     //~^ ERROR E0277
-    //~| NOTE trait message
-    //~| NOTE required by
     //~| ERROR E0277
-    //~| NOTE trait message
     Index::index(&[] as &[i32], Foo(2u32));
     //~^ ERROR E0277
-    //~| NOTE on impl for Foo
-    //~| NOTE required by
     //~| ERROR E0277
-    //~| NOTE on impl for Foo
     Index::index(&[] as &[i32], Bar(2u32));
     //~^ ERROR E0277
-    //~| NOTE on impl for Bar
-    //~| NOTE required by
     //~| ERROR E0277
-    //~| NOTE on impl for Bar
 }
diff --git a/src/test/ui/on-unimplemented/multiple-impls.stderr b/src/test/ui/on-unimplemented/multiple-impls.stderr
index a1fa8b720a8..1f71be446ef 100644
--- a/src/test/ui/on-unimplemented/multiple-impls.stderr
+++ b/src/test/ui/on-unimplemented/multiple-impls.stderr
@@ -16,35 +16,35 @@ error[E0277]: the trait bound `[i32]: Index<u32>` is not satisfied
    = help: the trait `Index<u32>` is not implemented for `[i32]`
 
 error[E0277]: the trait bound `[i32]: Index<Foo<u32>>` is not satisfied
-  --> $DIR/multiple-impls.rs:49:5
+  --> $DIR/multiple-impls.rs:46:5
    |
-49 |     Index::index(&[] as &[i32], Foo(2u32));
+46 |     Index::index(&[] as &[i32], Foo(2u32));
    |     ^^^^^^^^^^^^ on impl for Foo
    |
    = help: the trait `Index<Foo<u32>>` is not implemented for `[i32]`
    = note: required by `Index::index`
 
 error[E0277]: the trait bound `[i32]: Index<Foo<u32>>` is not satisfied
-  --> $DIR/multiple-impls.rs:49:5
+  --> $DIR/multiple-impls.rs:46:5
    |
-49 |     Index::index(&[] as &[i32], Foo(2u32));
+46 |     Index::index(&[] as &[i32], Foo(2u32));
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ on impl for Foo
    |
    = help: the trait `Index<Foo<u32>>` is not implemented for `[i32]`
 
 error[E0277]: the trait bound `[i32]: Index<Bar<u32>>` is not satisfied
-  --> $DIR/multiple-impls.rs:55:5
+  --> $DIR/multiple-impls.rs:49:5
    |
-55 |     Index::index(&[] as &[i32], Bar(2u32));
+49 |     Index::index(&[] as &[i32], Bar(2u32));
    |     ^^^^^^^^^^^^ on impl for Bar
    |
    = help: the trait `Index<Bar<u32>>` is not implemented for `[i32]`
    = note: required by `Index::index`
 
 error[E0277]: the trait bound `[i32]: Index<Bar<u32>>` is not satisfied
-  --> $DIR/multiple-impls.rs:55:5
+  --> $DIR/multiple-impls.rs:49:5
    |
-55 |     Index::index(&[] as &[i32], Bar(2u32));
+49 |     Index::index(&[] as &[i32], Bar(2u32));
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ on impl for Bar
    |
    = help: the trait `Index<Bar<u32>>` is not implemented for `[i32]`
diff --git a/src/test/ui/on-unimplemented/on-impl.rs b/src/test/ui/on-unimplemented/on-impl.rs
index 66d612baab4..da56ae64993 100644
--- a/src/test/ui/on-unimplemented/on-impl.rs
+++ b/src/test/ui/on-unimplemented/on-impl.rs
@@ -31,8 +31,5 @@ impl Index<usize> for [i32] {
 fn main() {
     Index::<u32>::index(&[1, 2, 3] as &[i32], 2u32);
     //~^ ERROR E0277
-    //~| NOTE a usize is required
-    //~| NOTE required by
     //~| ERROR E0277
-    //~| NOTE a usize is required
 }
diff --git a/src/test/ui/on-unimplemented/on-trait.rs b/src/test/ui/on-unimplemented/on-trait.rs
index ed7ec9b1436..a5eea55eeb9 100644
--- a/src/test/ui/on-unimplemented/on-trait.rs
+++ b/src/test/ui/on-unimplemented/on-trait.rs
@@ -36,10 +36,6 @@ pub fn main() {
     let x = vec![1u8, 2, 3, 4];
     let y: Option<Vec<u8>> = collect(x.iter()); // this should give approximately the same error for x.iter().collect()
     //~^ ERROR
-    //~^^ NOTE a collection of type `std::option::Option<std::vec::Vec<u8>>` cannot be built from an iterator over elements of type `&u8`
-    //~^^^ NOTE required by `collect`
 
     let x: String = foobar(); //~ ERROR
-    //~^ NOTE test error `std::string::String` with `u8` `_` `u32`
-    //~^^ NOTE required by `foobar`
 }
diff --git a/src/test/ui/on-unimplemented/on-trait.stderr b/src/test/ui/on-unimplemented/on-trait.stderr
index 84986c1ecfd..cde56022fae 100644
--- a/src/test/ui/on-unimplemented/on-trait.stderr
+++ b/src/test/ui/on-unimplemented/on-trait.stderr
@@ -8,9 +8,9 @@ error[E0277]: the trait bound `std::option::Option<std::vec::Vec<u8>>: MyFromIte
    = note: required by `collect`
 
 error[E0277]: the trait bound `std::string::String: Bar::Foo<u8, _, u32>` is not satisfied
-  --> $DIR/on-trait.rs:42:21
+  --> $DIR/on-trait.rs:40:21
    |
-42 |     let x: String = foobar(); //~ ERROR
+40 |     let x: String = foobar(); //~ ERROR
    |                     ^^^^^^ test error `std::string::String` with `u8` `_` `u32` in `Bar::Foo`
    |
    = help: the trait `Bar::Foo<u8, _, u32>` is not implemented for `std::string::String`
diff --git a/src/test/ui/on-unimplemented/slice-index.rs b/src/test/ui/on-unimplemented/slice-index.rs
index 5d30c2e982e..7d67e89a78e 100644
--- a/src/test/ui/on-unimplemented/slice-index.rs
+++ b/src/test/ui/on-unimplemented/slice-index.rs
@@ -19,9 +19,5 @@ use std::ops::Index;
 fn main() {
     let x = &[1, 2, 3] as &[i32];
     x[1i32]; //~ ERROR E0277
-             //~| NOTE slice indices are of type `usize` or ranges of `usize`
-             //~| NOTE required because of the requirements on the impl of `std::ops::Index<i32>`
     x[..1i32]; //~ ERROR E0277
-               //~| NOTE slice indices are of type `usize` or ranges of `usize`
-               //~| NOTE requirements on the impl of `std::ops::Index<std::ops::RangeTo<i32>>`
 }
diff --git a/src/test/ui/on-unimplemented/slice-index.stderr b/src/test/ui/on-unimplemented/slice-index.stderr
index 68789f77f75..a1ecbce770a 100644
--- a/src/test/ui/on-unimplemented/slice-index.stderr
+++ b/src/test/ui/on-unimplemented/slice-index.stderr
@@ -8,9 +8,9 @@ error[E0277]: the trait bound `i32: std::slice::SliceIndex<[i32]>` is not satisf
    = note: required because of the requirements on the impl of `std::ops::Index<i32>` for `[i32]`
 
 error[E0277]: the trait bound `std::ops::RangeTo<i32>: std::slice::SliceIndex<[i32]>` is not satisfied
-  --> $DIR/slice-index.rs:24:5
+  --> $DIR/slice-index.rs:22:5
    |
-24 |     x[..1i32]; //~ ERROR E0277
+22 |     x[..1i32]; //~ ERROR E0277
    |     ^^^^^^^^^ slice indices are of type `usize` or ranges of `usize`
    |
    = help: the trait `std::slice::SliceIndex<[i32]>` is not implemented for `std::ops::RangeTo<i32>`
diff --git a/src/test/ui/partialeq_help.rs b/src/test/ui/partialeq_help.rs
index 52c24473bd3..ee6d632d1a3 100644
--- a/src/test/ui/partialeq_help.rs
+++ b/src/test/ui/partialeq_help.rs
@@ -10,9 +10,6 @@
 
 fn foo<T: PartialEq>(a: &T, b: T) {
     a == b; //~ ERROR E0277
-            //~| NOTE can't compare `&T` with `T`
-            //~| HELP the trait `std::cmp::PartialEq<T>` is not implemented for `&T`
-            //~| HELP consider adding a `where &T: std::cmp::PartialEq<T>` bound
 }
 
 fn main() {
diff --git a/src/test/ui/pat-slice-old-style.rs b/src/test/ui/pat-slice-old-style.rs
index d49ce56ccf6..4ff1e94b087 100644
--- a/src/test/ui/pat-slice-old-style.rs
+++ b/src/test/ui/pat-slice-old-style.rs
@@ -18,8 +18,6 @@ fn slice_pat(x: &[u8]) {
     match x {
         [a, b..] => {},
         //~^ ERROR non-reference pattern used to match a reference
-        //~| HELP add #![feature(match_default_bindings)] to the crate attributes to enable
-        //~| HELP consider using
         _ => panic!(),
     }
 }
diff --git a/src/test/ui/qualified-path-params-2.rs b/src/test/ui/qualified-path-params-2.rs
index e685ebc2720..b0dd1f2518c 100644
--- a/src/test/ui/qualified-path-params-2.rs
+++ b/src/test/ui/qualified-path-params-2.rs
@@ -27,9 +27,6 @@ impl S {
 
 type A = <S as Tr>::A::f<u8>;
 //~^ ERROR type parameters are not allowed on this type
-//~| NOTE type parameter not allowed
 //~| ERROR ambiguous associated type
-//~| NOTE ambiguous associated type
-//~| NOTE specify the type using the syntax `<<S as Tr>::A as Trait>::f`
 
 fn main() {}
diff --git a/src/test/ui/region-borrow-params-issue-29793-small.rs b/src/test/ui/region-borrow-params-issue-29793-small.rs
index 18206a68515..4fda8ec3f38 100644
--- a/src/test/ui/region-borrow-params-issue-29793-small.rs
+++ b/src/test/ui/region-borrow-params-issue-29793-small.rs
@@ -19,16 +19,8 @@ fn escaping_borrow_of_closure_params_1() {
         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
         //~^ ERROR `x` does not live long enough
         //~| ERROR `y` does not live long enough
-        //~| NOTE capture occurs here
-        //~| NOTE capture occurs here
-        //~| NOTE does not live long enough
-        //~| NOTE does not live long enough
-        //~| NOTE values in a scope are dropped in the opposite order they are created
-        //~| NOTE values in a scope are dropped in the opposite order they are created
         return f;
     };
-    //~^ NOTE borrowed value dropped before borrower
-    //~| NOTE borrowed value dropped before borrower
 
     // We delberately do not call `g`; this small version of the test,
     // after adding such a call, was (properly) rejected even when the
@@ -42,16 +34,8 @@ fn escaping_borrow_of_closure_params_2() {
         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
         //~^ ERROR `x` does not live long enough
         //~| ERROR `y` does not live long enough
-        //~| NOTE capture occurs here
-        //~| NOTE capture occurs here
-        //~| NOTE does not live long enough
-        //~| NOTE does not live long enough
-        //~| NOTE values in a scope are dropped in the opposite order they are created
-        //~| NOTE values in a scope are dropped in the opposite order they are created
         f
     };
-    //~^ NOTE borrowed value dropped before borrower
-    //~| NOTE borrowed value dropped before borrower
 
     // (we don't call `g`; see above)
 }
@@ -80,11 +64,7 @@ fn escaping_borrow_of_fn_params_1() {
     fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
         //~^ ERROR E0373
-        //~| NOTE `x` is borrowed here
-        //~| NOTE may outlive borrowed value `x`
         //~| ERROR E0373
-        //~| NOTE `y` is borrowed here
-        //~| NOTE may outlive borrowed value `y`
         return Box::new(f);
     };
 
@@ -95,11 +75,7 @@ fn escaping_borrow_of_fn_params_2() {
     fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
         //~^ ERROR E0373
-        //~| NOTE `x` is borrowed here
-        //~| NOTE may outlive borrowed value `x`
         //~| ERROR E0373
-        //~| NOTE `y` is borrowed here
-        //~| NOTE may outlive borrowed value `y`
         Box::new(f)
     };
 
@@ -123,11 +99,7 @@ fn escaping_borrow_of_method_params_1() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             return Box::new(f);
         }
     }
@@ -141,11 +113,7 @@ fn escaping_borrow_of_method_params_2() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             Box::new(f)
         }
     }
@@ -173,11 +141,7 @@ fn escaping_borrow_of_trait_impl_params_1() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             return Box::new(f);
         }
     }
@@ -192,11 +156,7 @@ fn escaping_borrow_of_trait_impl_params_2() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             Box::new(f)
         }
     }
@@ -224,11 +184,7 @@ fn escaping_borrow_of_trait_default_params_1() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             return Box::new(f);
         }
     }
@@ -242,11 +198,7 @@ fn escaping_borrow_of_trait_default_params_2() {
         fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> {
             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
             //~^ ERROR E0373
-            //~| NOTE `x` is borrowed here
-            //~| NOTE may outlive borrowed value `x`
             //~| ERROR E0373
-            //~| NOTE `y` is borrowed here
-            //~| NOTE may outlive borrowed value `y`
             Box::new(f)
         }
     }
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 3a25832c151..d640d5c8bd9 100644
--- a/src/test/ui/region-borrow-params-issue-29793-small.stderr
+++ b/src/test/ui/region-borrow-params-issue-29793-small.stderr
@@ -6,7 +6,7 @@ error[E0597]: `x` does not live long enough
    |                 |
    |                 capture occurs here
 ...
-29 |     };
+23 |     };
    |     - borrowed value dropped before borrower
    |
    = note: values in a scope are dropped in the opposite order they are created
@@ -19,227 +19,227 @@ error[E0597]: `y` does not live long enough
    |                 |
    |                 capture occurs here
 ...
-29 |     };
+23 |     };
    |     - borrowed value dropped before borrower
    |
    = note: values in a scope are dropped in the opposite order they are created
 
 error[E0597]: `x` does not live long enough
-  --> $DIR/region-borrow-params-issue-29793-small.rs:42:34
+  --> $DIR/region-borrow-params-issue-29793-small.rs:34:34
    |
-42 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+34 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ---------        ^ does not live long enough
    |                 |
    |                 capture occurs here
 ...
-52 |     };
+38 |     };
    |     - borrowed value dropped before borrower
    |
    = note: values in a scope are dropped in the opposite order they are created
 
 error[E0597]: `y` does not live long enough
-  --> $DIR/region-borrow-params-issue-29793-small.rs:42:45
+  --> $DIR/region-borrow-params-issue-29793-small.rs:34:45
    |
-42 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+34 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ---------                   ^ does not live long enough
    |                 |
    |                 capture occurs here
 ...
-52 |     };
+38 |     };
    |     - borrowed value dropped before borrower
    |
    = note: values in a scope are dropped in the opposite order they are created
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-  --> $DIR/region-borrow-params-issue-29793-small.rs:81:17
+  --> $DIR/region-borrow-params-issue-29793-small.rs:65:17
    |
-81 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+65 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^        - `x` is borrowed here
    |                 |
    |                 may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
    |
-81 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+65 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-  --> $DIR/region-borrow-params-issue-29793-small.rs:81:17
+  --> $DIR/region-borrow-params-issue-29793-small.rs:65:17
    |
-81 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+65 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^                   - `y` is borrowed here
    |                 |
    |                 may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
    |
-81 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+65 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-  --> $DIR/region-borrow-params-issue-29793-small.rs:96:17
+  --> $DIR/region-borrow-params-issue-29793-small.rs:76:17
    |
-96 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+76 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^        - `x` is borrowed here
    |                 |
    |                 may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
    |
-96 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+76 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-  --> $DIR/region-borrow-params-issue-29793-small.rs:96:17
+  --> $DIR/region-borrow-params-issue-29793-small.rs:76:17
    |
-96 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+76 |         let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^                   - `y` is borrowed here
    |                 |
    |                 may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
    |
-96 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+76 |         let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
    |                 ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:124:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:100:21
     |
-124 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+100 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-124 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+100 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:124:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:100:21
     |
-124 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+100 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-124 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+100 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:142:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:114:21
     |
-142 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+114 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-142 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+114 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:142:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:114:21
     |
-142 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+114 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-142 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+114 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:174:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:142:21
     |
-174 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+142 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-174 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+142 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:174:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:142:21
     |
-174 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+142 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-174 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+142 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:193:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:157:21
     |
-193 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+157 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-193 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+157 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:193:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:157:21
     |
-193 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+157 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-193 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+157 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:225:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:185:21
     |
-225 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+185 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-225 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+185 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:225:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:185:21
     |
-225 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+185 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-225 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+185 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `x`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:243:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:199:21
     |
-243 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+199 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^        - `x` is borrowed here
     |                     |
     |                     may outlive borrowed value `x`
 help: to force the closure to take ownership of `x` (and any other referenced variables), use the `move` keyword
     |
-243 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+199 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error[E0373]: closure may outlive the current function, but it borrows `y`, which is owned by the current function
-   --> $DIR/region-borrow-params-issue-29793-small.rs:243:21
+   --> $DIR/region-borrow-params-issue-29793-small.rs:199:21
     |
-243 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+199 |             let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^                   - `y` is borrowed here
     |                     |
     |                     may outlive borrowed value `y`
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
     |
-243 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
+199 |             let f = move |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`)
     |                     ^^^^^^^^^^^^^^
 
 error: aborting due to 20 previous errors
diff --git a/src/test/ui/regions-nested-fns-2.rs b/src/test/ui/regions-nested-fns-2.rs
index 40ba34b26ed..e66b62b6fb1 100644
--- a/src/test/ui/regions-nested-fns-2.rs
+++ b/src/test/ui/regions-nested-fns-2.rs
@@ -15,9 +15,7 @@ fn nested() {
     ignore(
         |z| {
             //~^ ERROR E0373
-            //~| NOTE may outlive borrowed value `y`
             if false { &y } else { z }
-            //~^ NOTE `y` is borrowed here
         });
 }
 
diff --git a/src/test/ui/regions-nested-fns-2.stderr b/src/test/ui/regions-nested-fns-2.stderr
index 98d82d438c0..5f0bbf6d12b 100644
--- a/src/test/ui/regions-nested-fns-2.stderr
+++ b/src/test/ui/regions-nested-fns-2.stderr
@@ -3,8 +3,8 @@ error[E0373]: closure may outlive the current function, but it borrows `y`, whic
    |
 16 |         |z| {
    |         ^^^ may outlive borrowed value `y`
-...
-19 |             if false { &y } else { z }
+17 |             //~^ ERROR E0373
+18 |             if false { &y } else { z }
    |                         - `y` is borrowed here
 help: to force the closure to take ownership of `y` (and any other referenced variables), use the `move` keyword
    |
diff --git a/src/test/ui/resolve-conflict-item-vs-import.rs b/src/test/ui/resolve-conflict-item-vs-import.rs
index c91657bb463..4e74ab95d61 100644
--- a/src/test/ui/resolve-conflict-item-vs-import.rs
+++ b/src/test/ui/resolve-conflict-item-vs-import.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 use std::mem::transmute;
-//~^ NOTE previous import of the value `transmute` here
 
 fn transmute() {}
 //~^ ERROR the name `transmute` is defined multiple times
diff --git a/src/test/ui/resolve-conflict-item-vs-import.stderr b/src/test/ui/resolve-conflict-item-vs-import.stderr
index c01bf998e58..a52dcb37a2f 100644
--- a/src/test/ui/resolve-conflict-item-vs-import.stderr
+++ b/src/test/ui/resolve-conflict-item-vs-import.stderr
@@ -1,10 +1,10 @@
 error[E0255]: the name `transmute` is defined multiple times
-  --> $DIR/resolve-conflict-item-vs-import.rs:14:1
+  --> $DIR/resolve-conflict-item-vs-import.rs:13:1
    |
 11 | use std::mem::transmute;
    |     ------------------- previous import of the value `transmute` here
-...
-14 | fn transmute() {}
+12 | 
+13 | fn transmute() {}
    | ^^^^^^^^^^^^^^^^^ `transmute` redefined here
    |
    = note: `transmute` must be defined only once in the value namespace of this module
diff --git a/src/test/ui/resolve-inconsistent-names.rs b/src/test/ui/resolve-inconsistent-names.rs
index 7fee5aedb06..79d78b4ca59 100644
--- a/src/test/ui/resolve-inconsistent-names.rs
+++ b/src/test/ui/resolve-inconsistent-names.rs
@@ -13,9 +13,5 @@ fn main() {
     match y {
        a | b => {} //~  ERROR variable `a` is not bound in all patterns
                    //~^ ERROR variable `b` is not bound in all patterns
-                   //~| NOTE pattern doesn't bind `a`
-                   //~| NOTE pattern doesn't bind `b`
-                   //~| NOTE variable not in all patterns
-                   //~| NOTE variable not in all patterns
     }
 }
diff --git a/src/test/ui/resolve/issue-14254.rs b/src/test/ui/resolve/issue-14254.rs
index 38444f69628..896085329ab 100644
--- a/src/test/ui/resolve/issue-14254.rs
+++ b/src/test/ui/resolve/issue-14254.rs
@@ -30,7 +30,6 @@ impl Foo for *const BarTy {
         //~^ ERROR cannot find function `baz`
         a;
         //~^ ERROR cannot find value `a`
-        //~| NOTE not found in this scope
     }
 }
 
@@ -44,12 +43,10 @@ impl<'a> Foo for &'a BarTy {
         //~^ ERROR cannot find value `y`
         a;
         //~^ ERROR cannot find value `a`
-        //~| NOTE not found in this scope
         bah;
         //~^ ERROR cannot find value `bah`
         b;
         //~^ ERROR cannot find value `b`
-        //~| NOTE not found in this scope
     }
 }
 
@@ -63,12 +60,10 @@ impl<'a> Foo for &'a mut BarTy {
         //~^ ERROR cannot find value `y`
         a;
         //~^ ERROR cannot find value `a`
-        //~| NOTE not found in this scope
         bah;
         //~^ ERROR cannot find value `bah`
         b;
         //~^ ERROR cannot find value `b`
-        //~| NOTE not found in this scope
     }
 }
 
diff --git a/src/test/ui/resolve/issue-14254.stderr b/src/test/ui/resolve/issue-14254.stderr
index a472fc861eb..1bb5a4cab49 100644
--- a/src/test/ui/resolve/issue-14254.stderr
+++ b/src/test/ui/resolve/issue-14254.stderr
@@ -11,135 +11,135 @@ error[E0425]: cannot find value `a` in this scope
    |         ^ not found in this scope
 
 error[E0425]: cannot find function `baz` in this scope
-  --> $DIR/issue-14254.rs:39:9
+  --> $DIR/issue-14254.rs:38:9
    |
-39 |         baz();
+38 |         baz();
    |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `x` in this scope
-  --> $DIR/issue-14254.rs:41:9
+  --> $DIR/issue-14254.rs:40:9
    |
-41 |         x;
+40 |         x;
    |         ^ help: try: `self.x`
 
 error[E0425]: cannot find value `y` in this scope
-  --> $DIR/issue-14254.rs:43:9
+  --> $DIR/issue-14254.rs:42:9
    |
-43 |         y;
+42 |         y;
    |         ^ help: try: `self.y`
 
 error[E0425]: cannot find value `a` in this scope
-  --> $DIR/issue-14254.rs:45:9
+  --> $DIR/issue-14254.rs:44:9
    |
-45 |         a;
+44 |         a;
    |         ^ not found in this scope
 
 error[E0425]: cannot find value `bah` in this scope
-  --> $DIR/issue-14254.rs:48:9
+  --> $DIR/issue-14254.rs:46:9
    |
-48 |         bah;
+46 |         bah;
    |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find value `b` in this scope
-  --> $DIR/issue-14254.rs:50:9
+  --> $DIR/issue-14254.rs:48:9
    |
-50 |         b;
+48 |         b;
    |         ^ not found in this scope
 
 error[E0425]: cannot find function `baz` in this scope
-  --> $DIR/issue-14254.rs:58:9
+  --> $DIR/issue-14254.rs:55:9
    |
-58 |         baz();
+55 |         baz();
    |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `x` in this scope
-  --> $DIR/issue-14254.rs:60:9
+  --> $DIR/issue-14254.rs:57:9
    |
-60 |         x;
+57 |         x;
    |         ^ help: try: `self.x`
 
 error[E0425]: cannot find value `y` in this scope
-  --> $DIR/issue-14254.rs:62:9
+  --> $DIR/issue-14254.rs:59:9
    |
-62 |         y;
+59 |         y;
    |         ^ help: try: `self.y`
 
 error[E0425]: cannot find value `a` in this scope
-  --> $DIR/issue-14254.rs:64:9
+  --> $DIR/issue-14254.rs:61:9
    |
-64 |         a;
+61 |         a;
    |         ^ not found in this scope
 
 error[E0425]: cannot find value `bah` in this scope
-  --> $DIR/issue-14254.rs:67:9
+  --> $DIR/issue-14254.rs:63:9
    |
-67 |         bah;
+63 |         bah;
    |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find value `b` in this scope
-  --> $DIR/issue-14254.rs:69:9
+  --> $DIR/issue-14254.rs:65:9
    |
-69 |         b;
+65 |         b;
    |         ^ not found in this scope
 
 error[E0425]: cannot find function `baz` in this scope
-  --> $DIR/issue-14254.rs:77:9
+  --> $DIR/issue-14254.rs:72:9
    |
-77 |         baz();
+72 |         baz();
    |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `bah` in this scope
-  --> $DIR/issue-14254.rs:79:9
+  --> $DIR/issue-14254.rs:74:9
    |
-79 |         bah;
+74 |         bah;
    |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find function `baz` in this scope
-  --> $DIR/issue-14254.rs:86:9
+  --> $DIR/issue-14254.rs:81:9
    |
-86 |         baz();
+81 |         baz();
    |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `bah` in this scope
-  --> $DIR/issue-14254.rs:88:9
+  --> $DIR/issue-14254.rs:83:9
    |
-88 |         bah;
+83 |         bah;
    |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find function `baz` in this scope
-  --> $DIR/issue-14254.rs:95:9
+  --> $DIR/issue-14254.rs:90:9
    |
-95 |         baz();
+90 |         baz();
    |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `bah` in this scope
-  --> $DIR/issue-14254.rs:97:9
+  --> $DIR/issue-14254.rs:92:9
    |
-97 |         bah;
+92 |         bah;
    |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find function `baz` in this scope
-   --> $DIR/issue-14254.rs:104:9
-    |
-104 |         baz();
-    |         ^^^ help: try: `self.baz`
+  --> $DIR/issue-14254.rs:99:9
+   |
+99 |         baz();
+   |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `bah` in this scope
-   --> $DIR/issue-14254.rs:106:9
+   --> $DIR/issue-14254.rs:101:9
     |
-106 |         bah;
+101 |         bah;
     |         ^^^ help: try: `Self::bah`
 
 error[E0425]: cannot find function `baz` in this scope
-   --> $DIR/issue-14254.rs:113:9
+   --> $DIR/issue-14254.rs:108:9
     |
-113 |         baz();
+108 |         baz();
     |         ^^^ help: try: `self.baz`
 
 error[E0425]: cannot find value `bah` in this scope
-   --> $DIR/issue-14254.rs:115:9
+   --> $DIR/issue-14254.rs:110:9
     |
-115 |         bah;
+110 |         bah;
     |         ^^^ help: try: `Self::bah`
 
 error[E0601]: main function not found
diff --git a/src/test/ui/resolve/issue-17518.rs b/src/test/ui/resolve/issue-17518.rs
index 295880c9499..1efbd1a004f 100644
--- a/src/test/ui/resolve/issue-17518.rs
+++ b/src/test/ui/resolve/issue-17518.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 enum SomeEnum {
-//~^ HELP you can import it into scope
     E
 }
 
diff --git a/src/test/ui/resolve/issue-17518.stderr b/src/test/ui/resolve/issue-17518.stderr
index 33f15267e4a..ffb110d5c3a 100644
--- a/src/test/ui/resolve/issue-17518.stderr
+++ b/src/test/ui/resolve/issue-17518.stderr
@@ -1,7 +1,7 @@
 error[E0422]: cannot find struct, variant or union type `E` in this scope
-  --> $DIR/issue-17518.rs:17:5
+  --> $DIR/issue-17518.rs:16:5
    |
-17 |     E { name: "foobar" }; //~ ERROR cannot find struct, variant or union type `E`
+16 |     E { name: "foobar" }; //~ ERROR cannot find struct, variant or union type `E`
    |     ^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
diff --git a/src/test/ui/resolve/issue-21221-2.rs b/src/test/ui/resolve/issue-21221-2.rs
index c0ebc57efb5..4ddb4d669fc 100644
--- a/src/test/ui/resolve/issue-21221-2.rs
+++ b/src/test/ui/resolve/issue-21221-2.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 pub mod foo {
-//~^ HELP you can import it into scope
     pub mod bar {
         // note: trait T is not public, but being in the current
         // crate, it's fine to show it, since the programmer can
diff --git a/src/test/ui/resolve/issue-21221-2.stderr b/src/test/ui/resolve/issue-21221-2.stderr
index ffe57c5099d..0ae8052758d 100644
--- a/src/test/ui/resolve/issue-21221-2.stderr
+++ b/src/test/ui/resolve/issue-21221-2.stderr
@@ -1,7 +1,7 @@
 error[E0405]: cannot find trait `T` in this scope
-  --> $DIR/issue-21221-2.rs:29:6
+  --> $DIR/issue-21221-2.rs:28:6
    |
-29 | impl T for Foo { }
+28 | impl T for Foo { }
    |      ^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
diff --git a/src/test/ui/resolve/issue-21221-3.rs b/src/test/ui/resolve/issue-21221-3.rs
index 046066b1986..a93330b2865 100644
--- a/src/test/ui/resolve/issue-21221-3.rs
+++ b/src/test/ui/resolve/issue-21221-3.rs
@@ -16,7 +16,6 @@
 extern crate issue_21221_3;
 
 struct Foo;
-//~^ HELP possible candidate is found in another module
 
 // NOTE: This shows only traits accessible from the current
 // crate, thus the two private entities:
diff --git a/src/test/ui/resolve/issue-21221-3.stderr b/src/test/ui/resolve/issue-21221-3.stderr
index f134b864414..b26a8cdacb0 100644
--- a/src/test/ui/resolve/issue-21221-3.stderr
+++ b/src/test/ui/resolve/issue-21221-3.stderr
@@ -1,7 +1,7 @@
 error[E0405]: cannot find trait `OuterTrait` in this scope
-  --> $DIR/issue-21221-3.rs:26:6
+  --> $DIR/issue-21221-3.rs:25:6
    |
-26 | impl OuterTrait for Foo {}
+25 | impl OuterTrait for Foo {}
    |      ^^^^^^^^^^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
diff --git a/src/test/ui/resolve/issue-21221-4.rs b/src/test/ui/resolve/issue-21221-4.rs
index da8f2c6e778..ec6ad2a4829 100644
--- a/src/test/ui/resolve/issue-21221-4.rs
+++ b/src/test/ui/resolve/issue-21221-4.rs
@@ -16,7 +16,6 @@
 extern crate issue_21221_4;
 
 struct Foo;
-//~^ HELP possible candidate is found in another module
 
 impl T for Foo {}
 //~^ ERROR cannot find trait `T`
diff --git a/src/test/ui/resolve/issue-21221-4.stderr b/src/test/ui/resolve/issue-21221-4.stderr
index 0f3830bc258..0a22d8e1fe1 100644
--- a/src/test/ui/resolve/issue-21221-4.stderr
+++ b/src/test/ui/resolve/issue-21221-4.stderr
@@ -1,7 +1,7 @@
 error[E0405]: cannot find trait `T` in this scope
-  --> $DIR/issue-21221-4.rs:21:6
+  --> $DIR/issue-21221-4.rs:20:6
    |
-21 | impl T for Foo {}
+20 | impl T for Foo {}
    |      ^ not found in this scope
 help: possible candidate is found in another module, you can import it into scope
    |
diff --git a/src/test/ui/resolve/issue-23305.rs b/src/test/ui/resolve/issue-23305.rs
index 9f7b6ff5767..f249e0e1127 100644
--- a/src/test/ui/resolve/issue-23305.rs
+++ b/src/test/ui/resolve/issue-23305.rs
@@ -14,8 +14,5 @@ pub trait ToNbt<T> {
 
 impl ToNbt<Self> {}
 //~^ ERROR unsupported cyclic reference
-//~| NOTE cyclic reference
-//~| NOTE the cycle begins when processing
-//~| NOTE ...which then again requires
 
 fn main() {}
diff --git a/src/test/ui/resolve/issue-2356.rs b/src/test/ui/resolve/issue-2356.rs
index d0490ff981d..9505e490197 100644
--- a/src/test/ui/resolve/issue-2356.rs
+++ b/src/test/ui/resolve/issue-2356.rs
@@ -26,7 +26,6 @@ impl MaybeDog {
     // If this provides a suggestion, it's a bug as MaybeDog doesn't impl Groom
     shave();
     //~^ ERROR cannot find function `shave`
-    //~| NOTE not found in this scope
   }
 }
 
@@ -49,12 +48,10 @@ impl Groom for cat {
   fn shave(other: usize) {
     whiskers -= other;
     //~^ ERROR cannot find value `whiskers`
-    //~| NOTE `self` value is only available in methods with `self` parameter
     shave(4);
     //~^ ERROR cannot find function `shave`
     purr();
     //~^ ERROR cannot find function `purr`
-    //~| NOTE not found in this scope
   }
 }
 
@@ -64,16 +61,12 @@ impl cat {
     fn purr_louder() {
         static_method();
         //~^ ERROR cannot find function `static_method`
-        //~| NOTE not found in this scope
         purr();
         //~^ ERROR cannot find function `purr`
-        //~| NOTE not found in this scope
         purr();
         //~^ ERROR cannot find function `purr`
-        //~| NOTE not found in this scope
         purr();
         //~^ ERROR cannot find function `purr`
-        //~| NOTE not found in this scope
     }
 }
 
@@ -81,7 +74,6 @@ impl cat {
   fn meow() {
     if self.whiskers > 3 {
         //~^ ERROR expected value, found module `self`
-        //~| NOTE `self` value is only available in methods with `self` parameter
         println!("MEOW");
     }
   }
@@ -89,10 +81,8 @@ impl cat {
   fn purr(&self) {
     grow_older();
     //~^ ERROR cannot find function `grow_older`
-    //~| NOTE not found in this scope
     shave();
     //~^ ERROR cannot find function `shave`
-    //~| NOTE not found in this scope
   }
 
   fn burn_whiskers(&mut self) {
@@ -103,15 +93,12 @@ impl cat {
   pub fn grow_older(other:usize) {
     whiskers = 4;
     //~^ ERROR cannot find value `whiskers`
-    //~| NOTE `self` value is only available in methods with `self` parameter
     purr_louder();
     //~^ ERROR cannot find function `purr_louder`
-    //~| NOTE not found in this scope
   }
 }
 
 fn main() {
     self += 1;
     //~^ ERROR expected value, found module `self`
-    //~| NOTE `self` value is only available in methods with `self` parameter
 }
diff --git a/src/test/ui/resolve/issue-2356.stderr b/src/test/ui/resolve/issue-2356.stderr
index e98d132b519..db68167a573 100644
--- a/src/test/ui/resolve/issue-2356.stderr
+++ b/src/test/ui/resolve/issue-2356.stderr
@@ -5,105 +5,105 @@ error[E0425]: cannot find function `shave` in this scope
    |     ^^^^^ not found in this scope
 
 error[E0425]: cannot find function `clone` in this scope
-  --> $DIR/issue-2356.rs:35:5
+  --> $DIR/issue-2356.rs:34:5
    |
-35 |     clone();
+34 |     clone();
    |     ^^^^^ help: try: `self.clone`
 
 error[E0425]: cannot find function `default` in this scope
-  --> $DIR/issue-2356.rs:42:5
+  --> $DIR/issue-2356.rs:41:5
    |
-42 |     default();
+41 |     default();
    |     ^^^^^^^ help: try: `Self::default`
 
 error[E0425]: cannot find value `whiskers` in this scope
-  --> $DIR/issue-2356.rs:50:5
+  --> $DIR/issue-2356.rs:49:5
    |
-50 |     whiskers -= other;
+49 |     whiskers -= other;
    |     ^^^^^^^^
    |     |
    |     `self` value is only available in methods with `self` parameter
    |     help: try: `self.whiskers`
 
 error[E0425]: cannot find function `shave` in this scope
-  --> $DIR/issue-2356.rs:53:5
+  --> $DIR/issue-2356.rs:51:5
    |
-53 |     shave(4);
+51 |     shave(4);
    |     ^^^^^ help: try: `Self::shave`
 
 error[E0425]: cannot find function `purr` in this scope
-  --> $DIR/issue-2356.rs:55:5
+  --> $DIR/issue-2356.rs:53:5
    |
-55 |     purr();
+53 |     purr();
    |     ^^^^ not found in this scope
 
 error[E0425]: cannot find function `static_method` in this scope
-  --> $DIR/issue-2356.rs:65:9
+  --> $DIR/issue-2356.rs:62:9
    |
-65 |         static_method();
+62 |         static_method();
    |         ^^^^^^^^^^^^^ not found in this scope
 
 error[E0425]: cannot find function `purr` in this scope
-  --> $DIR/issue-2356.rs:68:9
+  --> $DIR/issue-2356.rs:64:9
    |
-68 |         purr();
+64 |         purr();
    |         ^^^^ not found in this scope
 
 error[E0425]: cannot find function `purr` in this scope
-  --> $DIR/issue-2356.rs:71:9
+  --> $DIR/issue-2356.rs:66:9
    |
-71 |         purr();
+66 |         purr();
    |         ^^^^ not found in this scope
 
 error[E0425]: cannot find function `purr` in this scope
-  --> $DIR/issue-2356.rs:74:9
+  --> $DIR/issue-2356.rs:68:9
    |
-74 |         purr();
+68 |         purr();
    |         ^^^^ not found in this scope
 
 error[E0424]: expected value, found module `self`
-  --> $DIR/issue-2356.rs:82:8
+  --> $DIR/issue-2356.rs:75:8
    |
-82 |     if self.whiskers > 3 {
+75 |     if self.whiskers > 3 {
    |        ^^^^ `self` value is only available in methods with `self` parameter
 
 error[E0425]: cannot find function `grow_older` in this scope
-  --> $DIR/issue-2356.rs:90:5
+  --> $DIR/issue-2356.rs:82:5
    |
-90 |     grow_older();
+82 |     grow_older();
    |     ^^^^^^^^^^ not found in this scope
 
 error[E0425]: cannot find function `shave` in this scope
-  --> $DIR/issue-2356.rs:93:5
+  --> $DIR/issue-2356.rs:84:5
    |
-93 |     shave();
+84 |     shave();
    |     ^^^^^ not found in this scope
 
 error[E0425]: cannot find value `whiskers` in this scope
-  --> $DIR/issue-2356.rs:99:5
+  --> $DIR/issue-2356.rs:89:5
    |
-99 |     whiskers = 0;
+89 |     whiskers = 0;
    |     ^^^^^^^^ help: try: `self.whiskers`
 
 error[E0425]: cannot find value `whiskers` in this scope
-   --> $DIR/issue-2356.rs:104:5
-    |
-104 |     whiskers = 4;
-    |     ^^^^^^^^
-    |     |
-    |     `self` value is only available in methods with `self` parameter
-    |     help: try: `self.whiskers`
+  --> $DIR/issue-2356.rs:94:5
+   |
+94 |     whiskers = 4;
+   |     ^^^^^^^^
+   |     |
+   |     `self` value is only available in methods with `self` parameter
+   |     help: try: `self.whiskers`
 
 error[E0425]: cannot find function `purr_louder` in this scope
-   --> $DIR/issue-2356.rs:107:5
-    |
-107 |     purr_louder();
-    |     ^^^^^^^^^^^ not found in this scope
+  --> $DIR/issue-2356.rs:96:5
+   |
+96 |     purr_louder();
+   |     ^^^^^^^^^^^ not found in this scope
 
 error[E0424]: expected value, found module `self`
-   --> $DIR/issue-2356.rs:114:5
+   --> $DIR/issue-2356.rs:102:5
     |
-114 |     self += 1;
+102 |     self += 1;
     |     ^^^^ `self` value is only available in methods with `self` parameter
 
 error: aborting due to 17 previous errors
diff --git a/src/test/ui/resolve/issue-24968.rs b/src/test/ui/resolve/issue-24968.rs
index 6065646401f..0bd08f89764 100644
--- a/src/test/ui/resolve/issue-24968.rs
+++ b/src/test/ui/resolve/issue-24968.rs
@@ -10,7 +10,6 @@
 
 fn foo(_: Self) {
 //~^ ERROR cannot find type `Self`
-//~| NOTE `Self` is only available in traits and impls
 }
 
 fn main() {}
diff --git a/src/test/ui/resolve/issue-39226.rs b/src/test/ui/resolve/issue-39226.rs
index f58f7cc3869..9d7291c4059 100644
--- a/src/test/ui/resolve/issue-39226.rs
+++ b/src/test/ui/resolve/issue-39226.rs
@@ -19,7 +19,5 @@ fn main() {
     let s: Something = Something {
         handle: Handle
         //~^ ERROR expected value, found struct `Handle`
-        //~| NOTE did you mean `Handle { /* fields */ }`?
-        //~| NOTE did you mean `handle`
     };
 }
diff --git a/src/test/ui/resolve/issue-5035.rs b/src/test/ui/resolve/issue-5035.rs
index 06a753cca85..e9b50dddd30 100644
--- a/src/test/ui/resolve/issue-5035.rs
+++ b/src/test/ui/resolve/issue-5035.rs
@@ -11,8 +11,6 @@
 trait I {}
 type K = I;
 impl K for isize {} //~ ERROR expected trait, found type alias `K`
-                    //~| NOTE type aliases cannot be used for traits
-                    //~| NOTE did you mean `I`
 
 use ImportError; //~ ERROR unresolved import `ImportError` [E0432]
                  //~^ no `ImportError` in the root
diff --git a/src/test/ui/resolve/issue-5035.stderr b/src/test/ui/resolve/issue-5035.stderr
index c9de39759b5..3b37f5d4c83 100644
--- a/src/test/ui/resolve/issue-5035.stderr
+++ b/src/test/ui/resolve/issue-5035.stderr
@@ -1,7 +1,7 @@
 error[E0432]: unresolved import `ImportError`
-  --> $DIR/issue-5035.rs:17:5
+  --> $DIR/issue-5035.rs:15:5
    |
-17 | use ImportError; //~ ERROR unresolved import `ImportError` [E0432]
+15 | use ImportError; //~ ERROR unresolved import `ImportError` [E0432]
    |     ^^^^^^^^^^^ no `ImportError` in the root
 
 error[E0404]: expected trait, found type alias `K`
diff --git a/src/test/ui/resolve/issue-6702.rs b/src/test/ui/resolve/issue-6702.rs
index b391ddf3469..8c5897d1d59 100644
--- a/src/test/ui/resolve/issue-6702.rs
+++ b/src/test/ui/resolve/issue-6702.rs
@@ -15,5 +15,4 @@ struct Monster {
 
 fn main() {
     let _m = Monster(); //~ ERROR expected function, found struct `Monster`
-                        //~^ NOTE did you mean `Monster { /* fields */ }`?
 }
diff --git a/src/test/ui/resolve/privacy-struct-ctor.rs b/src/test/ui/resolve/privacy-struct-ctor.rs
index fe3774af47d..eb6edae7381 100644
--- a/src/test/ui/resolve/privacy-struct-ctor.rs
+++ b/src/test/ui/resolve/privacy-struct-ctor.rs
@@ -25,9 +25,6 @@ mod m {
         n::Z; //~ ERROR tuple struct `Z` is private
         Z;
         //~^ ERROR expected value, found struct `Z`
-        //~| NOTE constructor is not visible here due to private fields
-        //~| NOTE did you mean `S`
-        //~| NOTE did you mean `Z { /* fields */ }`
     }
 }
 
@@ -37,14 +34,10 @@ fn main() {
     m::S; //~ ERROR tuple struct `S` is private
     S;
     //~^ ERROR expected value, found struct `S`
-    //~| NOTE constructor is not visible here due to private fields
-    //~| NOTE did you mean `S { /* fields */ }`
     m::n::Z; //~ ERROR tuple struct `Z` is private
 
     xcrate::m::S; //~ ERROR tuple struct `S` is private
     xcrate::S;
     //~^ ERROR expected value, found struct `xcrate::S`
-    //~| NOTE did you mean `xcrate::S { /* fields */ }`
-    //~| NOTE constructor is not visible here due to private fields
     xcrate::m::n::Z; //~ ERROR tuple struct `Z` is private
 }
diff --git a/src/test/ui/resolve/privacy-struct-ctor.stderr b/src/test/ui/resolve/privacy-struct-ctor.stderr
index 81c52a1b7c3..39bedf59641 100644
--- a/src/test/ui/resolve/privacy-struct-ctor.stderr
+++ b/src/test/ui/resolve/privacy-struct-ctor.stderr
@@ -13,29 +13,29 @@ help: possible better candidate is found in another module, you can import it in
    |
 
 error[E0423]: expected value, found struct `S`
-  --> $DIR/privacy-struct-ctor.rs:38:5
+  --> $DIR/privacy-struct-ctor.rs:35:5
    |
-38 |     S;
+35 |     S;
    |     ^
    |     |
    |     constructor is not visible here due to private fields
    |     did you mean `S { /* fields */ }`?
 help: possible better candidate is found in another module, you can import it into scope
    |
-34 | use m::S;
+31 | use m::S;
    |
 
 error[E0423]: expected value, found struct `xcrate::S`
-  --> $DIR/privacy-struct-ctor.rs:45:5
+  --> $DIR/privacy-struct-ctor.rs:40:5
    |
-45 |     xcrate::S;
+40 |     xcrate::S;
    |     ^^^^^^^^^
    |     |
    |     constructor is not visible here due to private fields
    |     did you mean `xcrate::S { /* fields */ }`?
 help: possible better candidate is found in another module, you can import it into scope
    |
-34 | use m::S;
+31 | use m::S;
    |
 
 error[E0603]: tuple struct `Z` is private
@@ -45,27 +45,27 @@ error[E0603]: tuple struct `Z` is private
    |         ^^^^
 
 error[E0603]: tuple struct `S` is private
-  --> $DIR/privacy-struct-ctor.rs:37:5
+  --> $DIR/privacy-struct-ctor.rs:34:5
    |
-37 |     m::S; //~ ERROR tuple struct `S` is private
+34 |     m::S; //~ ERROR tuple struct `S` is private
    |     ^^^^
 
 error[E0603]: tuple struct `Z` is private
-  --> $DIR/privacy-struct-ctor.rs:42:5
+  --> $DIR/privacy-struct-ctor.rs:37:5
    |
-42 |     m::n::Z; //~ ERROR tuple struct `Z` is private
+37 |     m::n::Z; //~ ERROR tuple struct `Z` is private
    |     ^^^^^^^
 
 error[E0603]: tuple struct `S` is private
-  --> $DIR/privacy-struct-ctor.rs:44:5
+  --> $DIR/privacy-struct-ctor.rs:39:5
    |
-44 |     xcrate::m::S; //~ ERROR tuple struct `S` is private
+39 |     xcrate::m::S; //~ ERROR tuple struct `S` is private
    |     ^^^^^^^^^^^^
 
 error[E0603]: tuple struct `Z` is private
-  --> $DIR/privacy-struct-ctor.rs:49:5
+  --> $DIR/privacy-struct-ctor.rs:42:5
    |
-49 |     xcrate::m::n::Z; //~ ERROR tuple struct `Z` is private
+42 |     xcrate::m::n::Z; //~ ERROR tuple struct `Z` is private
    |     ^^^^^^^^^^^^^^^
 
 error: aborting due to 8 previous errors
diff --git a/src/test/ui/resolve/resolve-assoc-suggestions.rs b/src/test/ui/resolve/resolve-assoc-suggestions.rs
index 62d2dc7a8fa..f3bc8107360 100644
--- a/src/test/ui/resolve/resolve-assoc-suggestions.rs
+++ b/src/test/ui/resolve/resolve-assoc-suggestions.rs
@@ -25,10 +25,8 @@ impl Tr for S {
     fn method(&self) {
         let _: field;
         //~^ ERROR cannot find type `field`
-        //~| NOTE not found in this scope
         let field(..);
         //~^ ERROR cannot find tuple struct/variant `field`
-        //~| NOTE not found in this scope
         field;
         //~^ ERROR cannot find value `field`
 
@@ -36,17 +34,13 @@ impl Tr for S {
         //~^ ERROR cannot find type `Type`
         let Type(..);
         //~^ ERROR cannot find tuple struct/variant `Type`
-        //~| NOTE not found in this scope
         Type;
         //~^ ERROR cannot find value `Type`
-        //~| NOTE not found in this scope
 
         let _: method;
         //~^ ERROR cannot find type `method`
-        //~| NOTE not found in this scope
         let method(..);
         //~^ ERROR cannot find tuple struct/variant `method`
-        //~| NOTE not found in this scope
         method;
         //~^ ERROR cannot find value `method`
     }
diff --git a/src/test/ui/resolve/resolve-assoc-suggestions.stderr b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
index 4bb3947a028..3a6eeda833a 100644
--- a/src/test/ui/resolve/resolve-assoc-suggestions.stderr
+++ b/src/test/ui/resolve/resolve-assoc-suggestions.stderr
@@ -5,51 +5,51 @@ error[E0412]: cannot find type `field` in this scope
    |                ^^^^^ not found in this scope
 
 error[E0531]: cannot find tuple struct/variant `field` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:29:13
+  --> $DIR/resolve-assoc-suggestions.rs:28:13
    |
-29 |         let field(..);
+28 |         let field(..);
    |             ^^^^^ not found in this scope
 
 error[E0425]: cannot find value `field` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:32:9
+  --> $DIR/resolve-assoc-suggestions.rs:30:9
    |
-32 |         field;
+30 |         field;
    |         ^^^^^ help: try: `self.field`
 
 error[E0412]: cannot find type `Type` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:35:16
+  --> $DIR/resolve-assoc-suggestions.rs:33:16
    |
-35 |         let _: Type;
+33 |         let _: Type;
    |                ^^^^ help: try: `Self::Type`
 
 error[E0531]: cannot find tuple struct/variant `Type` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:37:13
+  --> $DIR/resolve-assoc-suggestions.rs:35:13
    |
-37 |         let Type(..);
+35 |         let Type(..);
    |             ^^^^ not found in this scope
 
 error[E0425]: cannot find value `Type` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:40:9
+  --> $DIR/resolve-assoc-suggestions.rs:37:9
    |
-40 |         Type;
+37 |         Type;
    |         ^^^^ not found in this scope
 
 error[E0412]: cannot find type `method` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:44:16
+  --> $DIR/resolve-assoc-suggestions.rs:40:16
    |
-44 |         let _: method;
+40 |         let _: method;
    |                ^^^^^^ not found in this scope
 
 error[E0531]: cannot find tuple struct/variant `method` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:47:13
+  --> $DIR/resolve-assoc-suggestions.rs:42:13
    |
-47 |         let method(..);
+42 |         let method(..);
    |             ^^^^^^ not found in this scope
 
 error[E0425]: cannot find value `method` in this scope
-  --> $DIR/resolve-assoc-suggestions.rs:50:9
+  --> $DIR/resolve-assoc-suggestions.rs:44:9
    |
-50 |         method;
+44 |         method;
    |         ^^^^^^ help: try: `self.method`
 
 error: aborting due to 9 previous errors
diff --git a/src/test/ui/resolve/resolve-hint-macro.rs b/src/test/ui/resolve/resolve-hint-macro.rs
index 72fd9a79376..cc9f73b871c 100644
--- a/src/test/ui/resolve/resolve-hint-macro.rs
+++ b/src/test/ui/resolve/resolve-hint-macro.rs
@@ -11,5 +11,4 @@
 fn main() {
     assert(true);
     //~^ ERROR expected function, found macro `assert`
-    //~| NOTE did you mean `assert!(...)`?
 }
diff --git a/src/test/ui/resolve/resolve-speculative-adjustment.rs b/src/test/ui/resolve/resolve-speculative-adjustment.rs
index 120237b662d..fb5ed150bf4 100644
--- a/src/test/ui/resolve/resolve-speculative-adjustment.rs
+++ b/src/test/ui/resolve/resolve-speculative-adjustment.rs
@@ -26,10 +26,8 @@ impl Tr for S {
             // "did you mean" messages are not printed.
             field;
             //~^ ERROR cannot find value `field`
-            //~| NOTE not found in this scope
             method();
             //~^ ERROR cannot find function `method`
-            //~| NOTE not found in this scope
         }
 
         field;
diff --git a/src/test/ui/resolve/resolve-speculative-adjustment.stderr b/src/test/ui/resolve/resolve-speculative-adjustment.stderr
index 2d74e427ea0..45512b26705 100644
--- a/src/test/ui/resolve/resolve-speculative-adjustment.stderr
+++ b/src/test/ui/resolve/resolve-speculative-adjustment.stderr
@@ -5,21 +5,21 @@ error[E0425]: cannot find value `field` in this scope
    |             ^^^^^ not found in this scope
 
 error[E0425]: cannot find function `method` in this scope
-  --> $DIR/resolve-speculative-adjustment.rs:30:13
+  --> $DIR/resolve-speculative-adjustment.rs:29:13
    |
-30 |             method();
+29 |             method();
    |             ^^^^^^ not found in this scope
 
 error[E0425]: cannot find value `field` in this scope
-  --> $DIR/resolve-speculative-adjustment.rs:35:9
+  --> $DIR/resolve-speculative-adjustment.rs:33:9
    |
-35 |         field;
+33 |         field;
    |         ^^^^^ help: try: `self.field`
 
 error[E0425]: cannot find function `method` in this scope
-  --> $DIR/resolve-speculative-adjustment.rs:37:9
+  --> $DIR/resolve-speculative-adjustment.rs:35:9
    |
-37 |         method();
+35 |         method();
    |         ^^^^^^ help: try: `self.method`
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.rs b/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.rs
index 70d072a388b..981a853a040 100644
--- a/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.rs
+++ b/src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.rs
@@ -26,53 +26,42 @@ pub mod a {
 fn h1() -> i32 {
     a.I
     //~^ ERROR expected value, found module `a`
-    //~| NOTE did you mean `a::I`?
 }
 
 fn h2() -> i32 {
     a.g()
     //~^ ERROR expected value, found module `a`
-    //~| NOTE did you mean `a::g(...)`?
 }
 
 fn h3() -> i32 {
     a.b.J
     //~^ ERROR expected value, found module `a`
-    //~| NOTE did you mean `a::b`?
 }
 
 fn h4() -> i32 {
     a::b.J
     //~^ ERROR expected value, found module `a::b`
-    //~| NOTE did you mean `a::b::J`?
-    //~| NOTE did you mean `I`
 }
 
 fn h5() {
     a.b.f();
     //~^ ERROR expected value, found module `a`
-    //~| NOTE did you mean `a::b`?
     let v = Vec::new();
     v.push(a::b);
     //~^ ERROR expected value, found module `a::b`
-    //~| NOTE did you mean `I`
 }
 
 fn h6() -> i32 {
     a::b.f()
     //~^ ERROR expected value, found module `a::b`
-    //~| NOTE did you mean `a::b::f(...)`?
-    //~| NOTE did you mean `I`
 }
 
 fn h7() {
     a::b
     //~^ ERROR expected value, found module `a::b`
-    //~| NOTE did you mean `I`
 }
 
 fn h8() -> i32 {
     a::b()
     //~^ ERROR expected function, found module `a::b`
-    //~| NOTE did you mean `I`
 }
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 fd5de16bdd1..861026ade18 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
@@ -7,67 +7,67 @@ error[E0423]: expected value, found module `a`
    |     did you mean `a::I`?
 
 error[E0423]: expected value, found module `a`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:33:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:32:5
    |
-33 |     a.g()
+32 |     a.g()
    |     ^----
    |     |
    |     did you mean `a::g(...)`?
 
 error[E0423]: expected value, found module `a`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:39:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:37:5
    |
-39 |     a.b.J
+37 |     a.b.J
    |     ^--
    |     |
    |     did you mean `a::b`?
 
 error[E0423]: expected value, found module `a::b`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:45:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:42:5
    |
-45 |     a::b.J
+42 |     a::b.J
    |     ^^^---
    |     |  |
    |     |  did you mean `I`?
    |     did you mean `a::b::J`?
 
 error[E0423]: expected value, found module `a`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:52:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:47:5
    |
-52 |     a.b.f();
+47 |     a.b.f();
    |     ^--
    |     |
    |     did you mean `a::b`?
 
 error[E0423]: expected value, found module `a::b`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:56:12
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:50:12
    |
-56 |     v.push(a::b);
+50 |     v.push(a::b);
    |            ^^^-
    |               |
    |               did you mean `I`?
 
 error[E0423]: expected value, found module `a::b`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:62:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:55:5
    |
-62 |     a::b.f()
+55 |     a::b.f()
    |     ^^^-----
    |     |  |
    |     |  did you mean `I`?
    |     did you mean `a::b::f(...)`?
 
 error[E0423]: expected value, found module `a::b`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:69:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:60:5
    |
-69 |     a::b
+60 |     a::b
    |     ^^^-
    |        |
    |        did you mean `I`?
 
 error[E0423]: expected function, found module `a::b`
-  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:75:5
+  --> $DIR/suggest-path-instead-of-mod-dot-item.rs:65:5
    |
-75 |     a::b()
+65 |     a::b()
    |     ^^^-
    |        |
    |        did you mean `I`?
diff --git a/src/test/ui/resolve/token-error-correct-2.rs b/src/test/ui/resolve/token-error-correct-2.rs
index 121a565b2b1..e49374f9ce6 100644
--- a/src/test/ui/resolve/token-error-correct-2.rs
+++ b/src/test/ui/resolve/token-error-correct-2.rs
@@ -12,8 +12,6 @@
 
 fn main() {
     if foo {
-    //~^ NOTE: unclosed delimiter
-    //~| ERROR: cannot find value `foo`
-    //~| NOTE: not found in this scope
+    //~^ ERROR: cannot find value `foo`
     ) //~ ERROR: incorrect close delimiter: `)`
 }
diff --git a/src/test/ui/resolve/token-error-correct-2.stderr b/src/test/ui/resolve/token-error-correct-2.stderr
index feb12612e66..00bd5dba8d9 100644
--- a/src/test/ui/resolve/token-error-correct-2.stderr
+++ b/src/test/ui/resolve/token-error-correct-2.stderr
@@ -1,7 +1,7 @@
 error: incorrect close delimiter: `)`
-  --> $DIR/token-error-correct-2.rs:18:5
+  --> $DIR/token-error-correct-2.rs:16:5
    |
-18 |     ) //~ ERROR: incorrect close delimiter: `)`
+16 |     ) //~ ERROR: incorrect close delimiter: `)`
    |     ^
    |
 note: unclosed delimiter
diff --git a/src/test/ui/resolve/token-error-correct-3.rs b/src/test/ui/resolve/token-error-correct-3.rs
index 746eee9ecd7..6d216178a75 100644
--- a/src/test/ui/resolve/token-error-correct-3.rs
+++ b/src/test/ui/resolve/token-error-correct-3.rs
@@ -19,10 +19,7 @@ pub mod raw {
                                                                callback: F)
                                                                -> io::Result<bool> {
         if !is_directory(path.as_ref()) { //~ ERROR: cannot find function `is_directory`
-                                          //~^ NOTE: not found in this scope
-            callback(path.as_ref();  //~ NOTE: unclosed delimiter
-                     //~^ NOTE: expected one of
-                     //~| ERROR expected one of
+            callback(path.as_ref(); //~ ERROR expected one of
             fs::create_dir_all(path.as_ref()).map(|()| true) //~ ERROR: mismatched types
             //~^ expected (), found enum `std::result::Result`
             //~| expected type `()`
diff --git a/src/test/ui/resolve/token-error-correct-3.stderr b/src/test/ui/resolve/token-error-correct-3.stderr
index b500a349f6c..f2281a24e23 100644
--- a/src/test/ui/resolve/token-error-correct-3.stderr
+++ b/src/test/ui/resolve/token-error-correct-3.stderr
@@ -1,28 +1,28 @@
 error: incorrect close delimiter: `}`
-  --> $DIR/token-error-correct-3.rs:31:9
+  --> $DIR/token-error-correct-3.rs:28:9
    |
-31 |         } else { //~ ERROR: incorrect close delimiter: `}`
+28 |         } else { //~ ERROR: incorrect close delimiter: `}`
    |         ^
    |
 note: unclosed delimiter
-  --> $DIR/token-error-correct-3.rs:23:21
+  --> $DIR/token-error-correct-3.rs:22:21
    |
-23 |             callback(path.as_ref();  //~ NOTE: unclosed delimiter
+22 |             callback(path.as_ref(); //~ ERROR expected one of
    |                     ^
 
 error: expected one of `,`, `.`, `?`, or an operator, found `;`
-  --> $DIR/token-error-correct-3.rs:23:35
+  --> $DIR/token-error-correct-3.rs:22:35
    |
-23 |             callback(path.as_ref();  //~ NOTE: unclosed delimiter
+22 |             callback(path.as_ref(); //~ ERROR expected one of
    |                                   ^ expected one of `,`, `.`, `?`, or an operator here
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `)`
-  --> $DIR/token-error-correct-3.rs:31:9
+  --> $DIR/token-error-correct-3.rs:28:9
    |
-26 |             fs::create_dir_all(path.as_ref()).map(|()| true) //~ ERROR: mismatched types
+23 |             fs::create_dir_all(path.as_ref()).map(|()| true) //~ ERROR: mismatched types
    |                                                             - expected one of `.`, `;`, `?`, `}`, or an operator here
 ...
-31 |         } else { //~ ERROR: incorrect close delimiter: `}`
+28 |         } else { //~ ERROR: incorrect close delimiter: `}`
    |         ^ unexpected token
 
 error[E0425]: cannot find function `is_directory` in this scope
@@ -32,9 +32,9 @@ error[E0425]: cannot find function `is_directory` in this scope
    |             ^^^^^^^^^^^^ not found in this scope
 
 error[E0308]: mismatched types
-  --> $DIR/token-error-correct-3.rs:26:13
+  --> $DIR/token-error-correct-3.rs:23:13
    |
-26 |             fs::create_dir_all(path.as_ref()).map(|()| true) //~ ERROR: mismatched types
+23 |             fs::create_dir_all(path.as_ref()).map(|()| true) //~ ERROR: mismatched types
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: try adding a semicolon: `;`
    |             |
    |             expected (), found enum `std::result::Result`
diff --git a/src/test/ui/resolve/token-error-correct.rs b/src/test/ui/resolve/token-error-correct.rs
index 0c7fe0df1c7..f8b5e670b84 100644
--- a/src/test/ui/resolve/token-error-correct.rs
+++ b/src/test/ui/resolve/token-error-correct.rs
@@ -12,9 +12,7 @@
 
 fn main() {
     foo(bar(;
-    //~^ NOTE: unclosed delimiter
-    //~| NOTE: unclosed delimiter
-    //~| ERROR: expected expression, found `;`
+    //~^ ERROR: expected expression, found `;`
 }
 //~^ ERROR: incorrect close delimiter: `}`
 //~| ERROR: incorrect close delimiter: `}`
diff --git a/src/test/ui/resolve/token-error-correct.stderr b/src/test/ui/resolve/token-error-correct.stderr
index cad58b30df2..0e396f6254a 100644
--- a/src/test/ui/resolve/token-error-correct.stderr
+++ b/src/test/ui/resolve/token-error-correct.stderr
@@ -1,7 +1,7 @@
 error: incorrect close delimiter: `}`
-  --> $DIR/token-error-correct.rs:18:1
+  --> $DIR/token-error-correct.rs:16:1
    |
-18 | }
+16 | }
    | ^
    |
 note: unclosed delimiter
@@ -11,9 +11,9 @@ note: unclosed delimiter
    |            ^
 
 error: incorrect close delimiter: `}`
-  --> $DIR/token-error-correct.rs:18:1
+  --> $DIR/token-error-correct.rs:16:1
    |
-18 | }
+16 | }
    | ^
    |
 note: unclosed delimiter
@@ -29,9 +29,9 @@ error: expected expression, found `;`
    |             ^
 
 error: expected expression, found `)`
-  --> $DIR/token-error-correct.rs:18:1
+  --> $DIR/token-error-correct.rs:16:1
    |
-18 | }
+16 | }
    | ^
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.rs b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.rs
index ee4c40f2c8d..9d5e2e89666 100644
--- a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.rs
+++ b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.rs
@@ -10,12 +10,10 @@
 
 fn f<F:Nonexist(isize) -> isize>(x: F) {}
 //~^ ERROR cannot find trait `Nonexist`
-//~| NOTE not found in this scope
 
 type Typedef = isize;
 
 fn g<F:Typedef(isize) -> isize>(x: F) {}
 //~^ ERROR expected trait, found type alias `Typedef`
-//~| NOTE type aliases cannot be used for traits
 
 fn main() {}
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 015dbfc3dc7..eaee35451ec 100644
--- a/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
+++ b/src/test/ui/resolve/unboxed-closure-sugar-nonexistent-trait.stderr
@@ -5,9 +5,9 @@ error[E0405]: cannot find trait `Nonexist` in this scope
    |        ^^^^^^^^ not found in this scope
 
 error[E0404]: expected trait, found type alias `Typedef`
-  --> $DIR/unboxed-closure-sugar-nonexistent-trait.rs:17:8
+  --> $DIR/unboxed-closure-sugar-nonexistent-trait.rs:16:8
    |
-17 | fn g<F:Typedef(isize) -> isize>(x: F) {}
+16 | fn g<F:Typedef(isize) -> isize>(x: F) {}
    |        ^^^^^^^^^^^^^^^^^^^^^^^ type aliases cannot be used for traits
 
 error: cannot continue compilation due to previous error
diff --git a/src/test/ui/resolve/unresolved_static_type_field.rs b/src/test/ui/resolve/unresolved_static_type_field.rs
index 711e46b1248..9ba39ce08c7 100644
--- a/src/test/ui/resolve/unresolved_static_type_field.rs
+++ b/src/test/ui/resolve/unresolved_static_type_field.rs
@@ -18,7 +18,6 @@ impl Foo {
     fn bar() {
         f(cx);
         //~^ ERROR cannot find value `cx` in this scope
-        //~| NOTE `self` value is only available in methods with `self` parameter
     }
 }
 
diff --git a/src/test/ui/self-impl.rs b/src/test/ui/self-impl.rs
index 860e69fcaec..1494d9ca574 100644
--- a/src/test/ui/self-impl.rs
+++ b/src/test/ui/self-impl.rs
@@ -32,12 +32,8 @@ impl Bar {
     fn f() {
         let _: <Self>::Baz = true;
         //~^ ERROR ambiguous associated type
-        //~| NOTE ambiguous associated type
-        //~| NOTE specify the type using the syntax `<Bar as Trait>::Baz`
         let _: Self::Baz = true;
         //~^ ERROR ambiguous associated type
-        //~| NOTE ambiguous associated type
-        //~| NOTE specify the type using the syntax `<Bar as Trait>::Baz`
     }
 }
 
diff --git a/src/test/ui/self-impl.stderr b/src/test/ui/self-impl.stderr
index ab056127ee6..e1be5c18a68 100644
--- a/src/test/ui/self-impl.stderr
+++ b/src/test/ui/self-impl.stderr
@@ -7,9 +7,9 @@ error[E0223]: ambiguous associated type
    = note: specify the type using the syntax `<Bar as Trait>::Baz`
 
 error[E0223]: ambiguous associated type
-  --> $DIR/self-impl.rs:37:16
+  --> $DIR/self-impl.rs:35:16
    |
-37 |         let _: Self::Baz = true;
+35 |         let _: Self::Baz = true;
    |                ^^^^^^^^^ ambiguous associated type
    |
    = note: specify the type using the syntax `<Bar as Trait>::Baz`
diff --git a/src/test/ui/shadowed-lifetime.rs b/src/test/ui/shadowed-lifetime.rs
index 31283623a3c..63e4038398d 100644
--- a/src/test/ui/shadowed-lifetime.rs
+++ b/src/test/ui/shadowed-lifetime.rs
@@ -13,18 +13,14 @@
 struct Foo<'a>(&'a isize);
 
 impl<'a> Foo<'a> {
-    //~^ NOTE  first declared here
     fn shadow_in_method<'a>(&'a self) -> &'a isize {
         //~^ ERROR lifetime name `'a` shadows a lifetime name that is already in scope
-        //~| NOTE lifetime 'a already in scope
         self.0
     }
 
     fn shadow_in_type<'b>(&'b self) -> &'b isize {
-        //~^ NOTE  first declared here
         let x: for<'b> fn(&'b isize) = panic!();
         //~^ ERROR lifetime name `'b` shadows a lifetime name that is already in scope
-        //~| NOTE lifetime 'b already in scope
         self.0
     }
 
diff --git a/src/test/ui/shadowed-lifetime.stderr b/src/test/ui/shadowed-lifetime.stderr
index d4c6a7c9aaf..8eaa3e59565 100644
--- a/src/test/ui/shadowed-lifetime.stderr
+++ b/src/test/ui/shadowed-lifetime.stderr
@@ -1,19 +1,17 @@
 error[E0496]: lifetime name `'a` shadows a lifetime name that is already in scope
-  --> $DIR/shadowed-lifetime.rs:17:25
+  --> $DIR/shadowed-lifetime.rs:16:25
    |
 15 | impl<'a> Foo<'a> {
    |      -- first declared here
-16 |     //~^ NOTE  first declared here
-17 |     fn shadow_in_method<'a>(&'a self) -> &'a isize {
+16 |     fn shadow_in_method<'a>(&'a self) -> &'a isize {
    |                         ^^ lifetime 'a already in scope
 
 error[E0496]: lifetime name `'b` shadows a lifetime name that is already in scope
-  --> $DIR/shadowed-lifetime.rs:25:20
+  --> $DIR/shadowed-lifetime.rs:22:20
    |
-23 |     fn shadow_in_type<'b>(&'b self) -> &'b isize {
+21 |     fn shadow_in_type<'b>(&'b self) -> &'b isize {
    |                       -- first declared here
-24 |         //~^ NOTE  first declared here
-25 |         let x: for<'b> fn(&'b isize) = panic!();
+22 |         let x: for<'b> fn(&'b isize) = panic!();
    |                    ^^ lifetime 'b already in scope
 
 error: aborting due to 2 previous errors
diff --git a/src/test/ui/span/E0046.rs b/src/test/ui/span/E0046.rs
index 9e757860a85..53813a4f586 100644
--- a/src/test/ui/span/E0046.rs
+++ b/src/test/ui/span/E0046.rs
@@ -10,14 +10,12 @@
 
 trait Foo {
     fn foo();
-    //~^ NOTE `foo` from trait
 }
 
 struct Bar;
 
 impl Foo for Bar {}
 //~^ ERROR E0046
-//~| NOTE missing `foo` in implementation
 
 fn main() {
 }
diff --git a/src/test/ui/span/E0046.stderr b/src/test/ui/span/E0046.stderr
index 729a5156124..cd963de441b 100644
--- a/src/test/ui/span/E0046.stderr
+++ b/src/test/ui/span/E0046.stderr
@@ -1,10 +1,10 @@
 error[E0046]: not all trait items implemented, missing: `foo`
-  --> $DIR/E0046.rs:18:1
+  --> $DIR/E0046.rs:17:1
    |
 12 |     fn foo();
    |     --------- `foo` from trait
 ...
-18 | impl Foo for Bar {}
+17 | impl Foo for Bar {}
    | ^^^^^^^^^^^^^^^^^^^ missing `foo` in implementation
 
 error: aborting due to previous error
diff --git a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.rs b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.rs
index 1c45771ff8a..66673c152d5 100644
--- a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.rs
+++ b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.rs
@@ -21,12 +21,8 @@ struct Test<'a> {
 fn call<F>(mut f: F) where F: FnMut(Fn) {
     f(Box::new(|| {
     //~^ ERROR: cannot borrow `f` as mutable more than once
-    //~| NOTE first mutable borrow occurs here
-    //~| NOTE second mutable borrow occurs here
         f((Box::new(|| {})))
-        //~^ NOTE borrow occurs due to use of `f` in closure
     }));
-    //~^ NOTE first borrow ends here
 }
 
 fn test1() {
@@ -36,10 +32,8 @@ fn test1() {
 }
 
 fn test2<F>(f: &F) where F: FnMut() {
-    //~^ NOTE use `&mut F` here to make mutable
     (*f)();
     //~^ ERROR cannot borrow immutable borrowed content `*f` as mutable
-    //~| NOTE cannot borrow as mutable
 }
 
 fn test3<F>(f: &mut F) where F: FnMut() {
@@ -47,10 +41,8 @@ fn test3<F>(f: &mut F) where F: FnMut() {
 }
 
 fn test4(f: &Test) {
-    //~^ NOTE use `&mut Test` here to make mutable
     f.f.call_mut(())
     //~^ ERROR: cannot borrow immutable `Box` content `*f.f` as mutable
-    //~| NOTE cannot borrow as mutable
 }
 
 fn test5(f: &mut Test) {
@@ -67,14 +59,10 @@ fn test6() {
 fn test7() {
     fn foo<F>(_: F) where F: FnMut(Box<FnMut(isize)>, isize) {}
     let mut f = |g: Box<FnMut(isize)>, b: isize| {};
-    //~^ NOTE captured outer variable
     f(Box::new(|a| {
-    //~^ NOTE borrow of `f` occurs here
         foo(f);
         //~^ ERROR cannot move `f` into closure because it is borrowed
         //~| ERROR cannot move out of captured outer variable in an `FnMut` closure
-        //~| NOTE move into closure occurs here
-        //~| NOTE cannot move out of captured outer variable in an `FnMut` closure
     }), 3);
 }
 
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 0a1429d5509..542ee997046 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
@@ -5,47 +5,43 @@ error[E0499]: cannot borrow `f` as mutable more than once at a time
    |     -          ^^ second mutable borrow occurs here
    |     |
    |     first mutable borrow occurs here
-...
-26 |         f((Box::new(|| {})))
+23 |     //~^ ERROR: cannot borrow `f` as mutable more than once
+24 |         f((Box::new(|| {})))
    |         - borrow occurs due to use of `f` in closure
-27 |         //~^ NOTE borrow occurs due to use of `f` in closure
-28 |     }));
+25 |     }));
    |       - first borrow ends here
 
 error[E0596]: cannot borrow immutable borrowed content `*f` as mutable
-  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:40:5
+  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:35:5
    |
-38 | fn test2<F>(f: &F) where F: FnMut() {
+34 | fn test2<F>(f: &F) where F: FnMut() {
    |                -- use `&mut F` here to make mutable
-39 |     //~^ NOTE use `&mut F` here to make mutable
-40 |     (*f)();
+35 |     (*f)();
    |     ^^^^ cannot borrow as mutable
 
 error[E0596]: cannot borrow immutable `Box` content `*f.f` as mutable
-  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:51:5
+  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:44:5
    |
-49 | fn test4(f: &Test) {
+43 | fn test4(f: &Test) {
    |             ----- use `&mut Test` here to make mutable
-50 |     //~^ NOTE use `&mut Test` here to make mutable
-51 |     f.f.call_mut(())
+44 |     f.f.call_mut(())
    |     ^^^ cannot borrow as mutable
 
 error[E0504]: cannot move `f` into closure because it is borrowed
-  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:73:13
+  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:63:13
    |
-71 |     f(Box::new(|a| {
+62 |     f(Box::new(|a| {
    |     - borrow of `f` occurs here
-72 |     //~^ NOTE borrow of `f` occurs here
-73 |         foo(f);
+63 |         foo(f);
    |             ^ move into closure occurs here
 
 error[E0507]: cannot move out of captured outer variable in an `FnMut` closure
-  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:73:13
+  --> $DIR/borrowck-call-is-borrow-issue-12224.rs:63:13
    |
-69 |     let mut f = |g: Box<FnMut(isize)>, b: isize| {};
+61 |     let mut f = |g: Box<FnMut(isize)>, b: isize| {};
    |         ----- captured outer variable
-...
-73 |         foo(f);
+62 |     f(Box::new(|a| {
+63 |         foo(f);
    |             ^ cannot move out of captured outer variable in an `FnMut` closure
 
 error: aborting due to 5 previous errors
diff --git a/src/test/ui/span/borrowck-let-suggestion-suffixes.rs b/src/test/ui/span/borrowck-let-suggestion-suffixes.rs
index b31ba324b0c..2bbfd4517b0 100644
--- a/src/test/ui/span/borrowck-let-suggestion-suffixes.rs
+++ b/src/test/ui/span/borrowck-let-suggestion-suffixes.rs
@@ -19,15 +19,11 @@ fn f() {
     let young = ['y'];       // statement 3
 
     v2.push(&young[0]);      // statement 4
-    //~^ NOTE borrow occurs here
 
     let mut v3 = Vec::new(); // statement 5
 
     v3.push(&id('x'));           // statement 6
     //~^ ERROR borrowed value does not live long enough
-    //~| NOTE temporary value created here
-    //~| NOTE temporary value dropped here while still borrowed
-    //~| NOTE consider using a `let` binding to increase its lifetime
 
     {
 
@@ -35,28 +31,17 @@ fn f() {
 
         v4.push(&id('y'));
         //~^ ERROR borrowed value does not live long enough
-        //~| NOTE temporary value created here
-        //~| NOTE temporary value dropped here while still borrowed
-        //~| NOTE consider using a `let` binding to increase its lifetime
 
     }                       // (statement 7)
-    //~^ NOTE temporary value needs to live until here
 
     let mut v5 = Vec::new(); // statement 8
 
     v5.push(&id('z'));
     //~^ ERROR borrowed value does not live long enough
-    //~| NOTE temporary value created here
-    //~| NOTE temporary value dropped here while still borrowed
-    //~| NOTE consider using a `let` binding to increase its lifetime
 
     v1.push(&old[0]);
 }
 //~^ ERROR `young[..]` does not live long enough
-//~| NOTE `young[..]` dropped here while still borrowed
-//~| NOTE values in a scope are dropped in the opposite order they are created
-//~| NOTE temporary value needs to live until here
-//~| NOTE temporary value needs to live until here
 
 fn main() {
     f();
diff --git a/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr b/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
index 86c6f28ef1c..3daeb71d346 100644
--- a/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
+++ b/src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
@@ -1,49 +1,49 @@
 error[E0597]: `young[..]` does not live long enough
-  --> $DIR/borrowck-let-suggestion-suffixes.rs:54:1
+  --> $DIR/borrowck-let-suggestion-suffixes.rs:43:1
    |
 21 |     v2.push(&young[0]);      // statement 4
    |              -------- borrow occurs here
 ...
-54 | }
+43 | }
    | ^ `young[..]` dropped here while still borrowed
    |
    = note: values in a scope are dropped in the opposite order they are created
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/borrowck-let-suggestion-suffixes.rs:26:22
+  --> $DIR/borrowck-let-suggestion-suffixes.rs:25:22
    |
-26 |     v3.push(&id('x'));           // statement 6
+25 |     v3.push(&id('x'));           // statement 6
    |              ------- ^ temporary value dropped here while still borrowed
    |              |
    |              temporary value created here
 ...
-54 | }
+43 | }
    | - temporary value needs to live until here
    |
    = note: consider using a `let` binding to increase its lifetime
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/borrowck-let-suggestion-suffixes.rs:36:26
+  --> $DIR/borrowck-let-suggestion-suffixes.rs:32:26
    |
-36 |         v4.push(&id('y'));
+32 |         v4.push(&id('y'));
    |                  ------- ^ temporary value dropped here while still borrowed
    |                  |
    |                  temporary value created here
 ...
-42 |     }                       // (statement 7)
+35 |     }                       // (statement 7)
    |     - temporary value needs to live until here
    |
    = note: consider using a `let` binding to increase its lifetime
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/borrowck-let-suggestion-suffixes.rs:47:22
+  --> $DIR/borrowck-let-suggestion-suffixes.rs:39:22
    |
-47 |     v5.push(&id('z'));
+39 |     v5.push(&id('z'));
    |              ------- ^ temporary value dropped here while still borrowed
    |              |
    |              temporary value created here
 ...
-54 | }
+43 | }
    | - temporary value needs to live until here
    |
    = note: consider using a `let` binding to increase its lifetime
diff --git a/src/test/ui/span/coerce-suggestions.rs b/src/test/ui/span/coerce-suggestions.rs
index 0a3e18043fe..95461ee8093 100644
--- a/src/test/ui/span/coerce-suggestions.rs
+++ b/src/test/ui/span/coerce-suggestions.rs
@@ -16,27 +16,16 @@ fn test2(_x: &mut i32) {}
 fn main() {
     let x: usize = String::new();
     //~^ ERROR E0308
-    //~| NOTE expected usize, found struct `std::string::String`
-    //~| NOTE expected type `usize`
-    //~| HELP here are some functions which might fulfill your needs:
     let x: &str = String::new();
     //~^ ERROR E0308
-    //~| NOTE expected &str, found struct `std::string::String`
-    //~| NOTE expected type `&str`
-    //~| HELP consider borrowing here
     let y = String::new();
     test(&y);
     //~^ ERROR E0308
-    //~| NOTE types differ in mutability
-    //~| NOTE expected type `&mut std::string::String`
     test2(&y);
     //~^ ERROR E0308
-    //~| NOTE types differ in mutability
-    //~| NOTE expected type `&mut i32`
     let f;
     f = box f;
     //~^ ERROR E0308
-    //~| NOTE cyclic type of infinite size
 
     let s = &mut String::new();
     s = format!("foo");
diff --git a/src/test/ui/span/coerce-suggestions.stderr b/src/test/ui/span/coerce-suggestions.stderr
index 604b38bef6c..07852619765 100644
--- a/src/test/ui/span/coerce-suggestions.stderr
+++ b/src/test/ui/span/coerce-suggestions.stderr
@@ -11,9 +11,9 @@ error[E0308]: mismatched types
            - .len()
 
 error[E0308]: mismatched types
-  --> $DIR/coerce-suggestions.rs:22:19
+  --> $DIR/coerce-suggestions.rs:19:19
    |
-22 |     let x: &str = String::new();
+19 |     let x: &str = String::new();
    |                   ^^^^^^^^^^^^^
    |                   |
    |                   expected &str, found struct `std::string::String`
@@ -23,33 +23,33 @@ error[E0308]: mismatched types
               found type `std::string::String`
 
 error[E0308]: mismatched types
-  --> $DIR/coerce-suggestions.rs:28:10
+  --> $DIR/coerce-suggestions.rs:22:10
    |
-28 |     test(&y);
+22 |     test(&y);
    |          ^^ types differ in mutability
    |
    = note: expected type `&mut std::string::String`
               found type `&std::string::String`
 
 error[E0308]: mismatched types
-  --> $DIR/coerce-suggestions.rs:32:11
+  --> $DIR/coerce-suggestions.rs:24:11
    |
-32 |     test2(&y);
+24 |     test2(&y);
    |           ^^ types differ in mutability
    |
    = note: expected type `&mut i32`
               found type `&std::string::String`
 
 error[E0308]: mismatched types
-  --> $DIR/coerce-suggestions.rs:37:9
+  --> $DIR/coerce-suggestions.rs:27:9
    |
-37 |     f = box f;
+27 |     f = box f;
    |         ^^^^^ cyclic type of infinite size
 
 error[E0308]: mismatched types
-  --> $DIR/coerce-suggestions.rs:42:9
+  --> $DIR/coerce-suggestions.rs:31:9
    |
-42 |     s = format!("foo");
+31 |     s = format!("foo");
    |         ^^^^^^^^^^^^^^
    |         |
    |         expected mutable reference, found struct `std::string::String`
diff --git a/src/test/ui/span/dropck-object-cycle.rs b/src/test/ui/span/dropck-object-cycle.rs
index ce9bc17432e..aaa5cd415bb 100644
--- a/src/test/ui/span/dropck-object-cycle.rs
+++ b/src/test/ui/span/dropck-object-cycle.rs
@@ -35,7 +35,6 @@ impl<'t> MakerTrait for Box<Trait<'t>+'static> {
 pub fn main() {
     let m : Box<Trait+'static> = make_val();
     assert_eq!(object_invoke1(&*m), (4,5));
-    //~^ NOTE borrow occurs here
 
     // the problem here is that the full type of `m` is
     //
@@ -56,6 +55,4 @@ pub fn main() {
     // error.
 }
 //~^ ERROR `*m` does not live long enough
-//~| NOTE `*m` dropped here while still borrowed
-//~| NOTE values in a scope are dropped in the opposite order they are created
 
diff --git a/src/test/ui/span/dropck-object-cycle.stderr b/src/test/ui/span/dropck-object-cycle.stderr
index 49115b244e6..5e87534c391 100644
--- a/src/test/ui/span/dropck-object-cycle.stderr
+++ b/src/test/ui/span/dropck-object-cycle.stderr
@@ -1,10 +1,10 @@
 error[E0597]: `*m` does not live long enough
-  --> $DIR/dropck-object-cycle.rs:57:1
+  --> $DIR/dropck-object-cycle.rs:56:1
    |
 37 |     assert_eq!(object_invoke1(&*m), (4,5));
    |                                -- borrow occurs here
 ...
-57 | }
+56 | }
    | ^ `*m` dropped here while still borrowed
    |
    = note: values in a scope are dropped in the opposite order they are created
diff --git a/src/test/ui/span/impl-wrong-item-for-trait.rs b/src/test/ui/span/impl-wrong-item-for-trait.rs
index d4aafabed37..f86ee2b1377 100644
--- a/src/test/ui/span/impl-wrong-item-for-trait.rs
+++ b/src/test/ui/span/impl-wrong-item-for-trait.rs
@@ -13,23 +13,15 @@ use std::fmt::Debug;
 
 trait Foo {
     fn bar(&self);
-    //~^ NOTE item in trait
-    //~| NOTE `bar` from trait
-    //~| NOTE item in trait
-    //~| NOTE `bar` from trait
     const MY_CONST: u32;
-    //~^ NOTE item in trait
-    //~| NOTE `MY_CONST` from trait
 }
 
 pub struct FooConstForMethod;
 
 impl Foo for FooConstForMethod {
     //~^ ERROR E0046
-    //~| NOTE missing `bar` in implementation
     const bar: u64 = 1;
     //~^ ERROR E0323
-    //~| NOTE does not match trait
     const MY_CONST: u32 = 1;
 }
 
@@ -37,22 +29,17 @@ pub struct FooMethodForConst;
 
 impl Foo for FooMethodForConst {
     //~^ ERROR E0046
-    //~| NOTE missing `MY_CONST` in implementation
     fn bar(&self) {}
     fn MY_CONST() {}
     //~^ ERROR E0324
-    //~| NOTE does not match trait
 }
 
 pub struct FooTypeForMethod;
 
 impl Foo for FooTypeForMethod {
     //~^ ERROR E0046
-    //~| NOTE missing `bar` in implementation
     type bar = u64;
     //~^ ERROR E0325
-    //~| NOTE does not match trait
-    //~| NOTE not a member
     //~| ERROR E0437
     const MY_CONST: u32 = 1;
 }
@@ -60,7 +47,5 @@ impl Foo for FooTypeForMethod {
 impl Debug for FooTypeForMethod {
 }
 //~^^ ERROR E0046
-//~| NOTE missing `fmt` in implementation
-//~| NOTE `fmt` from trait:
 
 fn main () {}
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 dfca435f2a0..92993e19265 100644
--- a/src/test/ui/span/impl-wrong-item-for-trait.stderr
+++ b/src/test/ui/span/impl-wrong-item-for-trait.stderr
@@ -1,86 +1,84 @@
 error[E0437]: type `bar` is not a member of trait `Foo`
-  --> $DIR/impl-wrong-item-for-trait.rs:52:5
+  --> $DIR/impl-wrong-item-for-trait.rs:41:5
    |
-52 |     type bar = u64;
+41 |     type bar = u64;
    |     ^^^^^^^^^^^^^^^ not a member of trait `Foo`
 
 error[E0323]: item `bar` is an associated const, which doesn't match its trait `Foo`
-  --> $DIR/impl-wrong-item-for-trait.rs:30:5
+  --> $DIR/impl-wrong-item-for-trait.rs:23:5
    |
 15 |     fn bar(&self);
    |     -------------- item in trait
 ...
-30 |     const bar: u64 = 1;
+23 |     const bar: u64 = 1;
    |     ^^^^^^^^^^^^^^^^^^^ does not match trait
 
 error[E0046]: not all trait items implemented, missing: `bar`
-  --> $DIR/impl-wrong-item-for-trait.rs:27:1
+  --> $DIR/impl-wrong-item-for-trait.rs:21:1
    |
 15 |       fn bar(&self);
    |       -------------- `bar` from trait
 ...
-27 | / impl Foo for FooConstForMethod {
-28 | |     //~^ ERROR E0046
-29 | |     //~| NOTE missing `bar` in implementation
-30 | |     const bar: u64 = 1;
-...  |
-33 | |     const MY_CONST: u32 = 1;
-34 | | }
+21 | / impl Foo for FooConstForMethod {
+22 | |     //~^ ERROR E0046
+23 | |     const bar: u64 = 1;
+24 | |     //~^ ERROR E0323
+25 | |     const MY_CONST: u32 = 1;
+26 | | }
    | |_^ missing `bar` in implementation
 
 error[E0324]: item `MY_CONST` is an associated method, which doesn't match its trait `Foo`
-  --> $DIR/impl-wrong-item-for-trait.rs:42:5
+  --> $DIR/impl-wrong-item-for-trait.rs:33:5
    |
-20 |     const MY_CONST: u32;
+16 |     const MY_CONST: u32;
    |     -------------------- item in trait
 ...
-42 |     fn MY_CONST() {}
+33 |     fn MY_CONST() {}
    |     ^^^^^^^^^^^^^^^^ does not match trait
 
 error[E0046]: not all trait items implemented, missing: `MY_CONST`
-  --> $DIR/impl-wrong-item-for-trait.rs:38:1
+  --> $DIR/impl-wrong-item-for-trait.rs:30:1
    |
-20 |       const MY_CONST: u32;
+16 |       const MY_CONST: u32;
    |       -------------------- `MY_CONST` from trait
 ...
-38 | / impl Foo for FooMethodForConst {
-39 | |     //~^ ERROR E0046
-40 | |     //~| NOTE missing `MY_CONST` in implementation
-41 | |     fn bar(&self) {}
-...  |
-44 | |     //~| NOTE does not match trait
-45 | | }
+30 | / impl Foo for FooMethodForConst {
+31 | |     //~^ ERROR E0046
+32 | |     fn bar(&self) {}
+33 | |     fn MY_CONST() {}
+34 | |     //~^ ERROR E0324
+35 | | }
    | |_^ missing `MY_CONST` in implementation
 
 error[E0325]: item `bar` is an associated type, which doesn't match its trait `Foo`
-  --> $DIR/impl-wrong-item-for-trait.rs:52:5
+  --> $DIR/impl-wrong-item-for-trait.rs:41:5
    |
 15 |     fn bar(&self);
    |     -------------- item in trait
 ...
-52 |     type bar = u64;
+41 |     type bar = u64;
    |     ^^^^^^^^^^^^^^^ does not match trait
 
 error[E0046]: not all trait items implemented, missing: `bar`
-  --> $DIR/impl-wrong-item-for-trait.rs:49:1
+  --> $DIR/impl-wrong-item-for-trait.rs:39:1
    |
 15 |       fn bar(&self);
    |       -------------- `bar` from trait
 ...
-49 | / impl Foo for FooTypeForMethod {
-50 | |     //~^ ERROR E0046
-51 | |     //~| NOTE missing `bar` in implementation
-52 | |     type bar = u64;
-...  |
-57 | |     const MY_CONST: u32 = 1;
-58 | | }
+39 | / impl Foo for FooTypeForMethod {
+40 | |     //~^ ERROR E0046
+41 | |     type bar = u64;
+42 | |     //~^ ERROR E0325
+43 | |     //~| ERROR E0437
+44 | |     const MY_CONST: u32 = 1;
+45 | | }
    | |_^ missing `bar` in implementation
 
 error[E0046]: not all trait items implemented, missing: `fmt`
-  --> $DIR/impl-wrong-item-for-trait.rs:60:1
+  --> $DIR/impl-wrong-item-for-trait.rs:47:1
    |
-60 | / impl Debug for FooTypeForMethod {
-61 | | }
+47 | / impl Debug for FooTypeForMethod {
+48 | | }
    | |_^ missing `fmt` in implementation
    |
    = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
diff --git a/src/test/ui/span/issue-23729.rs b/src/test/ui/span/issue-23729.rs
index 66134a03baf..e872fabfc26 100644
--- a/src/test/ui/span/issue-23729.rs
+++ b/src/test/ui/span/issue-23729.rs
@@ -19,8 +19,6 @@ fn main() {
 
         impl Iterator for Recurrence {
             //~^ ERROR E0046
-            //~| NOTE missing `Item` in implementation
-            //~| NOTE `Item` from trait: `type Item;`
             #[inline]
             fn next(&mut self) -> Option<u64> {
                 if self.pos < 2 {
diff --git a/src/test/ui/span/issue-23729.stderr b/src/test/ui/span/issue-23729.stderr
index d9f4bacce35..0124d33635c 100644
--- a/src/test/ui/span/issue-23729.stderr
+++ b/src/test/ui/span/issue-23729.stderr
@@ -3,11 +3,11 @@ error[E0046]: not all trait items implemented, missing: `Item`
    |
 20 | /         impl Iterator for Recurrence {
 21 | |             //~^ ERROR E0046
-22 | |             //~| NOTE missing `Item` in implementation
-23 | |             //~| NOTE `Item` from trait: `type Item;`
+22 | |             #[inline]
+23 | |             fn next(&mut self) -> Option<u64> {
 ...  |
-36 | |             }
-37 | |         }
+34 | |             }
+35 | |         }
    | |_________^ missing `Item` in implementation
    |
    = note: `Item` from trait: `type Item;`
diff --git a/src/test/ui/span/issue-23827.rs b/src/test/ui/span/issue-23827.rs
index 01269714c16..890f2623ebc 100644
--- a/src/test/ui/span/issue-23827.rs
+++ b/src/test/ui/span/issue-23827.rs
@@ -35,8 +35,6 @@ impl<C: Component> FnMut<(C,)> for Prototype {
 
 impl<C: Component> FnOnce<(C,)> for Prototype {
     //~^ ERROR E0046
-    //~| NOTE missing `Output` in implementation
-    //~| NOTE `Output` from trait: `type Output;`
     extern "rust-call" fn call_once(self, (comp,): (C,)) -> Prototype {
         Fn::call(&self, (comp,))
     }
diff --git a/src/test/ui/span/issue-23827.stderr b/src/test/ui/span/issue-23827.stderr
index 3127af157a6..acf499e4c8d 100644
--- a/src/test/ui/span/issue-23827.stderr
+++ b/src/test/ui/span/issue-23827.stderr
@@ -3,11 +3,10 @@ error[E0046]: not all trait items implemented, missing: `Output`
    |
 36 | / impl<C: Component> FnOnce<(C,)> for Prototype {
 37 | |     //~^ ERROR E0046
-38 | |     //~| NOTE missing `Output` in implementation
-39 | |     //~| NOTE `Output` from trait: `type Output;`
-...  |
-42 | |     }
-43 | | }
+38 | |     extern "rust-call" fn call_once(self, (comp,): (C,)) -> Prototype {
+39 | |         Fn::call(&self, (comp,))
+40 | |     }
+41 | | }
    | |_^ missing `Output` in implementation
    |
    = note: `Output` from trait: `type Output;`
diff --git a/src/test/ui/span/issue-24356.rs b/src/test/ui/span/issue-24356.rs
index 0997dc802f8..0580370033a 100644
--- a/src/test/ui/span/issue-24356.rs
+++ b/src/test/ui/span/issue-24356.rs
@@ -29,8 +29,6 @@ fn main() {
         // Causes ICE
         impl Deref for Thing {
             //~^ ERROR E0046
-            //~| NOTE missing `Target` in implementation
-            //~| NOTE `Target` from trait: `type Target;`
             fn deref(&self) -> i8 { self.0 }
         }
 
diff --git a/src/test/ui/span/issue-24356.stderr b/src/test/ui/span/issue-24356.stderr
index 71ab82d98b8..c526a4bc521 100644
--- a/src/test/ui/span/issue-24356.stderr
+++ b/src/test/ui/span/issue-24356.stderr
@@ -3,10 +3,8 @@ error[E0046]: not all trait items implemented, missing: `Target`
    |
 30 | /         impl Deref for Thing {
 31 | |             //~^ ERROR E0046
-32 | |             //~| NOTE missing `Target` in implementation
-33 | |             //~| NOTE `Target` from trait: `type Target;`
-34 | |             fn deref(&self) -> i8 { self.0 }
-35 | |         }
+32 | |             fn deref(&self) -> i8 { self.0 }
+33 | |         }
    | |_________^ missing `Target` in implementation
    |
    = note: `Target` from trait: `type Target;`
diff --git a/src/test/ui/span/issue-36537.rs b/src/test/ui/span/issue-36537.rs
index 33182e02fa3..d016e8fdbc0 100644
--- a/src/test/ui/span/issue-36537.rs
+++ b/src/test/ui/span/issue-36537.rs
@@ -11,8 +11,6 @@
 fn main() {
     let p;
     let a = 42;
-    p = &a; //~ NOTE borrow occurs here
+    p = &a;
 }
 //~^ ERROR `a` does not live long enough
-//~| NOTE `a` dropped here while still borrowed
-//~| NOTE values in a scope are dropped in the opposite order they are created
diff --git a/src/test/ui/span/issue-36537.stderr b/src/test/ui/span/issue-36537.stderr
index 803e476b749..fed240a850d 100644
--- a/src/test/ui/span/issue-36537.stderr
+++ b/src/test/ui/span/issue-36537.stderr
@@ -1,7 +1,7 @@
 error[E0597]: `a` does not live long enough
   --> $DIR/issue-36537.rs:15:1
    |
-14 |     p = &a; //~ NOTE borrow occurs here
+14 |     p = &a;
    |          - borrow occurs here
 15 | }
    | ^ `a` dropped here while still borrowed
diff --git a/src/test/ui/span/issue-7575.rs b/src/test/ui/span/issue-7575.rs
index f7059e01261..b1dbd5b86e7 100644
--- a/src/test/ui/span/issue-7575.rs
+++ b/src/test/ui/span/issue-7575.rs
@@ -13,11 +13,11 @@
 
 trait CtxtFn {
     fn f8(self, _: usize) -> usize;
-    fn f9(_: usize) -> usize; //~ NOTE candidate
+    fn f9(_: usize) -> usize;
 }
 
 trait OtherTrait {
-    fn f9(_: usize) -> usize; //~ NOTE candidate
+    fn f9(_: usize) -> usize;
 }
 
 // Note: this trait is not implemented, but we can't really tell
@@ -26,7 +26,7 @@ trait OtherTrait {
 // candidate. This seems not unreasonable -- perhaps the user meant to
 // implement it, after all.
 trait UnusedTrait {
-    fn f9(_: usize) -> usize; //~ NOTE candidate
+    fn f9(_: usize) -> usize;
 }
 
 impl CtxtFn for usize {
@@ -45,16 +45,16 @@ impl OtherTrait for usize {
     }
 }
 
-struct Myisize(isize); //~ NOTE not found for this
+struct Myisize(isize);
 
 impl Myisize {
-    fn fff(i: isize) -> isize { //~ NOTE candidate
+    fn fff(i: isize) -> isize {
         i
     }
 }
 
 trait ManyImplTrait {
-    fn is_str() -> bool { //~ NOTE candidate
+    fn is_str() -> bool {
         false
     }
 }
@@ -73,10 +73,7 @@ impl ManyImplTrait for Myisize {}
 fn no_param_bound(u: usize, m: Myisize) -> usize {
     u.f8(42) + u.f9(342) + m.fff(42)
             //~^ ERROR no method named `f9` found for type `usize` in the current scope
-            //~| NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
-            //~| NOTE the following traits define an item
             //~| ERROR no method named `fff` found for type `Myisize` in the current scope
-            //~| NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
 
 
 }
@@ -84,8 +81,6 @@ fn no_param_bound(u: usize, m: Myisize) -> usize {
 fn param_bound<T: ManyImplTrait>(t: T) -> bool {
     t.is_str()
     //~^ ERROR no method named `is_str` found for type `T` in the current scope
-    //~| NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
-    //~| NOTE the following trait defines
 }
 
 fn main() {
diff --git a/src/test/ui/span/issue-7575.stderr b/src/test/ui/span/issue-7575.stderr
index a1ed5db69c0..57c4d25b7d0 100644
--- a/src/test/ui/span/issue-7575.stderr
+++ b/src/test/ui/span/issue-7575.stderr
@@ -9,19 +9,19 @@ error[E0599]: no method named `f9` found for type `usize` in the current scope
 note: candidate #1 is defined in the trait `CtxtFn`
   --> $DIR/issue-7575.rs:16:5
    |
-16 |     fn f9(_: usize) -> usize; //~ NOTE candidate
+16 |     fn f9(_: usize) -> usize;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: to disambiguate the method call, write `CtxtFn::f9(u, 342)` instead
 note: candidate #2 is defined in the trait `OtherTrait`
   --> $DIR/issue-7575.rs:20:5
    |
-20 |     fn f9(_: usize) -> usize; //~ NOTE candidate
+20 |     fn f9(_: usize) -> usize;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: to disambiguate the method call, write `OtherTrait::f9(u, 342)` instead
 note: candidate #3 is defined in the trait `UnusedTrait`
   --> $DIR/issue-7575.rs:29:5
    |
-29 |     fn f9(_: usize) -> usize; //~ NOTE candidate
+29 |     fn f9(_: usize) -> usize;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: to disambiguate the method call, write `UnusedTrait::f9(u, 342)` instead
    = help: items from traits can only be used if the trait is implemented and in scope
@@ -33,7 +33,7 @@ note: candidate #3 is defined in the trait `UnusedTrait`
 error[E0599]: no method named `fff` found for type `Myisize` in the current scope
   --> $DIR/issue-7575.rs:74:30
    |
-48 | struct Myisize(isize); //~ NOTE not found for this
+48 | struct Myisize(isize);
    | ---------------------- method `fff` not found for this
 ...
 74 |     u.f8(42) + u.f9(342) + m.fff(42)
@@ -44,15 +44,15 @@ error[E0599]: no method named `fff` found for type `Myisize` in the current scop
 note: candidate #1 is defined in an impl for the type `Myisize`
   --> $DIR/issue-7575.rs:51:5
    |
-51 | /     fn fff(i: isize) -> isize { //~ NOTE candidate
+51 | /     fn fff(i: isize) -> isize {
 52 | |         i
 53 | |     }
    | |_____^
 
 error[E0599]: no method named `is_str` found for type `T` in the current scope
-  --> $DIR/issue-7575.rs:85:7
+  --> $DIR/issue-7575.rs:82:7
    |
-85 |     t.is_str()
+82 |     t.is_str()
    |       ^^^^^^
    |
    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
@@ -60,7 +60,7 @@ error[E0599]: no method named `is_str` found for type `T` in the current scope
 note: candidate #1 is defined in the trait `ManyImplTrait`
   --> $DIR/issue-7575.rs:57:5
    |
-57 | /     fn is_str() -> bool { //~ NOTE candidate
+57 | /     fn is_str() -> bool {
 58 | |         false
 59 | |     }
    | |_____^
diff --git a/src/test/ui/span/loan-extend.stderr b/src/test/ui/span/loan-extend.stderr
index 91bdd8a8cad..280ddd6581a 100644
--- a/src/test/ui/span/loan-extend.stderr
+++ b/src/test/ui/span/loan-extend.stderr
@@ -3,7 +3,7 @@ error[E0597]: `short` does not live long enough
    |
 19 |     long = borrow(&mut short);
    |                        ----- borrow occurs here
-20 |     //~^ NOTE borrow occurs here
+20 |
 21 | }
    | ^ `short` dropped here while still borrowed
    |
diff --git a/src/test/ui/span/regions-escape-loop-via-vec.rs b/src/test/ui/span/regions-escape-loop-via-vec.rs
index 7c4834751d8..19f580f51b4 100644
--- a/src/test/ui/span/regions-escape-loop-via-vec.rs
+++ b/src/test/ui/span/regions-escape-loop-via-vec.rs
@@ -12,19 +12,12 @@
 fn broken() {
     let mut x = 3;
     let mut _y = vec![&mut x];
-    //~^ NOTE borrow of `x` occurs here
-    //~| NOTE borrow of `x` occurs here
-    //~| NOTE borrow of `x` occurs here
     while x < 10 { //~ ERROR cannot use `x` because it was mutably borrowed
-        //~^ NOTE use of borrowed `x`
         let mut z = x; //~ ERROR cannot use `x` because it was mutably borrowed
-        //~^ NOTE use of borrowed `x`
-        _y.push(&mut z); //~ NOTE borrow occurs here
+        _y.push(&mut z);
         x += 1; //~ ERROR cannot assign
-        //~^ NOTE assignment to borrowed `x` occurs here
-    } //~ NOTE `z` dropped here while still borrowed
+    }
     //~^ ERROR `z` does not live long enough
 }
-//~^ NOTE borrowed value needs to live until here
 
 fn main() { }
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 a7224fcd4cc..13614e31066 100644
--- a/src/test/ui/span/regions-escape-loop-via-vec.stderr
+++ b/src/test/ui/span/regions-escape-loop-via-vec.stderr
@@ -1,40 +1,39 @@
 error[E0597]: `z` does not live long enough
-  --> $DIR/regions-escape-loop-via-vec.rs:25:5
+  --> $DIR/regions-escape-loop-via-vec.rs:19:5
    |
-22 |         _y.push(&mut z); //~ NOTE borrow occurs here
+17 |         _y.push(&mut z);
    |                      - borrow occurs here
-...
-25 |     } //~ NOTE `z` dropped here while still borrowed
+18 |         x += 1; //~ ERROR cannot assign
+19 |     }
    |     ^ `z` dropped here while still borrowed
-26 |     //~^ ERROR `z` does not live long enough
-27 | }
+20 |     //~^ ERROR `z` does not live long enough
+21 | }
    | - borrowed value needs to live until here
 
 error[E0503]: cannot use `x` because it was mutably borrowed
-  --> $DIR/regions-escape-loop-via-vec.rs:18:11
+  --> $DIR/regions-escape-loop-via-vec.rs:15:11
    |
 14 |     let mut _y = vec![&mut x];
    |                            - borrow of `x` occurs here
-...
-18 |     while x < 10 { //~ ERROR cannot use `x` because it was mutably borrowed
+15 |     while x < 10 { //~ ERROR cannot use `x` because it was mutably borrowed
    |           ^ use of borrowed `x`
 
 error[E0503]: cannot use `x` because it was mutably borrowed
-  --> $DIR/regions-escape-loop-via-vec.rs:20:13
+  --> $DIR/regions-escape-loop-via-vec.rs:16:13
    |
 14 |     let mut _y = vec![&mut x];
    |                            - borrow of `x` occurs here
-...
-20 |         let mut z = x; //~ ERROR cannot use `x` because it was mutably borrowed
+15 |     while x < 10 { //~ ERROR cannot use `x` because it was mutably borrowed
+16 |         let mut z = x; //~ ERROR cannot use `x` because it was mutably borrowed
    |             ^^^^^ use of borrowed `x`
 
 error[E0506]: cannot assign to `x` because it is borrowed
-  --> $DIR/regions-escape-loop-via-vec.rs:23:9
+  --> $DIR/regions-escape-loop-via-vec.rs:18:9
    |
 14 |     let mut _y = vec![&mut x];
    |                            - borrow of `x` occurs here
 ...
-23 |         x += 1; //~ ERROR cannot assign
+18 |         x += 1; //~ ERROR cannot assign
    |         ^^^^^^ assignment to borrowed `x` occurs here
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/str-concat-on-double-ref.rs b/src/test/ui/str-concat-on-double-ref.rs
index f85422f76d4..292dcbf8ef7 100644
--- a/src/test/ui/str-concat-on-double-ref.rs
+++ b/src/test/ui/str-concat-on-double-ref.rs
@@ -13,6 +13,5 @@ fn main() {
     let b: &str = &"2";
     let c = a + b;
     //~^ ERROR binary operation `+` cannot be applied to type `&std::string::String`
-    //~| NOTE an implementation of `std::ops::Add` might be missing for `&std::string::String`
     println!("{:?}", c);
 }
diff --git a/src/test/ui/struct-fields-decl-dupe.rs b/src/test/ui/struct-fields-decl-dupe.rs
index dd9d7d29468..1f6b070d837 100644
--- a/src/test/ui/struct-fields-decl-dupe.rs
+++ b/src/test/ui/struct-fields-decl-dupe.rs
@@ -9,10 +9,9 @@
 // except according to those terms.
 
 struct BuildData {
-    foo: isize, //~ NOTE `foo` first declared here
+    foo: isize,
     foo: isize,
     //~^ ERROR field `foo` is already declared [E0124]
-    //~| NOTE field already declared
 }
 
 fn main() {
diff --git a/src/test/ui/struct-fields-decl-dupe.stderr b/src/test/ui/struct-fields-decl-dupe.stderr
index 4908441cb59..8f2180716c9 100644
--- a/src/test/ui/struct-fields-decl-dupe.stderr
+++ b/src/test/ui/struct-fields-decl-dupe.stderr
@@ -1,7 +1,7 @@
 error[E0124]: field `foo` is already declared
   --> $DIR/struct-fields-decl-dupe.rs:13:5
    |
-12 |     foo: isize, //~ NOTE `foo` first declared here
+12 |     foo: isize,
    |     ---------- `foo` first declared here
 13 |     foo: isize,
    |     ^^^^^^^^^^ field already declared
diff --git a/src/test/ui/struct-fields-hints-no-dupe.rs b/src/test/ui/struct-fields-hints-no-dupe.rs
index de78503d904..e4366cf79b1 100644
--- a/src/test/ui/struct-fields-hints-no-dupe.rs
+++ b/src/test/ui/struct-fields-hints-no-dupe.rs
@@ -19,7 +19,6 @@ fn main() {
         foo : 5,
         bar : 42,
         //~^ ERROR struct `A` has no field named `bar`
-        //~| NOTE field does not exist - did you mean `barr`?
         car : 9,
     };
 }
diff --git a/src/test/ui/struct-fields-hints.rs b/src/test/ui/struct-fields-hints.rs
index 628f03f3272..85dc1aedb44 100644
--- a/src/test/ui/struct-fields-hints.rs
+++ b/src/test/ui/struct-fields-hints.rs
@@ -19,6 +19,5 @@ fn main() {
         foo : 5,
         bar : 42,
         //~^ ERROR struct `A` has no field named `bar`
-        //~| NOTE field does not exist - did you mean `car`?
     };
 }
diff --git a/src/test/ui/struct-fields-too-many.rs b/src/test/ui/struct-fields-too-many.rs
index b1af142ad0f..1e0b8efc96f 100644
--- a/src/test/ui/struct-fields-too-many.rs
+++ b/src/test/ui/struct-fields-too-many.rs
@@ -17,7 +17,5 @@ fn main() {
         foo: 0,
         bar: 0
         //~^ ERROR struct `BuildData` has no field named `bar`
-        //~| NOTE `BuildData` does not have this field
-        //~| NOTE available fields are: `foo`
     };
 }
diff --git a/src/test/ui/struct-path-self-type-mismatch.rs b/src/test/ui/struct-path-self-type-mismatch.rs
index ad568b41fcb..e966ea65902 100644
--- a/src/test/ui/struct-path-self-type-mismatch.rs
+++ b/src/test/ui/struct-path-self-type-mismatch.rs
@@ -15,20 +15,15 @@ trait Bar { fn bar(); }
 impl Bar for Foo<i32> {
     fn bar() {
         Self { inner: 1.5f32 }; //~ ERROR mismatched types
-                                //~^ NOTE expected i32, found f32
     }
 }
 
 impl<T> Foo<T> {
-    fn new<U>(u: U) -> Foo<U> { //~ NOTE expected `Foo<U>` because of return type
+    fn new<U>(u: U) -> Foo<U> {
         Self {
         //~^ ERROR mismatched types
-        //~| NOTE expected type parameter, found a different type parameter
-        //~| NOTE expected type `Foo<U>`
             inner: u
             //~^ ERROR mismatched types
-            //~| NOTE expected type parameter, found a different type parameter
-            //~| NOTE expected type `T`
         }
     }
 }
diff --git a/src/test/ui/struct-path-self-type-mismatch.stderr b/src/test/ui/struct-path-self-type-mismatch.stderr
index ead941e66e8..a98ec0ec4b2 100644
--- a/src/test/ui/struct-path-self-type-mismatch.stderr
+++ b/src/test/ui/struct-path-self-type-mismatch.stderr
@@ -5,26 +5,24 @@ error[E0308]: mismatched types
    |                       ^^^^^^ expected i32, found f32
 
 error[E0308]: mismatched types
-  --> $DIR/struct-path-self-type-mismatch.rs:28:20
+  --> $DIR/struct-path-self-type-mismatch.rs:25:20
    |
-28 |             inner: u
+25 |             inner: u
    |                    ^ expected type parameter, found a different type parameter
    |
    = note: expected type `T`
               found type `U`
 
 error[E0308]: mismatched types
-  --> $DIR/struct-path-self-type-mismatch.rs:24:9
+  --> $DIR/struct-path-self-type-mismatch.rs:23:9
    |
-23 |       fn new<U>(u: U) -> Foo<U> { //~ NOTE expected `Foo<U>` because of return type
+22 |       fn new<U>(u: U) -> Foo<U> {
    |                          ------ expected `Foo<U>` because of return type
-24 | /         Self {
-25 | |         //~^ ERROR mismatched types
-26 | |         //~| NOTE expected type parameter, found a different type parameter
-27 | |         //~| NOTE expected type `Foo<U>`
-...  |
-31 | |             //~| NOTE expected type `T`
-32 | |         }
+23 | /         Self {
+24 | |         //~^ ERROR mismatched types
+25 | |             inner: u
+26 | |             //~^ ERROR mismatched types
+27 | |         }
    | |_________^ expected type parameter, found a different type parameter
    |
    = note: expected type `Foo<U>`
diff --git a/src/test/ui/suggest-private-fields.rs b/src/test/ui/suggest-private-fields.rs
index d0752b5f02f..77b38abad84 100644
--- a/src/test/ui/suggest-private-fields.rs
+++ b/src/test/ui/suggest-private-fields.rs
@@ -24,19 +24,14 @@ fn main () {
     let k = B {
         aa: 20,
         //~^ ERROR struct `xc::B` has no field named `aa`
-        //~| NOTE field does not exist - did you mean `a`?
         bb: 20,
         //~^ ERROR struct `xc::B` has no field named `bb`
-        //~| NOTE `xc::B` does not have this field
-        //~| NOTE available fields are: `a`
     };
     // local crate struct
     let l = A {
         aa: 20,
         //~^ ERROR struct `A` has no field named `aa`
-        //~| NOTE field does not exist - did you mean `a`?
         bb: 20,
         //~^ ERROR struct `A` has no field named `bb`
-        //~| NOTE field does not exist - did you mean `b`?
     };
 }
diff --git a/src/test/ui/suggest-private-fields.stderr b/src/test/ui/suggest-private-fields.stderr
index 1cc323c1c33..d32d85f6e3f 100644
--- a/src/test/ui/suggest-private-fields.stderr
+++ b/src/test/ui/suggest-private-fields.stderr
@@ -5,23 +5,23 @@ error[E0560]: struct `xc::B` has no field named `aa`
    |         ^^^ field does not exist - did you mean `a`?
 
 error[E0560]: struct `xc::B` has no field named `bb`
-  --> $DIR/suggest-private-fields.rs:28:9
+  --> $DIR/suggest-private-fields.rs:27:9
    |
-28 |         bb: 20,
+27 |         bb: 20,
    |         ^^^ `xc::B` does not have this field
    |
    = note: available fields are: `a`
 
 error[E0560]: struct `A` has no field named `aa`
-  --> $DIR/suggest-private-fields.rs:35:9
+  --> $DIR/suggest-private-fields.rs:32:9
    |
-35 |         aa: 20,
+32 |         aa: 20,
    |         ^^^ field does not exist - did you mean `a`?
 
 error[E0560]: struct `A` has no field named `bb`
-  --> $DIR/suggest-private-fields.rs:38:9
+  --> $DIR/suggest-private-fields.rs:34:9
    |
-38 |         bb: 20,
+34 |         bb: 20,
    |         ^^^ field does not exist - did you mean `b`?
 
 error: aborting due to 4 previous errors
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-18343.rs b/src/test/ui/suggestions/confuse-field-and-method/issue-18343.rs
index 6e0f9999ec1..ef1566ab56a 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-18343.rs
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-18343.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-struct Obj<F> where F: FnMut() -> u32 { //~ NOTE not found for this
+struct Obj<F> where F: FnMut() -> u32 {
     closure: F,
 }
 
@@ -16,6 +16,4 @@ fn main() {
     let o = Obj { closure: || 42 };
     o.closure();
     //~^ ERROR no method named `closure` found
-    //~| HELP use `(o.closure)(...)` if you meant to call the function stored in the `closure` field
-    //~| NOTE field, not a method
 }
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 62dceceedf3..bbe8fe7345a 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
@@ -1,7 +1,7 @@
 error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-18343.rs:16:28: 16:33]>` in the current scope
   --> $DIR/issue-18343.rs:17:7
    |
-11 | struct Obj<F> where F: FnMut() -> u32 { //~ NOTE not found for this
+11 | struct Obj<F> where F: FnMut() -> u32 {
    | ------------------------------------- method `closure` not found for this
 ...
 17 |     o.closure();
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-2392.rs b/src/test/ui/suggestions/confuse-field-and-method/issue-2392.rs
index cba0ecbf58e..f0c5a2a913f 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-2392.rs
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-2392.rs
@@ -13,9 +13,6 @@
 use std::boxed::FnBox;
 
 struct FuncContainer {
-//~^ NOTE not found for this
-//~| NOTE not found for this
-//~| NOTE not found for this
     f1: fn(data: u8),
     f2: extern "C" fn(data: u8),
     f3: unsafe fn(data: u8),
@@ -26,19 +23,11 @@ struct FuncContainerOuter {
 }
 
 struct Obj<F> where F: FnOnce() -> u32 {
-//~^ NOTE not found for this
-//~| NOTE not found for this
-//~| NOTE not found for this
-//~| NOTE not found for this
-//~| NOTE not found for this
-//~| NOTE not found for this
     closure: F,
     not_closure: usize,
 }
 
 struct BoxedObj {
-//~^ NOTE not found for this
-//~| NOTE not found for this
     boxed_closure: Box<FnBox() -> u32>,
 }
 
@@ -59,58 +48,36 @@ fn main() {
 
     let o_closure = Obj { closure: || 42, not_closure: 42 };
     o_closure.closure(); //~ ERROR no method named `closure` found
-    //~^ HELP use `(o_closure.closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 
     o_closure.not_closure();
     //~^ ERROR no method named `not_closure` found
-    //~| NOTE field, not a method
-    //~| HELP did you mean to write `o_closure.not_closure` instead of `o_closure.not_closure(...)`?
 
     let o_func = Obj { closure: func, not_closure: 5 };
     o_func.closure(); //~ ERROR no method named `closure` found
-    //~^ HELP use `(o_func.closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 
     let boxed_fn = BoxedObj { boxed_closure: Box::new(func) };
     boxed_fn.boxed_closure();//~ ERROR no method named `boxed_closure` found
-    //~^ HELP use `(boxed_fn.boxed_closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 
     let boxed_closure = BoxedObj { boxed_closure: Box::new(|| 42_u32) as Box<FnBox() -> u32> };
     boxed_closure.boxed_closure();//~ ERROR no method named `boxed_closure` found
-    //~^ HELP use `(boxed_closure.boxed_closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 
     // test expression writing in the notes
 
     let w = Wrapper { wrap: o_func };
     w.wrap.closure();//~ ERROR no method named `closure` found
-    //~^ HELP use `(w.wrap.closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 
     w.wrap.not_closure();
     //~^ ERROR no method named `not_closure` found
-    //~| NOTE field, not a method
-    //~| HELP did you mean to write `w.wrap.not_closure` instead of `w.wrap.not_closure(...)`?
 
     check_expression().closure();//~ ERROR no method named `closure` found
-    //~^ HELP use `(check_expression().closure)(...)` if you meant to call the function stored
-    //~| NOTE field, not a method
 }
 
 impl FuncContainerOuter {
     fn run(&self) {
         unsafe {
             (*self.container).f1(1); //~ ERROR no method named `f1` found
-            //~^ HELP use `((*self.container).f1)(...)`
-            //~| NOTE field, not a method
             (*self.container).f2(1); //~ ERROR no method named `f2` found
-            //~^ HELP use `((*self.container).f2)(...)`
-            //~| NOTE field, not a method
             (*self.container).f3(1); //~ ERROR no method named `f3` found
-            //~^ HELP use `((*self.container).f3)(...)`
-            //~| NOTE field, not a method
         }
     }
 }
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 b4086b16027..083245f0b8e 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
@@ -1,123 +1,123 @@
-error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-2392.rs:60:36: 60:41]>` in the current scope
-  --> $DIR/issue-2392.rs:61:15
+error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-2392.rs:49:36: 49:41]>` in the current scope
+  --> $DIR/issue-2392.rs:50:15
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `closure` not found for this
 ...
-61 |     o_closure.closure(); //~ ERROR no method named `closure` found
+50 |     o_closure.closure(); //~ ERROR no method named `closure` found
    |               ^^^^^^^ field, not a method
    |
    = help: use `(o_closure.closure)(...)` if you meant to call the function stored in the `closure` field
 
-error[E0599]: no method named `not_closure` found for type `Obj<[closure@$DIR/issue-2392.rs:60:36: 60:41]>` in the current scope
-  --> $DIR/issue-2392.rs:65:15
+error[E0599]: no method named `not_closure` found for type `Obj<[closure@$DIR/issue-2392.rs:49:36: 49:41]>` in the current scope
+  --> $DIR/issue-2392.rs:52:15
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `not_closure` not found for this
 ...
-65 |     o_closure.not_closure();
+52 |     o_closure.not_closure();
    |               ^^^^^^^^^^^ field, not a method
    |
    = help: did you mean to write `o_closure.not_closure` instead of `o_closure.not_closure(...)`?
 
 error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
-  --> $DIR/issue-2392.rs:71:12
+  --> $DIR/issue-2392.rs:56:12
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `closure` not found for this
 ...
-71 |     o_func.closure(); //~ ERROR no method named `closure` found
+56 |     o_func.closure(); //~ ERROR no method named `closure` found
    |            ^^^^^^^ field, not a method
    |
    = help: use `(o_func.closure)(...)` if you meant to call the function stored in the `closure` field
 
 error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the current scope
-  --> $DIR/issue-2392.rs:76:14
+  --> $DIR/issue-2392.rs:59:14
    |
-39 | struct BoxedObj {
+30 | struct BoxedObj {
    | --------------- method `boxed_closure` not found for this
 ...
-76 |     boxed_fn.boxed_closure();//~ ERROR no method named `boxed_closure` found
+59 |     boxed_fn.boxed_closure();//~ ERROR no method named `boxed_closure` found
    |              ^^^^^^^^^^^^^ field, not a method
    |
    = help: use `(boxed_fn.boxed_closure)(...)` if you meant to call the function stored in the `boxed_closure` field
 
 error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the current scope
-  --> $DIR/issue-2392.rs:81:19
+  --> $DIR/issue-2392.rs:62:19
    |
-39 | struct BoxedObj {
+30 | struct BoxedObj {
    | --------------- method `boxed_closure` not found for this
 ...
-81 |     boxed_closure.boxed_closure();//~ ERROR no method named `boxed_closure` found
+62 |     boxed_closure.boxed_closure();//~ ERROR no method named `boxed_closure` found
    |                   ^^^^^^^^^^^^^ field, not a method
    |
    = help: use `(boxed_closure.boxed_closure)(...)` if you meant to call the function stored in the `boxed_closure` field
 
 error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
-  --> $DIR/issue-2392.rs:88:12
+  --> $DIR/issue-2392.rs:67:12
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `closure` not found for this
 ...
-88 |     w.wrap.closure();//~ ERROR no method named `closure` found
+67 |     w.wrap.closure();//~ ERROR no method named `closure` found
    |            ^^^^^^^ field, not a method
    |
    = help: use `(w.wrap.closure)(...)` if you meant to call the function stored in the `closure` field
 
 error[E0599]: no method named `not_closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
-  --> $DIR/issue-2392.rs:92:12
+  --> $DIR/issue-2392.rs:69:12
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `not_closure` not found for this
 ...
-92 |     w.wrap.not_closure();
+69 |     w.wrap.not_closure();
    |            ^^^^^^^^^^^ field, not a method
    |
    = help: did you mean to write `w.wrap.not_closure` instead of `w.wrap.not_closure(...)`?
 
 error[E0599]: no method named `closure` found for type `Obj<std::boxed::Box<std::boxed::FnBox<(), Output=u32> + 'static>>` in the current scope
-  --> $DIR/issue-2392.rs:97:24
+  --> $DIR/issue-2392.rs:72:24
    |
-28 | struct Obj<F> where F: FnOnce() -> u32 {
+25 | struct Obj<F> where F: FnOnce() -> u32 {
    | -------------------------------------- method `closure` not found for this
 ...
-97 |     check_expression().closure();//~ ERROR no method named `closure` found
+72 |     check_expression().closure();//~ ERROR no method named `closure` found
    |                        ^^^^^^^ field, not a method
    |
    = help: use `(check_expression().closure)(...)` if you meant to call the function stored in the `closure` field
 
 error[E0599]: no method named `f1` found for type `FuncContainer` in the current scope
-   --> $DIR/issue-2392.rs:105:31
-    |
-15  | struct FuncContainer {
-    | -------------------- method `f1` not found for this
+  --> $DIR/issue-2392.rs:78:31
+   |
+15 | struct FuncContainer {
+   | -------------------- method `f1` not found for this
 ...
-105 |             (*self.container).f1(1); //~ ERROR no method named `f1` found
-    |                               ^^ field, not a method
-    |
-    = help: use `((*self.container).f1)(...)` if you meant to call the function stored in the `f1` field
+78 |             (*self.container).f1(1); //~ ERROR no method named `f1` found
+   |                               ^^ field, not a method
+   |
+   = help: use `((*self.container).f1)(...)` if you meant to call the function stored in the `f1` field
 
 error[E0599]: no method named `f2` found for type `FuncContainer` in the current scope
-   --> $DIR/issue-2392.rs:108:31
-    |
-15  | struct FuncContainer {
-    | -------------------- method `f2` not found for this
+  --> $DIR/issue-2392.rs:79:31
+   |
+15 | struct FuncContainer {
+   | -------------------- method `f2` not found for this
 ...
-108 |             (*self.container).f2(1); //~ ERROR no method named `f2` found
-    |                               ^^ field, not a method
-    |
-    = help: use `((*self.container).f2)(...)` if you meant to call the function stored in the `f2` field
+79 |             (*self.container).f2(1); //~ ERROR no method named `f2` found
+   |                               ^^ field, not a method
+   |
+   = help: use `((*self.container).f2)(...)` if you meant to call the function stored in the `f2` field
 
 error[E0599]: no method named `f3` found for type `FuncContainer` in the current scope
-   --> $DIR/issue-2392.rs:111:31
-    |
-15  | struct FuncContainer {
-    | -------------------- method `f3` not found for this
+  --> $DIR/issue-2392.rs:80:31
+   |
+15 | struct FuncContainer {
+   | -------------------- method `f3` not found for this
 ...
-111 |             (*self.container).f3(1); //~ ERROR no method named `f3` found
-    |                               ^^ field, not a method
-    |
-    = help: use `((*self.container).f3)(...)` if you meant to call the function stored in the `f3` field
+80 |             (*self.container).f3(1); //~ ERROR no method named `f3` found
+   |                               ^^ field, not a method
+   |
+   = help: use `((*self.container).f3)(...)` if you meant to call the function stored in the `f3` field
 
 error: aborting due to 11 previous errors
 
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-32128.rs b/src/test/ui/suggestions/confuse-field-and-method/issue-32128.rs
index 32d5c7f5e8a..d306b38e00e 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-32128.rs
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-32128.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-struct Example { //~ NOTE not found for this
+struct Example {
     example: Box<Fn(i32) -> i32>
 }
 
@@ -21,7 +21,5 @@ fn main() {
 
     demo.example(1);
     //~^ ERROR no method named `example`
-    //~| HELP use `(demo.example)(...)`
-    //~| NOTE field, not a method
     // (demo.example)(1);
 }
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 813b6060db0..d6a837a17ae 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
@@ -1,7 +1,7 @@
 error[E0599]: no method named `example` found for type `Example` in the current scope
   --> $DIR/issue-32128.rs:22:10
    |
-11 | struct Example { //~ NOTE not found for this
+11 | struct Example {
    | -------------- method `example` not found for this
 ...
 22 |     demo.example(1);
diff --git a/src/test/ui/suggestions/confuse-field-and-method/issue-33784.rs b/src/test/ui/suggestions/confuse-field-and-method/issue-33784.rs
index 87349855221..4cd50be50d4 100644
--- a/src/test/ui/suggestions/confuse-field-and-method/issue-33784.rs
+++ b/src/test/ui/suggestions/confuse-field-and-method/issue-33784.rs
@@ -35,15 +35,9 @@ fn main() {
     let o = Obj { fn_ptr: empty, closure: || 42 };
     let p = &o;
     p.closure(); //~ ERROR no method named `closure` found
-    //~^ HELP use `(p.closure)(...)` if you meant to call the function stored in the `closure` field
-    //~| NOTE field, not a method
     let q = &p;
     q.fn_ptr(); //~ ERROR no method named `fn_ptr` found
-    //~^ HELP use `(q.fn_ptr)(...)` if you meant to call the function stored in the `fn_ptr` field
-    //~| NOTE field, not a method
     let r = D(C { c_fn_ptr: empty });
     let s = &r;
     s.c_fn_ptr(); //~ ERROR no method named `c_fn_ptr` found
-    //~^ HELP use `(s.c_fn_ptr)(...)` if you meant to call the function stored in the `c_fn_ptr`
-    //~| NOTE field, not a method
 }
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 d41f7cbdf56..28e21610214 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
@@ -7,17 +7,17 @@ error[E0599]: no method named `closure` found for type `&Obj<[closure@$DIR/issue
    = help: use `(p.closure)(...)` if you meant to call the function stored in the `closure` field
 
 error[E0599]: no method named `fn_ptr` found for type `&&Obj<[closure@$DIR/issue-33784.rs:35:43: 35:48]>` in the current scope
-  --> $DIR/issue-33784.rs:41:7
+  --> $DIR/issue-33784.rs:39:7
    |
-41 |     q.fn_ptr(); //~ ERROR no method named `fn_ptr` found
+39 |     q.fn_ptr(); //~ ERROR no method named `fn_ptr` found
    |       ^^^^^^ field, not a method
    |
    = help: use `(q.fn_ptr)(...)` if you meant to call the function stored in the `fn_ptr` field
 
 error[E0599]: no method named `c_fn_ptr` found for type `&D` in the current scope
-  --> $DIR/issue-33784.rs:46:7
+  --> $DIR/issue-33784.rs:42:7
    |
-46 |     s.c_fn_ptr(); //~ ERROR no method named `c_fn_ptr` found
+42 |     s.c_fn_ptr(); //~ ERROR no method named `c_fn_ptr` found
    |       ^^^^^^^^ field, not a method
    |
    = help: use `(s.c_fn_ptr)(...)` if you meant to call the function stored in the `c_fn_ptr` field
diff --git a/src/test/ui/suggestions/dont-suggest-dereference-on-arg.rs b/src/test/ui/suggestions/dont-suggest-dereference-on-arg.rs
index 72269768e0f..0a2e7ef3226 100644
--- a/src/test/ui/suggestions/dont-suggest-dereference-on-arg.rs
+++ b/src/test/ui/suggestions/dont-suggest-dereference-on-arg.rs
@@ -15,7 +15,5 @@ fn main() {
     x.iter()
         .filter(|&(ref a, _)| foo(a))
         //~^ ERROR non-reference pattern used to match a reference
-        //~| HELP consider using a reference
-        //~| HELP add
         .collect();
 }
diff --git a/src/test/ui/suggestions/str-array-assignment.rs b/src/test/ui/suggestions/str-array-assignment.rs
index 444684507d3..b70028bd926 100644
--- a/src/test/ui/suggestions/str-array-assignment.rs
+++ b/src/test/ui/suggestions/str-array-assignment.rs
@@ -8,25 +8,14 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn main() { //~ NOTE expected `()` because of default return type
+fn main() {
   let s = "abc";
   let t = if true { s[..2] } else { s };
   //~^ ERROR if and else have incompatible types
-  //~| NOTE expected str, found &str
-  //~| NOTE expected type
   let u: &str = if true { s[..2] } else { s };
   //~^ ERROR mismatched types
-  //~| NOTE expected &str, found str
-  //~| NOTE expected type
   let v = s[..2];
   //~^ ERROR the trait bound `str: std::marker::Sized` is not satisfied
-  //~| HELP consider borrowing here
-  //~| NOTE `str` does not have a constant size known at compile-time
-  //~| HELP the trait `std::marker::Sized` is not implemented for `str`
-  //~| NOTE all local variables must have a statically known size
   let w: &str = s[..2];
   //~^ ERROR mismatched types
-  //~| NOTE expected &str, found str
-  //~| NOTE expected type
-  //~| HELP consider borrowing here
 }
diff --git a/src/test/ui/suggestions/str-array-assignment.stderr b/src/test/ui/suggestions/str-array-assignment.stderr
index c65639805af..4ef18e640a7 100644
--- a/src/test/ui/suggestions/str-array-assignment.stderr
+++ b/src/test/ui/suggestions/str-array-assignment.stderr
@@ -8,21 +8,21 @@ error[E0308]: if and else have incompatible types
               found type `&str`
 
 error[E0308]: mismatched types
-  --> $DIR/str-array-assignment.rs:17:27
+  --> $DIR/str-array-assignment.rs:15:27
    |
-11 | fn main() { //~ NOTE expected `()` because of default return type
+11 | fn main() {
    |           - expected `()` because of default return type
 ...
-17 |   let u: &str = if true { s[..2] } else { s };
+15 |   let u: &str = if true { s[..2] } else { s };
    |                           ^^^^^^ expected &str, found str
    |
    = note: expected type `&str`
               found type `str`
 
 error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
-  --> $DIR/str-array-assignment.rs:21:7
+  --> $DIR/str-array-assignment.rs:17:7
    |
-21 |   let v = s[..2];
+17 |   let v = s[..2];
    |       ^   ------ help: consider borrowing here: `&s[..2]`
    |       |
    |       `str` does not have a constant size known at compile-time
@@ -31,9 +31,9 @@ error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
    = note: all local variables must have a statically known size
 
 error[E0308]: mismatched types
-  --> $DIR/str-array-assignment.rs:27:17
+  --> $DIR/str-array-assignment.rs:19:17
    |
-27 |   let w: &str = s[..2];
+19 |   let w: &str = s[..2];
    |                 ^^^^^^
    |                 |
    |                 expected &str, found str
diff --git a/src/test/ui/svh-change-lit.rs b/src/test/ui/svh-change-lit.rs
index f24a3905cc3..a4262eaff19 100644
--- a/src/test/ui/svh-change-lit.rs
+++ b/src/test/ui/svh-change-lit.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-change-significant-cfg.rs b/src/test/ui/svh-change-significant-cfg.rs
index 7a197fc6ae9..32ec6260362 100644
--- a/src/test/ui/svh-change-significant-cfg.rs
+++ b/src/test/ui/svh-change-significant-cfg.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-change-trait-bound.rs b/src/test/ui/svh-change-trait-bound.rs
index 560feb960f6..0069d930a2d 100644
--- a/src/test/ui/svh-change-trait-bound.rs
+++ b/src/test/ui/svh-change-trait-bound.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-change-type-arg.rs b/src/test/ui/svh-change-type-arg.rs
index b8928c09562..e6685eb5260 100644
--- a/src/test/ui/svh-change-type-arg.rs
+++ b/src/test/ui/svh-change-type-arg.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-change-type-ret.rs b/src/test/ui/svh-change-type-ret.rs
index 14973baafbd..e5f833b9652 100644
--- a/src/test/ui/svh-change-type-ret.rs
+++ b/src/test/ui/svh-change-type-ret.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-change-type-static.rs b/src/test/ui/svh-change-type-static.rs
index cac95b4df8c..c374d26298c 100644
--- a/src/test/ui/svh-change-type-static.rs
+++ b/src/test/ui/svh-change-type-static.rs
@@ -17,8 +17,6 @@
 
 extern crate a;
 extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
-//~| NOTE: perhaps that crate needs to be recompiled
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     b::foo()
diff --git a/src/test/ui/svh-use-trait.rs b/src/test/ui/svh-use-trait.rs
index c875fa8a0b2..ff79a7ad6a0 100644
--- a/src/test/ui/svh-use-trait.rs
+++ b/src/test/ui/svh-use-trait.rs
@@ -22,8 +22,6 @@
 
 extern crate uta;
 extern crate utb; //~ ERROR: found possibly newer version of crate `uta` which `utb` depends
-//~| NOTE: perhaps that crate needs to be recompiled?
-//~| NOTE: the following crate versions were found:
 
 fn main() {
     utb::foo()
diff --git a/src/test/ui/token/issue-10636-2.rs b/src/test/ui/token/issue-10636-2.rs
index c22baee680a..4aa41270193 100644
--- a/src/test/ui/token/issue-10636-2.rs
+++ b/src/test/ui/token/issue-10636-2.rs
@@ -12,9 +12,8 @@
 // first one. This would be easy-ish to address by better recovery in tokenisation.
 
 pub fn trace_option(option: Option<isize>) {
-    option.map(|some| 42; //~ NOTE: unclosed delimiter
+    option.map(|some| 42;
                           //~^ ERROR: expected one of
-                          //~| NOTE: expected one of
 
 } //~ ERROR: incorrect close delimiter
 //~^ ERROR: expected expression, found `)`
diff --git a/src/test/ui/token/issue-10636-2.stderr b/src/test/ui/token/issue-10636-2.stderr
index 48bbeac75d3..b4f0f30c6c1 100644
--- a/src/test/ui/token/issue-10636-2.stderr
+++ b/src/test/ui/token/issue-10636-2.stderr
@@ -1,25 +1,25 @@
 error: incorrect close delimiter: `}`
-  --> $DIR/issue-10636-2.rs:19:1
+  --> $DIR/issue-10636-2.rs:18:1
    |
-19 | } //~ ERROR: incorrect close delimiter
+18 | } //~ ERROR: incorrect close delimiter
    | ^
    |
 note: unclosed delimiter
   --> $DIR/issue-10636-2.rs:15:15
    |
-15 |     option.map(|some| 42; //~ NOTE: unclosed delimiter
+15 |     option.map(|some| 42;
    |               ^
 
 error: expected one of `,`, `.`, `?`, or an operator, found `;`
   --> $DIR/issue-10636-2.rs:15:25
    |
-15 |     option.map(|some| 42; //~ NOTE: unclosed delimiter
+15 |     option.map(|some| 42;
    |                         ^ expected one of `,`, `.`, `?`, or an operator here
 
 error: expected expression, found `)`
-  --> $DIR/issue-10636-2.rs:19:1
+  --> $DIR/issue-10636-2.rs:18:1
    |
-19 | } //~ ERROR: incorrect close delimiter
+18 | } //~ ERROR: incorrect close delimiter
    | ^
 
 error[E0601]: main function not found
diff --git a/src/test/ui/token/macro-incomplete-parse.rs b/src/test/ui/token/macro-incomplete-parse.rs
index fd2561ce496..9b8fdaf9a25 100644
--- a/src/test/ui/token/macro-incomplete-parse.rs
+++ b/src/test/ui/token/macro-incomplete-parse.rs
@@ -20,7 +20,6 @@ macro_rules! ignored_item {
 
 macro_rules! ignored_expr {
     () => ( 1,  //~ ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
-                //~^ NOTE expected one of `.`, `;`, `?`, `}`, or an operator here
 
             2 )
 }
@@ -29,12 +28,12 @@ macro_rules! ignored_pat {
     () => ( 1, 2 ) //~ ERROR macro expansion ignores token `,`
 }
 
-ignored_item!(); //~ NOTE caused by the macro expansion here
+ignored_item!();
 
 fn main() {
-    ignored_expr!(); //~ NOTE in this expansion
+    ignored_expr!();
     match 1 {
-        ignored_pat!() => (), //~ NOTE caused by the macro expansion here
+        ignored_pat!() => (),
         _ => (),
     }
 }
diff --git a/src/test/ui/token/macro-incomplete-parse.stderr b/src/test/ui/token/macro-incomplete-parse.stderr
index 6bce09af052..28ba6cc37c3 100644
--- a/src/test/ui/token/macro-incomplete-parse.stderr
+++ b/src/test/ui/token/macro-incomplete-parse.stderr
@@ -5,9 +5,9 @@ error: macro expansion ignores token `,` and any following
    |         ^
    |
 note: caused by the macro expansion here; the usage of `ignored_item!` is likely invalid in item context
-  --> $DIR/macro-incomplete-parse.rs:32:1
+  --> $DIR/macro-incomplete-parse.rs:31:1
    |
-32 | ignored_item!(); //~ NOTE caused by the macro expansion here
+31 | ignored_item!();
    | ^^^^^^^^^^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
@@ -16,19 +16,19 @@ error: expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
 22 |     () => ( 1,  //~ ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
    |              ^ expected one of `.`, `;`, `?`, `}`, or an operator here
 ...
-35 |     ignored_expr!(); //~ NOTE in this expansion
+34 |     ignored_expr!();
    |     ---------------- in this macro invocation
 
 error: macro expansion ignores token `,` and any following
-  --> $DIR/macro-incomplete-parse.rs:29:14
+  --> $DIR/macro-incomplete-parse.rs:28:14
    |
-29 |     () => ( 1, 2 ) //~ ERROR macro expansion ignores token `,`
+28 |     () => ( 1, 2 ) //~ ERROR macro expansion ignores token `,`
    |              ^
    |
 note: caused by the macro expansion here; the usage of `ignored_pat!` is likely invalid in pattern context
-  --> $DIR/macro-incomplete-parse.rs:37:9
+  --> $DIR/macro-incomplete-parse.rs:36:9
    |
-37 |         ignored_pat!() => (), //~ NOTE caused by the macro expansion here
+36 |         ignored_pat!() => (),
    |         ^^^^^^^^^^^^^^
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/trait-duplicate-methods.rs b/src/test/ui/trait-duplicate-methods.rs
index b8e628dd47a..d35caa40a2d 100644
--- a/src/test/ui/trait-duplicate-methods.rs
+++ b/src/test/ui/trait-duplicate-methods.rs
@@ -9,10 +9,8 @@
 // except according to those terms.
 
 trait Foo {
-    fn orange(&self); //~ NOTE previous definition of the value `orange` here
+    fn orange(&self);
     fn orange(&self); //~ ERROR the name `orange` is defined multiple times
-                      //~| NOTE `orange` redefined here
-//~| NOTE `orange` must be defined only once in the value namespace of this trait
 }
 
 fn main() {}
diff --git a/src/test/ui/trait-duplicate-methods.stderr b/src/test/ui/trait-duplicate-methods.stderr
index 0deec625d10..5f796777c41 100644
--- a/src/test/ui/trait-duplicate-methods.stderr
+++ b/src/test/ui/trait-duplicate-methods.stderr
@@ -1,7 +1,7 @@
 error[E0428]: the name `orange` is defined multiple times
   --> $DIR/trait-duplicate-methods.rs:13:5
    |
-12 |     fn orange(&self); //~ NOTE previous definition of the value `orange` here
+12 |     fn orange(&self);
    |     ----------------- previous definition of the value `orange` here
 13 |     fn orange(&self); //~ ERROR the name `orange` is defined multiple times
    |     ^^^^^^^^^^^^^^^^^ `orange` redefined here
diff --git a/src/test/ui/trait-safety-fn-body.rs b/src/test/ui/trait-safety-fn-body.rs
index 65732a8ff69..1a2bcc471b4 100644
--- a/src/test/ui/trait-safety-fn-body.rs
+++ b/src/test/ui/trait-safety-fn-body.rs
@@ -20,7 +20,6 @@ unsafe impl UnsafeTrait for *mut isize {
         // Unsafe actions are not made legal by taking place in an unsafe trait:
         *self += 1;
         //~^ ERROR E0133
-        //~| NOTE dereference of raw pointer
     }
 }
 
diff --git a/src/test/ui/trait-suggest-where-clause.rs b/src/test/ui/trait-suggest-where-clause.rs
index 2c38d8d2e28..5dcb4c8a220 100644
--- a/src/test/ui/trait-suggest-where-clause.rs
+++ b/src/test/ui/trait-suggest-where-clause.rs
@@ -16,53 +16,30 @@ fn check<T: Iterator, U: ?Sized>() {
     // suggest a where-clause, if needed
     mem::size_of::<U>();
     //~^ ERROR `U: std::marker::Sized` is not satisfied
-    //~| HELP consider adding a `where U: std::marker::Sized` bound
-    //~| NOTE required by `std::mem::size_of`
-    //~| NOTE `U` does not have a constant size known at compile-time
-    //~| HELP the trait `std::marker::Sized` is not implemented for `U`
 
     mem::size_of::<Misc<U>>();
     //~^ ERROR `U: std::marker::Sized` is not satisfied
-    //~| HELP consider adding a `where U: std::marker::Sized` bound
-    //~| NOTE required because it appears within the type `Misc<U>`
-    //~| NOTE required by `std::mem::size_of`
-    //~| NOTE `U` does not have a constant size known at compile-time
-    //~| HELP within `Misc<U>`, the trait `std::marker::Sized` is not implemented for `U`
 
     // ... even if T occurs as a type parameter
 
     <u64 as From<T>>::from;
     //~^ ERROR `u64: std::convert::From<T>` is not satisfied
-    //~| HELP consider adding a `where u64: std::convert::From<T>` bound
-    //~| NOTE required by `std::convert::From::from`
-    //~| NOTE the trait `std::convert::From<T>` is not implemented for `u64`
 
     <u64 as From<<T as Iterator>::Item>>::from;
     //~^ ERROR `u64: std::convert::From<<T as std::iter::Iterator>::Item>` is not satisfied
-    //~| HELP consider adding a `where u64:
-    //~| NOTE required by `std::convert::From::from`
-    //~| NOTE the trait `std::convert::From<<T as std::iter::Iterator>::Item>` is not implemented
 
     // ... but not if there are inference variables
 
     <Misc<_> as From<T>>::from;
     //~^ ERROR `Misc<_>: std::convert::From<T>` is not satisfied
-    //~| NOTE required by `std::convert::From::from`
-    //~| NOTE the trait `std::convert::From<T>` is not implemented for `Misc<_>`
 
     // ... and also not if the error is not related to the type
 
     mem::size_of::<[T]>();
     //~^ ERROR `[T]: std::marker::Sized` is not satisfied
-    //~| NOTE `[T]` does not have a constant size
-    //~| NOTE required by `std::mem::size_of`
-    //~| HELP the trait `std::marker::Sized` is not implemented for `[T]`
 
     mem::size_of::<[&U]>();
     //~^ ERROR `[&U]: std::marker::Sized` is not satisfied
-    //~| NOTE `[&U]` does not have a constant size
-    //~| NOTE required by `std::mem::size_of`
-    //~| HELP the trait `std::marker::Sized` is not implemented for `[&U]`
 }
 
 fn main() {
diff --git a/src/test/ui/trait-suggest-where-clause.stderr b/src/test/ui/trait-suggest-where-clause.stderr
index ddf549f4ecd..57d2b9aae78 100644
--- a/src/test/ui/trait-suggest-where-clause.stderr
+++ b/src/test/ui/trait-suggest-where-clause.stderr
@@ -9,9 +9,9 @@ error[E0277]: the trait bound `U: std::marker::Sized` is not satisfied
    = note: required by `std::mem::size_of`
 
 error[E0277]: the trait bound `U: std::marker::Sized` is not satisfied in `Misc<U>`
-  --> $DIR/trait-suggest-where-clause.rs:24:5
+  --> $DIR/trait-suggest-where-clause.rs:20:5
    |
-24 |     mem::size_of::<Misc<U>>();
+20 |     mem::size_of::<Misc<U>>();
    |     ^^^^^^^^^^^^^^^^^^^^^^^ `U` does not have a constant size known at compile-time
    |
    = help: within `Misc<U>`, the trait `std::marker::Sized` is not implemented for `U`
@@ -20,44 +20,44 @@ error[E0277]: the trait bound `U: std::marker::Sized` is not satisfied in `Misc<
    = note: required by `std::mem::size_of`
 
 error[E0277]: the trait bound `u64: std::convert::From<T>` is not satisfied
-  --> $DIR/trait-suggest-where-clause.rs:34:5
+  --> $DIR/trait-suggest-where-clause.rs:25:5
    |
-34 |     <u64 as From<T>>::from;
+25 |     <u64 as From<T>>::from;
    |     ^^^^^^^^^^^^^^^^^^^^^^ the trait `std::convert::From<T>` is not implemented for `u64`
    |
    = help: consider adding a `where u64: std::convert::From<T>` bound
    = note: required by `std::convert::From::from`
 
 error[E0277]: the trait bound `u64: std::convert::From<<T as std::iter::Iterator>::Item>` is not satisfied
-  --> $DIR/trait-suggest-where-clause.rs:40:5
+  --> $DIR/trait-suggest-where-clause.rs:28:5
    |
-40 |     <u64 as From<<T as Iterator>::Item>>::from;
+28 |     <u64 as From<<T as Iterator>::Item>>::from;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::convert::From<<T as std::iter::Iterator>::Item>` is not implemented for `u64`
    |
    = help: consider adding a `where u64: std::convert::From<<T as std::iter::Iterator>::Item>` bound
    = note: required by `std::convert::From::from`
 
 error[E0277]: the trait bound `Misc<_>: std::convert::From<T>` is not satisfied
-  --> $DIR/trait-suggest-where-clause.rs:48:5
+  --> $DIR/trait-suggest-where-clause.rs:33:5
    |
-48 |     <Misc<_> as From<T>>::from;
+33 |     <Misc<_> as From<T>>::from;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::convert::From<T>` is not implemented for `Misc<_>`
    |
    = note: required by `std::convert::From::from`
 
 error[E0277]: the trait bound `[T]: std::marker::Sized` is not satisfied
-  --> $DIR/trait-suggest-where-clause.rs:55:5
+  --> $DIR/trait-suggest-where-clause.rs:38:5
    |
-55 |     mem::size_of::<[T]>();
+38 |     mem::size_of::<[T]>();
    |     ^^^^^^^^^^^^^^^^^^^ `[T]` does not have a constant size known at compile-time
    |
    = help: the trait `std::marker::Sized` is not implemented for `[T]`
    = note: required by `std::mem::size_of`
 
 error[E0277]: the trait bound `[&U]: std::marker::Sized` is not satisfied
-  --> $DIR/trait-suggest-where-clause.rs:61:5
+  --> $DIR/trait-suggest-where-clause.rs:41:5
    |
-61 |     mem::size_of::<[&U]>();
+41 |     mem::size_of::<[&U]>();
    |     ^^^^^^^^^^^^^^^^^^^^ `[&U]` does not have a constant size known at compile-time
    |
    = help: the trait `std::marker::Sized` is not implemented for `[&U]`
diff --git a/src/test/ui/traits-multidispatch-convert-ambig-dest.rs b/src/test/ui/traits-multidispatch-convert-ambig-dest.rs
index 2e115431c92..0d4855c544f 100644
--- a/src/test/ui/traits-multidispatch-convert-ambig-dest.rs
+++ b/src/test/ui/traits-multidispatch-convert-ambig-dest.rs
@@ -35,7 +35,6 @@ where T : Convert<U>
 fn a() {
     test(22, std::default::Default::default());
     //~^ ERROR type annotations needed [E0282]
-    //~| NOTE cannot infer type for `U`
 }
 
 fn main() {}
diff --git a/src/test/ui/type-check/assignment-in-if.rs b/src/test/ui/type-check/assignment-in-if.rs
index e4422f0b99a..d4d070ecaef 100644
--- a/src/test/ui/type-check/assignment-in-if.rs
+++ b/src/test/ui/type-check/assignment-in-if.rs
@@ -24,25 +24,21 @@ fn main() {
     // `x { ... }` should not be interpreted as a struct literal here
     if x = x {
         //~^ ERROR mismatched types
-        //~| HELP try comparing for equality
         println!("{}", x);
     }
     // Explicit parentheses on the left should match behavior of above
     if (x = x) {
         //~^ ERROR mismatched types
-        //~| HELP try comparing for equality
         println!("{}", x);
     }
     // The struct literal interpretation is fine with explicit parentheses on the right
     if y = (Foo { foo: x }) {
         //~^ ERROR mismatched types
-        //~| HELP try comparing for equality
         println!("{}", x);
     }
     // "invalid left-hand side expression" error is suppresed
     if 3 = x {
         //~^ ERROR mismatched types
-        //~| HELP try comparing for equality
         println!("{}", x);
     }
     if (if true { x = 4 } else { x = 5 }) {
diff --git a/src/test/ui/type-check/assignment-in-if.stderr b/src/test/ui/type-check/assignment-in-if.stderr
index 6052b3091c7..fffdca17d84 100644
--- a/src/test/ui/type-check/assignment-in-if.stderr
+++ b/src/test/ui/type-check/assignment-in-if.stderr
@@ -11,9 +11,9 @@ error[E0308]: mismatched types
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/assignment-in-if.rs:31:8
+  --> $DIR/assignment-in-if.rs:30:8
    |
-31 |     if (x = x) {
+30 |     if (x = x) {
    |        ^^^^^^^
    |        |
    |        expected bool, found ()
@@ -23,9 +23,9 @@ error[E0308]: mismatched types
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/assignment-in-if.rs:37:8
+  --> $DIR/assignment-in-if.rs:35:8
    |
-37 |     if y = (Foo { foo: x }) {
+35 |     if y = (Foo { foo: x }) {
    |        ^^^^^^^^^^^^^^^^^^^^
    |        |
    |        expected bool, found ()
@@ -35,9 +35,9 @@ error[E0308]: mismatched types
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/assignment-in-if.rs:43:8
+  --> $DIR/assignment-in-if.rs:40:8
    |
-43 |     if 3 = x {
+40 |     if 3 = x {
    |        ^^^^^
    |        |
    |        expected bool, found ()
@@ -47,9 +47,9 @@ error[E0308]: mismatched types
               found type `()`
 
 error[E0308]: mismatched types
-  --> $DIR/assignment-in-if.rs:48:8
+  --> $DIR/assignment-in-if.rs:44:8
    |
-48 |     if (if true { x = 4 } else { x = 5 }) {
+44 |     if (if true { x = 4 } else { x = 5 }) {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found ()
    |
    = note: expected type `bool`
diff --git a/src/test/ui/type-check/missing_trait_impl.rs b/src/test/ui/type-check/missing_trait_impl.rs
index fe008db68a0..adf6b85b642 100644
--- a/src/test/ui/type-check/missing_trait_impl.rs
+++ b/src/test/ui/type-check/missing_trait_impl.rs
@@ -13,5 +13,4 @@ fn main() {
 
 fn foo<T>(x: T, y: T) {
     let z = x + y; //~ ERROR binary operation `+` cannot be applied to type `T`
-    //~^ NOTE `T` might need a bound for `std::ops::Add`
 }
diff --git a/src/test/ui/type-recursive.rs b/src/test/ui/type-recursive.rs
index 5dd76ce32c7..4bb739800df 100644
--- a/src/test/ui/type-recursive.rs
+++ b/src/test/ui/type-recursive.rs
@@ -9,9 +9,8 @@
 // except according to those terms.
 
 struct t1 { //~ ERROR E0072
-            //~| NOTE recursive type has infinite size
     foo: isize,
-    foolish: t1  //~ NOTE recursive without indirection
+    foolish: t1
 }
 
 fn main() { }
diff --git a/src/test/ui/type-recursive.stderr b/src/test/ui/type-recursive.stderr
index d96b1f3e987..4c764529797 100644
--- a/src/test/ui/type-recursive.stderr
+++ b/src/test/ui/type-recursive.stderr
@@ -3,8 +3,8 @@ error[E0072]: recursive type `t1` has infinite size
    |
 11 | struct t1 { //~ ERROR E0072
    | ^^^^^^^^^ recursive type has infinite size
-...
-14 |     foolish: t1  //~ NOTE recursive without indirection
+12 |     foo: isize,
+13 |     foolish: t1
    |     ----------- recursive without indirection
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `t1` representable
diff --git a/src/test/ui/typeck-builtin-bound-type-parameters.rs b/src/test/ui/typeck-builtin-bound-type-parameters.rs
index 0d98e044ab0..15fc3ecab97 100644
--- a/src/test/ui/typeck-builtin-bound-type-parameters.rs
+++ b/src/test/ui/typeck-builtin-bound-type-parameters.rs
@@ -10,26 +10,20 @@
 
 fn foo1<T:Copy<U>, U>(x: T) {}
 //~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
-//~| NOTE expected no type arguments
 
 trait Trait: Copy<Send> {}
 //~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
-//~| NOTE expected no type arguments
 
 struct MyStruct1<T: Copy<T>>;
 //~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
-//~| NOTE expected no type arguments
 
 struct MyStruct2<'a, T: Copy<'a>>;
 //~^ ERROR: wrong number of lifetime parameters: expected 0, found 1
-//~| NOTE unexpected lifetime parameter
 
 
 fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
 //~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
-//~| NOTE expected no type arguments
 //~| ERROR: wrong number of lifetime parameters: expected 0, found 1
-//~| NOTE unexpected lifetime parameter
 
 fn main() {
 }
diff --git a/src/test/ui/typeck-builtin-bound-type-parameters.stderr b/src/test/ui/typeck-builtin-bound-type-parameters.stderr
index fc39b2b8e9d..cf280bf1cd3 100644
--- a/src/test/ui/typeck-builtin-bound-type-parameters.stderr
+++ b/src/test/ui/typeck-builtin-bound-type-parameters.stderr
@@ -5,33 +5,33 @@ error[E0244]: wrong number of type arguments: expected 0, found 1
    |           ^^^^^^^ expected no type arguments
 
 error[E0244]: wrong number of type arguments: expected 0, found 1
-  --> $DIR/typeck-builtin-bound-type-parameters.rs:15:14
+  --> $DIR/typeck-builtin-bound-type-parameters.rs:14:14
    |
-15 | trait Trait: Copy<Send> {}
+14 | trait Trait: Copy<Send> {}
    |              ^^^^^^^^^^ expected no type arguments
 
 error[E0244]: wrong number of type arguments: expected 0, found 1
-  --> $DIR/typeck-builtin-bound-type-parameters.rs:19:21
+  --> $DIR/typeck-builtin-bound-type-parameters.rs:17:21
    |
-19 | struct MyStruct1<T: Copy<T>>;
+17 | struct MyStruct1<T: Copy<T>>;
    |                     ^^^^^^^ expected no type arguments
 
 error[E0107]: wrong number of lifetime parameters: expected 0, found 1
-  --> $DIR/typeck-builtin-bound-type-parameters.rs:23:25
+  --> $DIR/typeck-builtin-bound-type-parameters.rs:20:25
    |
-23 | struct MyStruct2<'a, T: Copy<'a>>;
+20 | struct MyStruct2<'a, T: Copy<'a>>;
    |                         ^^^^^^^^ unexpected lifetime parameter
 
 error[E0107]: wrong number of lifetime parameters: expected 0, found 1
-  --> $DIR/typeck-builtin-bound-type-parameters.rs:28:15
+  --> $DIR/typeck-builtin-bound-type-parameters.rs:24:15
    |
-28 | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
+24 | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
    |               ^^^^^^^^^^^ unexpected lifetime parameter
 
 error[E0244]: wrong number of type arguments: expected 0, found 1
-  --> $DIR/typeck-builtin-bound-type-parameters.rs:28:15
+  --> $DIR/typeck-builtin-bound-type-parameters.rs:24:15
    |
-28 | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
+24 | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
    |               ^^^^^^^^^^^ expected no type arguments
 
 error: aborting due to 6 previous errors
diff --git a/src/test/ui/typeck-default-trait-impl-outside-crate.rs b/src/test/ui/typeck-default-trait-impl-outside-crate.rs
index da3e926d6fc..ff0446e23e6 100644
--- a/src/test/ui/typeck-default-trait-impl-outside-crate.rs
+++ b/src/test/ui/typeck-default-trait-impl-outside-crate.rs
@@ -12,5 +12,4 @@
 
 #[allow(auto_impl)]
 impl Copy for .. {} //~ ERROR E0318
-     //~^ NOTE `Copy` trait not defined in this crate
 fn main() {}
diff --git a/src/test/ui/typeck_type_placeholder_item.rs b/src/test/ui/typeck_type_placeholder_item.rs
index 42db3b47a04..d4f3cdfd8b7 100644
--- a/src/test/ui/typeck_type_placeholder_item.rs
+++ b/src/test/ui/typeck_type_placeholder_item.rs
@@ -13,141 +13,107 @@
 
 fn test() -> _ { 5 }
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 fn test2() -> (_, _) { (5, 5) }
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
 //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
-//~| NOTE not allowed in type signatures
 
 static TEST3: _ = "test";
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 static TEST4: _ = 145;
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 static TEST5: (_, _) = (1, 2);
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
 //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
-//~| NOTE not allowed in type signatures
 
 fn test6(_: _) { }
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 fn test7(x: _) { let _x: usize = x; }
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 fn test8(_f: fn() -> _) { }
 //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-//~| NOTE not allowed in type signatures
 
 struct Test9;
 
 impl Test9 {
     fn test9(&self) -> _ { () }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     fn test10(&self, _x : _) { }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 }
 
 impl Clone for Test9 {
     fn clone(&self) -> _ { Test9 }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     fn clone_from(&mut self, other: _) { *self = Test9; }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 }
 
 struct Test10 {
     a: _,
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
     b: (_, _),
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
     //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
-    //~| NOTE not allowed in type signatures
 }
 
 pub fn main() {
     fn fn_test() -> _ { 5 }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     fn fn_test2() -> (_, _) { (5, 5) }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
     //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
-    //~| NOTE not allowed in type signatures
 
     static FN_TEST3: _ = "test";
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     static FN_TEST4: _ = 145;
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     static FN_TEST5: (_, _) = (1, 2);
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
     //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
-    //~| NOTE not allowed in type signatures
 
     fn fn_test6(_: _) { }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     fn fn_test7(x: _) { let _x: usize = x; }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     fn fn_test8(_f: fn() -> _) { }
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-    //~| NOTE not allowed in type signatures
 
     struct FnTest9;
 
     impl FnTest9 {
         fn fn_test9(&self) -> _ { () }
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
 
         fn fn_test10(&self, _x : _) { }
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
     }
 
     impl Clone for FnTest9 {
         fn clone(&self) -> _ { FnTest9 }
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
 
         fn clone_from(&mut self, other: _) { *self = FnTest9; }
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
     }
 
     struct FnTest10 {
         a: _,
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
         b: (_, _),
         //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
         //~^^ ERROR the type placeholder `_` is not allowed within types on item signatures
-        //~| NOTE not allowed in type signatures
-        //~| NOTE not allowed in type signatures
     }
 
 }
diff --git a/src/test/ui/typeck_type_placeholder_item.stderr b/src/test/ui/typeck_type_placeholder_item.stderr
index 046fce4e325..39e42731576 100644
--- a/src/test/ui/typeck_type_placeholder_item.stderr
+++ b/src/test/ui/typeck_type_placeholder_item.stderr
@@ -5,201 +5,201 @@ error[E0121]: the type placeholder `_` is not allowed within types on item signa
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:18:16
+  --> $DIR/typeck_type_placeholder_item.rs:17:16
    |
-18 | fn test2() -> (_, _) { (5, 5) }
+17 | fn test2() -> (_, _) { (5, 5) }
    |                ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:18:19
+  --> $DIR/typeck_type_placeholder_item.rs:17:19
    |
-18 | fn test2() -> (_, _) { (5, 5) }
+17 | fn test2() -> (_, _) { (5, 5) }
    |                   ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:24:15
+  --> $DIR/typeck_type_placeholder_item.rs:21:15
    |
-24 | static TEST3: _ = "test";
+21 | static TEST3: _ = "test";
    |               ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:28:15
+  --> $DIR/typeck_type_placeholder_item.rs:24:15
    |
-28 | static TEST4: _ = 145;
+24 | static TEST4: _ = 145;
    |               ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:32:16
+  --> $DIR/typeck_type_placeholder_item.rs:27:16
    |
-32 | static TEST5: (_, _) = (1, 2);
+27 | static TEST5: (_, _) = (1, 2);
    |                ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:32:19
+  --> $DIR/typeck_type_placeholder_item.rs:27:19
    |
-32 | static TEST5: (_, _) = (1, 2);
+27 | static TEST5: (_, _) = (1, 2);
    |                   ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:38:13
+  --> $DIR/typeck_type_placeholder_item.rs:31:13
    |
-38 | fn test6(_: _) { }
+31 | fn test6(_: _) { }
    |             ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:42:13
+  --> $DIR/typeck_type_placeholder_item.rs:34:13
    |
-42 | fn test7(x: _) { let _x: usize = x; }
+34 | fn test7(x: _) { let _x: usize = x; }
    |             ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:46:22
+  --> $DIR/typeck_type_placeholder_item.rs:37:22
    |
-46 | fn test8(_f: fn() -> _) { }
+37 | fn test8(_f: fn() -> _) { }
    |                      ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:73:8
+  --> $DIR/typeck_type_placeholder_item.rs:59:8
    |
-73 |     a: _,
+59 |     a: _,
    |        ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:76:9
+  --> $DIR/typeck_type_placeholder_item.rs:61:9
    |
-76 |     b: (_, _),
+61 |     b: (_, _),
    |         ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:76:12
+  --> $DIR/typeck_type_placeholder_item.rs:61:12
    |
-76 |     b: (_, _),
+61 |     b: (_, _),
    |            ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:84:21
+  --> $DIR/typeck_type_placeholder_item.rs:67:21
    |
-84 |     fn fn_test() -> _ { 5 }
+67 |     fn fn_test() -> _ { 5 }
    |                     ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:88:23
+  --> $DIR/typeck_type_placeholder_item.rs:70:23
    |
-88 |     fn fn_test2() -> (_, _) { (5, 5) }
+70 |     fn fn_test2() -> (_, _) { (5, 5) }
    |                       ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:88:26
+  --> $DIR/typeck_type_placeholder_item.rs:70:26
    |
-88 |     fn fn_test2() -> (_, _) { (5, 5) }
+70 |     fn fn_test2() -> (_, _) { (5, 5) }
    |                          ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:94:22
+  --> $DIR/typeck_type_placeholder_item.rs:74:22
    |
-94 |     static FN_TEST3: _ = "test";
+74 |     static FN_TEST3: _ = "test";
    |                      ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:98:22
+  --> $DIR/typeck_type_placeholder_item.rs:77:22
    |
-98 |     static FN_TEST4: _ = 145;
+77 |     static FN_TEST4: _ = 145;
    |                      ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:102:23
-    |
-102 |     static FN_TEST5: (_, _) = (1, 2);
-    |                       ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:80:23
+   |
+80 |     static FN_TEST5: (_, _) = (1, 2);
+   |                       ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:102:26
-    |
-102 |     static FN_TEST5: (_, _) = (1, 2);
-    |                          ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:80:26
+   |
+80 |     static FN_TEST5: (_, _) = (1, 2);
+   |                          ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:108:20
-    |
-108 |     fn fn_test6(_: _) { }
-    |                    ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:84:20
+   |
+84 |     fn fn_test6(_: _) { }
+   |                    ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:112:20
-    |
-112 |     fn fn_test7(x: _) { let _x: usize = x; }
-    |                    ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:87:20
+   |
+87 |     fn fn_test7(x: _) { let _x: usize = x; }
+   |                    ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:116:29
-    |
-116 |     fn fn_test8(_f: fn() -> _) { }
-    |                             ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:90:29
+   |
+90 |     fn fn_test8(_f: fn() -> _) { }
+   |                             ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:143:12
+   --> $DIR/typeck_type_placeholder_item.rs:112:12
     |
-143 |         a: _,
+112 |         a: _,
     |            ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:146:13
+   --> $DIR/typeck_type_placeholder_item.rs:114:13
     |
-146 |         b: (_, _),
+114 |         b: (_, _),
     |             ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:146:16
+   --> $DIR/typeck_type_placeholder_item.rs:114:16
     |
-146 |         b: (_, _),
+114 |         b: (_, _),
     |                ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:53:24
+  --> $DIR/typeck_type_placeholder_item.rs:43:24
    |
-53 |     fn test9(&self) -> _ { () }
+43 |     fn test9(&self) -> _ { () }
    |                        ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:57:27
+  --> $DIR/typeck_type_placeholder_item.rs:46:27
    |
-57 |     fn test10(&self, _x : _) { }
+46 |     fn test10(&self, _x : _) { }
    |                           ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:63:24
+  --> $DIR/typeck_type_placeholder_item.rs:51:24
    |
-63 |     fn clone(&self) -> _ { Test9 }
+51 |     fn clone(&self) -> _ { Test9 }
    |                        ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-  --> $DIR/typeck_type_placeholder_item.rs:67:37
+  --> $DIR/typeck_type_placeholder_item.rs:54:37
    |
-67 |     fn clone_from(&mut self, other: _) { *self = Test9; }
+54 |     fn clone_from(&mut self, other: _) { *self = Test9; }
    |                                     ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:123:31
-    |
-123 |         fn fn_test9(&self) -> _ { () }
-    |                               ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:96:31
+   |
+96 |         fn fn_test9(&self) -> _ { () }
+   |                               ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:127:34
-    |
-127 |         fn fn_test10(&self, _x : _) { }
-    |                                  ^ not allowed in type signatures
+  --> $DIR/typeck_type_placeholder_item.rs:99:34
+   |
+99 |         fn fn_test10(&self, _x : _) { }
+   |                                  ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:133:28
+   --> $DIR/typeck_type_placeholder_item.rs:104:28
     |
-133 |         fn clone(&self) -> _ { FnTest9 }
+104 |         fn clone(&self) -> _ { FnTest9 }
     |                            ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
-   --> $DIR/typeck_type_placeholder_item.rs:137:41
+   --> $DIR/typeck_type_placeholder_item.rs:107:41
     |
-137 |         fn clone_from(&mut self, other: _) { *self = FnTest9; }
+107 |         fn clone_from(&mut self, other: _) { *self = FnTest9; }
     |                                         ^ not allowed in type signatures
 
 error: aborting due to 34 previous errors
diff --git a/src/test/ui/typeck_type_placeholder_lifetime_1.rs b/src/test/ui/typeck_type_placeholder_lifetime_1.rs
index ad57752b6f7..49774ab173a 100644
--- a/src/test/ui/typeck_type_placeholder_lifetime_1.rs
+++ b/src/test/ui/typeck_type_placeholder_lifetime_1.rs
@@ -18,5 +18,4 @@ struct Foo<'a, T:'a> {
 pub fn main() {
     let c: Foo<_, _> = Foo { r: &5 };
     //~^ ERROR wrong number of type arguments: expected 1, found 2 [E0244]
-    //~| NOTE expected 1 type argument
 }
diff --git a/src/test/ui/typeck_type_placeholder_lifetime_2.rs b/src/test/ui/typeck_type_placeholder_lifetime_2.rs
index f1ecad0056e..40617613ed7 100644
--- a/src/test/ui/typeck_type_placeholder_lifetime_2.rs
+++ b/src/test/ui/typeck_type_placeholder_lifetime_2.rs
@@ -18,5 +18,4 @@ struct Foo<'a, T:'a> {
 pub fn main() {
     let c: Foo<_, usize> = Foo { r: &5 };
     //~^ ERROR wrong number of type arguments: expected 1, found 2 [E0244]
-    //~| NOTE expected 1 type argument
 }
diff --git a/src/test/ui/unboxed-closure-sugar-wrong-trait.rs b/src/test/ui/unboxed-closure-sugar-wrong-trait.rs
index 95d78c07501..1519ceb8988 100644
--- a/src/test/ui/unboxed-closure-sugar-wrong-trait.rs
+++ b/src/test/ui/unboxed-closure-sugar-wrong-trait.rs
@@ -14,8 +14,6 @@ trait Trait {}
 
 fn f<F:Trait(isize) -> isize>(x: F) {}
 //~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
-//~| NOTE expected no type arguments
 //~| ERROR E0220
-//~| NOTE associated type `Output` not found
 
 fn main() {}
diff --git a/src/test/ui/unconstrained-none.rs b/src/test/ui/unconstrained-none.rs
index 52ca91e62f8..81247734979 100644
--- a/src/test/ui/unconstrained-none.rs
+++ b/src/test/ui/unconstrained-none.rs
@@ -12,5 +12,4 @@
 
 fn main() {
     None; //~ ERROR type annotations needed [E0282]
-          //~| NOTE cannot infer type for `T`
 }
diff --git a/src/test/ui/unconstrained-ref.rs b/src/test/ui/unconstrained-ref.rs
index 6aaed789716..05c0d23b7e7 100644
--- a/src/test/ui/unconstrained-ref.rs
+++ b/src/test/ui/unconstrained-ref.rs
@@ -14,5 +14,4 @@ struct S<'a, T:'a> {
 
 fn main() {
     S { o: &None }; //~ ERROR type annotations needed [E0282]
-                    //~| NOTE cannot infer type for `T`
 }
diff --git a/src/test/ui/union/union-const-eval.rs b/src/test/ui/union/union-const-eval.rs
index 73b7743fc45..a4c969ba20c 100644
--- a/src/test/ui/union/union-const-eval.rs
+++ b/src/test/ui/union/union-const-eval.rs
@@ -19,8 +19,6 @@ fn main() {
     unsafe {
         let a: [u8; C.a]; // OK
         let b: [u8; C.b]; //~ ERROR constant evaluation error
-                          //~^ NOTE nonexistent struct field
                           //~| WARNING constant evaluation error
-                          //~| NOTE on by default
     }
 }
diff --git a/src/test/ui/union/union-fields-2.rs b/src/test/ui/union/union-fields-2.rs
index 124b16f99b1..7b9ff866a43 100644
--- a/src/test/ui/union/union-fields-2.rs
+++ b/src/test/ui/union/union-fields-2.rs
@@ -19,8 +19,6 @@ fn main() {
     let u = U { a: 0, b: 1 }; //~ ERROR union expressions should have exactly one field
     let u = U { a: 0, b: 1, c: 2 }; //~ ERROR union expressions should have exactly one field
                                     //~^ ERROR union `U` has no field named `c`
-                                    //~| NOTE `U` does not have this field
-                                    //~| NOTE available fields are: `a`, `b`
     let u = U { ..u }; //~ ERROR union expressions should have exactly one field
                        //~^ ERROR functional record update syntax requires a struct
 
@@ -29,7 +27,6 @@ fn main() {
     let U { a, b } = u; //~ ERROR union patterns should have exactly one field
     let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
                            //~^ ERROR union `U` does not have a field named `c`
-                           //~| NOTE union `U` does not have field `c`
     let U { .. } = u; //~ ERROR union patterns should have exactly one field
                       //~^ ERROR `..` cannot be used in union patterns
     let U { a, .. } = u; //~ ERROR `..` cannot be used in union patterns
diff --git a/src/test/ui/union/union-fields-2.stderr b/src/test/ui/union/union-fields-2.stderr
index 19c0552fdaa..f6c64dcabd7 100644
--- a/src/test/ui/union/union-fields-2.stderr
+++ b/src/test/ui/union/union-fields-2.stderr
@@ -25,57 +25,57 @@ error: union expressions should have exactly one field
    |             ^
 
 error: union expressions should have exactly one field
-  --> $DIR/union-fields-2.rs:24:13
+  --> $DIR/union-fields-2.rs:22:13
    |
-24 |     let u = U { ..u }; //~ ERROR union expressions should have exactly one field
+22 |     let u = U { ..u }; //~ ERROR union expressions should have exactly one field
    |             ^
 
 error[E0436]: functional record update syntax requires a struct
-  --> $DIR/union-fields-2.rs:24:19
+  --> $DIR/union-fields-2.rs:22:19
    |
-24 |     let u = U { ..u }; //~ ERROR union expressions should have exactly one field
+22 |     let u = U { ..u }; //~ ERROR union expressions should have exactly one field
    |                   ^
 
 error: union patterns should have exactly one field
-  --> $DIR/union-fields-2.rs:27:9
+  --> $DIR/union-fields-2.rs:25:9
    |
-27 |     let U {} = u; //~ ERROR union patterns should have exactly one field
+25 |     let U {} = u; //~ ERROR union patterns should have exactly one field
    |         ^^^^
 
 error: union patterns should have exactly one field
-  --> $DIR/union-fields-2.rs:29:9
+  --> $DIR/union-fields-2.rs:27:9
    |
-29 |     let U { a, b } = u; //~ ERROR union patterns should have exactly one field
+27 |     let U { a, b } = u; //~ ERROR union patterns should have exactly one field
    |         ^^^^^^^^^^
 
 error[E0026]: union `U` does not have a field named `c`
-  --> $DIR/union-fields-2.rs:30:19
+  --> $DIR/union-fields-2.rs:28:19
    |
-30 |     let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
+28 |     let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
    |                   ^ union `U` does not have field `c`
 
 error: union patterns should have exactly one field
-  --> $DIR/union-fields-2.rs:30:9
+  --> $DIR/union-fields-2.rs:28:9
    |
-30 |     let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
+28 |     let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
    |         ^^^^^^^^^^^^^
 
 error: union patterns should have exactly one field
-  --> $DIR/union-fields-2.rs:33:9
+  --> $DIR/union-fields-2.rs:30:9
    |
-33 |     let U { .. } = u; //~ ERROR union patterns should have exactly one field
+30 |     let U { .. } = u; //~ ERROR union patterns should have exactly one field
    |         ^^^^^^^^
 
 error: `..` cannot be used in union patterns
-  --> $DIR/union-fields-2.rs:33:9
+  --> $DIR/union-fields-2.rs:30:9
    |
-33 |     let U { .. } = u; //~ ERROR union patterns should have exactly one field
+30 |     let U { .. } = u; //~ ERROR union patterns should have exactly one field
    |         ^^^^^^^^
 
 error: `..` cannot be used in union patterns
-  --> $DIR/union-fields-2.rs:35:9
+  --> $DIR/union-fields-2.rs:32:9
    |
-35 |     let U { a, .. } = u; //~ ERROR `..` cannot be used in union patterns
+32 |     let U { a, .. } = u; //~ ERROR `..` cannot be used in union patterns
    |         ^^^^^^^^^^^
 
 error: aborting due to 13 previous errors
diff --git a/src/test/ui/union/union-suggest-field.rs b/src/test/ui/union/union-suggest-field.rs
index 65c7c980b8a..96fca78ef22 100644
--- a/src/test/ui/union/union-suggest-field.rs
+++ b/src/test/ui/union/union-suggest-field.rs
@@ -19,10 +19,8 @@ impl U {
 fn main() {
     let u = U { principle: 0 };
     //~^ ERROR union `U` has no field named `principle`
-    //~| NOTE field does not exist - did you mean `principal`?
     let w = u.principial; //~ ERROR no field `principial` on type `U`
                           //~^ did you mean `principal`?
 
     let y = u.calculate; //~ ERROR attempted to take value of method `calculate` on type `U`
-                         //~^ HELP maybe a `()` to call it is missing?
 }
diff --git a/src/test/ui/union/union-suggest-field.stderr b/src/test/ui/union/union-suggest-field.stderr
index d76a92cf56e..d2ea09553bc 100644
--- a/src/test/ui/union/union-suggest-field.stderr
+++ b/src/test/ui/union/union-suggest-field.stderr
@@ -5,15 +5,15 @@ error[E0560]: union `U` has no field named `principle`
    |                 ^^^^^^^^^^ field does not exist - did you mean `principal`?
 
 error[E0609]: no field `principial` on type `U`
-  --> $DIR/union-suggest-field.rs:23:15
+  --> $DIR/union-suggest-field.rs:22:15
    |
-23 |     let w = u.principial; //~ ERROR no field `principial` on type `U`
+22 |     let w = u.principial; //~ ERROR no field `principial` on type `U`
    |               ^^^^^^^^^^ did you mean `principal`?
 
 error[E0615]: attempted to take value of method `calculate` on type `U`
-  --> $DIR/union-suggest-field.rs:26:15
+  --> $DIR/union-suggest-field.rs:25:15
    |
-26 |     let y = u.calculate; //~ ERROR attempted to take value of method `calculate` on type `U`
+25 |     let y = u.calculate; //~ ERROR attempted to take value of method `calculate` on type `U`
    |               ^^^^^^^^^
    |
    = help: maybe a `()` to call it is missing?
diff --git a/src/test/ui/unsafe-const-fn.rs b/src/test/ui/unsafe-const-fn.rs
index 91e16592be4..765e2059a4b 100644
--- a/src/test/ui/unsafe-const-fn.rs
+++ b/src/test/ui/unsafe-const-fn.rs
@@ -18,7 +18,6 @@ const unsafe fn dummy(v: u32) -> u32 {
 
 const VAL: u32 = dummy(0xFFFF);
 //~^ ERROR E0133
-//~| NOTE call to unsafe function
 
 fn main() {
     assert_eq!(VAL, 0xFFFF0000);
diff --git a/src/test/ui/use-mod.rs b/src/test/ui/use-mod.rs
index 485a75f0f91..2eb716959c1 100644
--- a/src/test/ui/use-mod.rs
+++ b/src/test/ui/use-mod.rs
@@ -11,13 +11,9 @@
 use foo::bar::{
     self,
 //~^ ERROR `self` import can only appear once in the list
-//~^^ NOTE previous import of the module `bar` here
     Bar,
     self
-//~^ NOTE another `self` import appears here
-//~| ERROR the name `bar` is defined multiple times
-//~| NOTE `bar` reimported here
-//~| NOTE `bar` must be defined only once in the type namespace of this module
+//~^ ERROR the name `bar` is defined multiple times
 };
 
 use {self};
diff --git a/src/test/ui/use-mod.stderr b/src/test/ui/use-mod.stderr
index ea2f8662c5c..abc7e2beb1a 100644
--- a/src/test/ui/use-mod.stderr
+++ b/src/test/ui/use-mod.stderr
@@ -5,30 +5,30 @@ error[E0430]: `self` import can only appear once in the list
    |     ^^^^
    |
 note: another `self` import appears here
-  --> $DIR/use-mod.rs:16:5
+  --> $DIR/use-mod.rs:15:5
    |
-16 |     self
+15 |     self
    |     ^^^^
 
 error[E0431]: `self` import can only appear in an import list with a non-empty prefix
-  --> $DIR/use-mod.rs:23:6
+  --> $DIR/use-mod.rs:19:6
    |
-23 | use {self};
+19 | use {self};
    |      ^^^^
 
 error[E0252]: the name `bar` is defined multiple times
-  --> $DIR/use-mod.rs:16:5
+  --> $DIR/use-mod.rs:15:5
    |
 12 |     self,
    |     ---- previous import of the module `bar` here
 ...
-16 |     self
+15 |     self
    |     ^^^^ `bar` reimported here
    |
    = note: `bar` must be defined only once in the type namespace of this module
 help: You can use `as` to change the binding name of the import
    |
-16 |     self as Otherbar
+15 |     self as Otherbar
    |
 
 error: aborting due to 3 previous errors
diff --git a/src/test/ui/variadic-ffi-3.rs b/src/test/ui/variadic-ffi-3.rs
index fb102027180..12beebc181b 100644
--- a/src/test/ui/variadic-ffi-3.rs
+++ b/src/test/ui/variadic-ffi-3.rs
@@ -19,21 +19,17 @@ extern "C" fn bar(f: isize, x: u8) {}
 fn main() {
     unsafe {
         foo(); //~ ERROR: this function takes at least 2 parameters but 0 parameters were supplied
-               //~| NOTE expected at least 2 parameters
         foo(1); //~ ERROR: this function takes at least 2 parameters but 1 parameter was supplied
-                //~| NOTE expected at least 2 parameters
 
         let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
         //~^ ERROR: mismatched types
         //~| expected type `unsafe extern "C" fn(isize, u8)`
         //~| found type `unsafe extern "C" fn(isize, u8, ...) {foo}`
-        //~| NOTE: expected non-variadic fn, found variadic function
 
         let y: extern "C" fn(f: isize, x: u8, ...) = bar;
         //~^ ERROR: mismatched types
         //~| expected type `extern "C" fn(isize, u8, ...)`
         //~| found type `extern "C" fn(isize, u8) {bar}`
-        //~| NOTE: expected variadic fn, found non-variadic function
 
         foo(1, 2, 3f32); //~ ERROR can't pass `f32` to variadic function, cast to `c_double`
         foo(1, 2, true); //~ ERROR can't pass `bool` to variadic function, cast to `c_int`
diff --git a/src/test/ui/variadic-ffi-3.stderr b/src/test/ui/variadic-ffi-3.stderr
index ebee6398274..44660d853f2 100644
--- a/src/test/ui/variadic-ffi-3.stderr
+++ b/src/test/ui/variadic-ffi-3.stderr
@@ -8,66 +8,66 @@ error[E0060]: this function takes at least 2 parameters but 0 parameters were su
    |         ^^^^^ expected at least 2 parameters
 
 error[E0060]: this function takes at least 2 parameters but 1 parameter was supplied
-  --> $DIR/variadic-ffi-3.rs:23:13
+  --> $DIR/variadic-ffi-3.rs:22:13
    |
 12 |     fn foo(f: isize, x: u8, ...);
    |     ----------------------------- defined here
 ...
-23 |         foo(1); //~ ERROR: this function takes at least 2 parameters but 1 parameter was supplied
+22 |         foo(1); //~ ERROR: this function takes at least 2 parameters but 1 parameter was supplied
    |             ^ expected at least 2 parameters
 
 error[E0308]: mismatched types
-  --> $DIR/variadic-ffi-3.rs:26:56
+  --> $DIR/variadic-ffi-3.rs:24:56
    |
-26 |         let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
+24 |         let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
    |                                                        ^^^ expected non-variadic fn, found variadic function
    |
    = note: expected type `unsafe extern "C" fn(isize, u8)`
               found type `unsafe extern "C" fn(isize, u8, ...) {foo}`
 
 error[E0308]: mismatched types
-  --> $DIR/variadic-ffi-3.rs:32:54
+  --> $DIR/variadic-ffi-3.rs:29:54
    |
-32 |         let y: extern "C" fn(f: isize, x: u8, ...) = bar;
+29 |         let y: extern "C" fn(f: isize, x: u8, ...) = bar;
    |                                                      ^^^ expected variadic fn, found non-variadic function
    |
    = note: expected type `extern "C" fn(isize, u8, ...)`
               found type `extern "C" fn(isize, u8) {bar}`
 
 error[E0617]: can't pass `f32` to variadic function, cast to `c_double`
-  --> $DIR/variadic-ffi-3.rs:38:19
+  --> $DIR/variadic-ffi-3.rs:34:19
    |
-38 |         foo(1, 2, 3f32); //~ ERROR can't pass `f32` to variadic function, cast to `c_double`
+34 |         foo(1, 2, 3f32); //~ ERROR can't pass `f32` to variadic function, cast to `c_double`
    |                   ^^^^
 
 error[E0617]: can't pass `bool` to variadic function, cast to `c_int`
-  --> $DIR/variadic-ffi-3.rs:39:19
+  --> $DIR/variadic-ffi-3.rs:35:19
    |
-39 |         foo(1, 2, true); //~ ERROR can't pass `bool` to variadic function, cast to `c_int`
+35 |         foo(1, 2, true); //~ ERROR can't pass `bool` to variadic function, cast to `c_int`
    |                   ^^^^
 
 error[E0617]: can't pass `i8` to variadic function, cast to `c_int`
-  --> $DIR/variadic-ffi-3.rs:40:19
+  --> $DIR/variadic-ffi-3.rs:36:19
    |
-40 |         foo(1, 2, 1i8); //~ ERROR can't pass `i8` to variadic function, cast to `c_int`
+36 |         foo(1, 2, 1i8); //~ ERROR can't pass `i8` to variadic function, cast to `c_int`
    |                   ^^^
 
 error[E0617]: can't pass `u8` to variadic function, cast to `c_uint`
-  --> $DIR/variadic-ffi-3.rs:41:19
+  --> $DIR/variadic-ffi-3.rs:37:19
    |
-41 |         foo(1, 2, 1u8); //~ ERROR can't pass `u8` to variadic function, cast to `c_uint`
+37 |         foo(1, 2, 1u8); //~ ERROR can't pass `u8` to variadic function, cast to `c_uint`
    |                   ^^^
 
 error[E0617]: can't pass `i16` to variadic function, cast to `c_int`
-  --> $DIR/variadic-ffi-3.rs:42:19
+  --> $DIR/variadic-ffi-3.rs:38:19
    |
-42 |         foo(1, 2, 1i16); //~ ERROR can't pass `i16` to variadic function, cast to `c_int`
+38 |         foo(1, 2, 1i16); //~ ERROR can't pass `i16` to variadic function, cast to `c_int`
    |                   ^^^^
 
 error[E0617]: can't pass `u16` to variadic function, cast to `c_uint`
-  --> $DIR/variadic-ffi-3.rs:43:19
+  --> $DIR/variadic-ffi-3.rs:39:19
    |
-43 |         foo(1, 2, 1u16); //~ ERROR can't pass `u16` to variadic function, cast to `c_uint`
+39 |         foo(1, 2, 1u16); //~ ERROR can't pass `u16` to variadic function, cast to `c_uint`
    |                   ^^^^
 
 error: aborting due to 10 previous errors
diff --git a/src/test/ui/variance-unused-type-param.rs b/src/test/ui/variance-unused-type-param.rs
index 862d842d62c..a5f6fd2fda1 100644
--- a/src/test/ui/variance-unused-type-param.rs
+++ b/src/test/ui/variance-unused-type-param.rs
@@ -15,16 +15,13 @@
 
 struct SomeStruct<A> { x: u32 }
 //~^ ERROR parameter `A` is never used
-//~| HELP PhantomData
 
 enum SomeEnum<A> { Nothing }
 //~^ ERROR parameter `A` is never used
-//~| HELP PhantomData
 
 // Here T might *appear* used, but in fact it isn't.
 enum ListCell<T> {
 //~^ ERROR parameter `T` is never used
-//~| HELP PhantomData
     Cons(Box<ListCell<T>>),
     Nil
 }
diff --git a/src/test/ui/variance-unused-type-param.stderr b/src/test/ui/variance-unused-type-param.stderr
index 4ff6ce78ac5..0b07ac38cb6 100644
--- a/src/test/ui/variance-unused-type-param.stderr
+++ b/src/test/ui/variance-unused-type-param.stderr
@@ -7,17 +7,17 @@ error[E0392]: parameter `A` is never used
    = help: consider removing `A` or using a marker such as `std::marker::PhantomData`
 
 error[E0392]: parameter `A` is never used
-  --> $DIR/variance-unused-type-param.rs:20:15
+  --> $DIR/variance-unused-type-param.rs:19:15
    |
-20 | enum SomeEnum<A> { Nothing }
+19 | enum SomeEnum<A> { Nothing }
    |               ^ unused type parameter
    |
    = help: consider removing `A` or using a marker such as `std::marker::PhantomData`
 
 error[E0392]: parameter `T` is never used
-  --> $DIR/variance-unused-type-param.rs:25:15
+  --> $DIR/variance-unused-type-param.rs:23:15
    |
-25 | enum ListCell<T> {
+23 | enum ListCell<T> {
    |               ^ unused type parameter
    |
    = help: consider removing `T` or using a marker such as `std::marker::PhantomData`
diff --git a/src/test/ui/vector-no-ann.rs b/src/test/ui/vector-no-ann.rs
index de229ded463..2143d2b64c6 100644
--- a/src/test/ui/vector-no-ann.rs
+++ b/src/test/ui/vector-no-ann.rs
@@ -12,6 +12,4 @@
 fn main() {
     let _foo = Vec::new();
     //~^ ERROR type annotations needed [E0282]
-    //~| NOTE cannot infer type for `T`
-    //~| NOTE consider giving `_foo` a type
 }