diff --git a/src/ci/docker/dist-various-1/install-x86_64-redox.sh b/src/ci/docker/dist-various-1/install-x86_64-redox.sh
index 339042bb6729a..dad9792233847 100755
--- a/src/ci/docker/dist-various-1/install-x86_64-redox.sh
+++ b/src/ci/docker/dist-various-1/install-x86_64-redox.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-# ignore-tidy-linelength
 
 set -ex
 
diff --git a/src/ci/docker/dist-various-2/build-fuchsia-toolchain.sh b/src/ci/docker/dist-various-2/build-fuchsia-toolchain.sh
index ef486075ff9d8..3b91918288a2b 100755
--- a/src/ci/docker/dist-various-2/build-fuchsia-toolchain.sh
+++ b/src/ci/docker/dist-various-2/build-fuchsia-toolchain.sh
@@ -1,7 +1,5 @@
 #!/usr/bin/env bash
 
-# ignore-tidy-linelength
-
 set -ex
 source shared.sh
 
diff --git a/src/test/codegen-units/item-collection/cross-crate-closures.rs b/src/test/codegen-units/item-collection/cross-crate-closures.rs
index bd04422c39f76..6af344fab1512 100644
--- a/src/test/codegen-units/item-collection/cross-crate-closures.rs
+++ b/src/test/codegen-units/item-collection/cross-crate-closures.rs
@@ -3,7 +3,6 @@
 // ignoring this test until MIR codegen has taken over completely
 // ignore-test
 
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/cross-crate-generic-functions.rs b/src/test/codegen-units/item-collection/cross-crate-generic-functions.rs
index cf7bde4a091d2..e1991046d4366 100644
--- a/src/test/codegen-units/item-collection/cross-crate-generic-functions.rs
+++ b/src/test/codegen-units/item-collection/cross-crate-generic-functions.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/cross-crate-trait-method.rs b/src/test/codegen-units/item-collection/cross-crate-trait-method.rs
index 8a19a7bd9f8fa..442438b64b66f 100644
--- a/src/test/codegen-units/item-collection/cross-crate-trait-method.rs
+++ b/src/test/codegen-units/item-collection/cross-crate-trait-method.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/function-as-argument.rs b/src/test/codegen-units/item-collection/function-as-argument.rs
index bdf6826f21aa8..3f61f124d2409 100644
--- a/src/test/codegen-units/item-collection/function-as-argument.rs
+++ b/src/test/codegen-units/item-collection/function-as-argument.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/generic-functions.rs b/src/test/codegen-units/item-collection/generic-functions.rs
index f879724c9a16c..8390970420482 100644
--- a/src/test/codegen-units/item-collection/generic-functions.rs
+++ b/src/test/codegen-units/item-collection/generic-functions.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/generic-impl.rs b/src/test/codegen-units/item-collection/generic-impl.rs
index 01b4e5301833e..571bb4fa867cb 100644
--- a/src/test/codegen-units/item-collection/generic-impl.rs
+++ b/src/test/codegen-units/item-collection/generic-impl.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/impl-in-non-instantiated-generic.rs b/src/test/codegen-units/item-collection/impl-in-non-instantiated-generic.rs
index 702ecba321e3e..e45644cd37562 100644
--- a/src/test/codegen-units/item-collection/impl-in-non-instantiated-generic.rs
+++ b/src/test/codegen-units/item-collection/impl-in-non-instantiated-generic.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/items-within-generic-items.rs b/src/test/codegen-units/item-collection/items-within-generic-items.rs
index 748b6094a2a40..10bc52f6a8d22 100644
--- a/src/test/codegen-units/item-collection/items-within-generic-items.rs
+++ b/src/test/codegen-units/item-collection/items-within-generic-items.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/non-generic-functions.rs b/src/test/codegen-units/item-collection/non-generic-functions.rs
index e147b54fdaf08..26d2fb1b42194 100644
--- a/src/test/codegen-units/item-collection/non-generic-functions.rs
+++ b/src/test/codegen-units/item-collection/non-generic-functions.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/overloaded-operators.rs b/src/test/codegen-units/item-collection/overloaded-operators.rs
index db91486012ddf..2358d38942a71 100644
--- a/src/test/codegen-units/item-collection/overloaded-operators.rs
+++ b/src/test/codegen-units/item-collection/overloaded-operators.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/static-init.rs b/src/test/codegen-units/item-collection/static-init.rs
index 397bccc4bf834..f6005eed43c7d 100644
--- a/src/test/codegen-units/item-collection/static-init.rs
+++ b/src/test/codegen-units/item-collection/static-init.rs
@@ -1,5 +1,4 @@
 // compile-flags:-Zprint-mono-items=eager
-// ignore-tidy-linelength
 
 #![feature(start)]
 
diff --git a/src/test/codegen-units/item-collection/statics-and-consts.rs b/src/test/codegen-units/item-collection/statics-and-consts.rs
index db2d83aeefabd..7e28ba58b63fa 100644
--- a/src/test/codegen-units/item-collection/statics-and-consts.rs
+++ b/src/test/codegen-units/item-collection/statics-and-consts.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/trait-implementations.rs b/src/test/codegen-units/item-collection/trait-implementations.rs
index 004198a624ef6..f090c0c8d130a 100644
--- a/src/test/codegen-units/item-collection/trait-implementations.rs
+++ b/src/test/codegen-units/item-collection/trait-implementations.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/trait-method-as-argument.rs b/src/test/codegen-units/item-collection/trait-method-as-argument.rs
index cab4a70913422..27ace8e31add3 100644
--- a/src/test/codegen-units/item-collection/trait-method-as-argument.rs
+++ b/src/test/codegen-units/item-collection/trait-method-as-argument.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/trait-method-default-impl.rs b/src/test/codegen-units/item-collection/trait-method-default-impl.rs
index ba99d430acc62..11f6cc62d49e3 100644
--- a/src/test/codegen-units/item-collection/trait-method-default-impl.rs
+++ b/src/test/codegen-units/item-collection/trait-method-default-impl.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/unreferenced-const-fn.rs b/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
index 5fae72f711d75..ec6be0ecf43ef 100644
--- a/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
+++ b/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=lazy
 
 #![deny(dead_code)]
diff --git a/src/test/codegen-units/item-collection/unreferenced-inline-function.rs b/src/test/codegen-units/item-collection/unreferenced-inline-function.rs
index 4c8d1215c0425..4d095e4d6c7e9 100644
--- a/src/test/codegen-units/item-collection/unreferenced-inline-function.rs
+++ b/src/test/codegen-units/item-collection/unreferenced-inline-function.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=lazy
 
 // N.B., we do not expect *any* monomorphization to be generated here.
diff --git a/src/test/codegen-units/item-collection/unsizing.rs b/src/test/codegen-units/item-collection/unsizing.rs
index 6b2acab7f7b73..fd794df37608b 100644
--- a/src/test/codegen-units/item-collection/unsizing.rs
+++ b/src/test/codegen-units/item-collection/unsizing.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 // compile-flags:-Zinline-in-all-cgus
 
diff --git a/src/test/codegen-units/item-collection/unused-traits-and-generics.rs b/src/test/codegen-units/item-collection/unused-traits-and-generics.rs
index 598efdbdad1bc..4a5e294ea0f4a 100644
--- a/src/test/codegen-units/item-collection/unused-traits-and-generics.rs
+++ b/src/test/codegen-units/item-collection/unused-traits-and-generics.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags:-Zprint-mono-items=eager
 
 #![crate_type="lib"]
diff --git a/src/test/codegen-units/partitioning/statics.rs b/src/test/codegen-units/partitioning/statics.rs
index 40483318795b1..bbded480b0c15 100644
--- a/src/test/codegen-units/partitioning/statics.rs
+++ b/src/test/codegen-units/partitioning/statics.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // We specify -Z incremental here because we want to test the partitioning for
 // incremental compilation
 // compile-flags:-Zprint-mono-items=lazy -Zincremental=tmp/partitioning-tests/statics
diff --git a/src/test/codegen/adjustments.rs b/src/test/codegen/adjustments.rs
index b8398f6ac8421..ae2ff9994fdf0 100644
--- a/src/test/codegen/adjustments.rs
+++ b/src/test/codegen/adjustments.rs
@@ -1,5 +1,4 @@
 // compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
 
 #![crate_type = "lib"]
 
diff --git a/src/test/codegen/enum-debug-niche.rs b/src/test/codegen/enum-debug-niche.rs
index 93eebde7b8f42..2272488375fdd 100644
--- a/src/test/codegen/enum-debug-niche.rs
+++ b/src/test/codegen/enum-debug-niche.rs
@@ -2,7 +2,6 @@
 // before 7.0, then backported to the Rust LLVM fork.  It tests that
 // optimized enum debug info accurately reflects the enum layout.
 
-// ignore-tidy-linelength
 // ignore-windows
 // min-system-llvm-version 8.0
 
diff --git a/src/test/codegen/enum-debug-tagged.rs b/src/test/codegen/enum-debug-tagged.rs
index 84976ce97af4b..3539aae42eae7 100644
--- a/src/test/codegen/enum-debug-tagged.rs
+++ b/src/test/codegen/enum-debug-tagged.rs
@@ -2,7 +2,6 @@
 // before 7.0, then backported to the Rust LLVM fork.  It tests that
 // debug info for tagged (ordinary) enums is properly emitted.
 
-// ignore-tidy-linelength
 // ignore-windows
 // min-system-llvm-version 8.0
 
diff --git a/src/test/codegen/generic-debug.rs b/src/test/codegen/generic-debug.rs
index 0bee2a1a8689f..eea16805c5968 100644
--- a/src/test/codegen/generic-debug.rs
+++ b/src/test/codegen/generic-debug.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // ignore-windows
 
 // compile-flags: -g -C no-prepopulate-passes
diff --git a/src/test/codegen/mainsubprogram.rs b/src/test/codegen/mainsubprogram.rs
index d886cb88004cb..7f1b0e17f871e 100644
--- a/src/test/codegen/mainsubprogram.rs
+++ b/src/test/codegen/mainsubprogram.rs
@@ -1,7 +1,6 @@
 // This test depends on a patch that was committed to upstream LLVM
 // before 4.0, formerly backported to the Rust LLVM fork.
 
-// ignore-tidy-linelength
 // ignore-windows
 // ignore-macos
 
diff --git a/src/test/codegen/mainsubprogramstart.rs b/src/test/codegen/mainsubprogramstart.rs
index d91f91ee7ab68..b03290af0e3b7 100644
--- a/src/test/codegen/mainsubprogramstart.rs
+++ b/src/test/codegen/mainsubprogramstart.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // ignore-windows
 // ignore-macos
 
diff --git a/src/test/codegen/noreturn-uninhabited.rs b/src/test/codegen/noreturn-uninhabited.rs
index 1b65da9f2877a..49f93cf62c754 100644
--- a/src/test/codegen/noreturn-uninhabited.rs
+++ b/src/test/codegen/noreturn-uninhabited.rs
@@ -1,5 +1,4 @@
 // compile-flags: -g -C no-prepopulate-passes
-// ignore-tidy-linelength
 
 #![crate_type = "lib"]
 
diff --git a/src/test/codegen/noreturnflag.rs b/src/test/codegen/noreturnflag.rs
index fc288eb0cf1e2..95c100571ce6e 100644
--- a/src/test/codegen/noreturnflag.rs
+++ b/src/test/codegen/noreturnflag.rs
@@ -1,5 +1,4 @@
 // compile-flags: -g -C no-prepopulate-passes
-// ignore-tidy-linelength
 
 #![crate_type = "lib"]
 
diff --git a/src/test/codegen/panic-abort-windows.rs b/src/test/codegen/panic-abort-windows.rs
index e2d942e869992..bbe0d81de3d42 100644
--- a/src/test/codegen/panic-abort-windows.rs
+++ b/src/test/codegen/panic-abort-windows.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // This test is for *-windows-msvc only.
 // ignore-android
 // ignore-bitrig
diff --git a/src/test/codegen/refs.rs b/src/test/codegen/refs.rs
index 9583730e9dd5b..cbb9942347673 100644
--- a/src/test/codegen/refs.rs
+++ b/src/test/codegen/refs.rs
@@ -1,5 +1,4 @@
 // compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
 
 #![crate_type = "lib"]
 
diff --git a/src/test/codegen/remap_path_prefix/xcrate-generic.rs b/src/test/codegen/remap_path_prefix/xcrate-generic.rs
index 70d29577b2f2c..30d6112fd02f6 100644
--- a/src/test/codegen/remap_path_prefix/xcrate-generic.rs
+++ b/src/test/codegen/remap_path_prefix/xcrate-generic.rs
@@ -1,5 +1,4 @@
 // ignore-windows
-// ignore-tidy-linelength
 // compile-flags: -g -C metadata=foo -C no-prepopulate-passes
 // aux-build:xcrate-generic.rs
 
diff --git a/src/test/codegen/vtabletype.rs b/src/test/codegen/vtabletype.rs
index 70b97a67bbcfd..82d65b101b06d 100644
--- a/src/test/codegen/vtabletype.rs
+++ b/src/test/codegen/vtabletype.rs
@@ -1,7 +1,6 @@
 // This test depends on a patch that was committed to upstream LLVM
 // after 5.0, then backported to the Rust LLVM fork.
 
-// ignore-tidy-linelength
 // ignore-windows
 // ignore-macos
 
diff --git a/src/test/debuginfo/enum-thinlto.rs b/src/test/debuginfo/enum-thinlto.rs
index 7f15ed90e67b3..13577b0587ff0 100644
--- a/src/test/debuginfo/enum-thinlto.rs
+++ b/src/test/debuginfo/enum-thinlto.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // Require LLVM with DW_TAG_variant_part and a gdb that can read it.
 // min-system-llvm-version: 8.0
 // min-gdb-version: 8.2
diff --git a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
index e26294cb730a0..72d38a6f04544 100644
--- a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
+++ b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // ignore-lldb: FIXME(#27089)
 // min-lldb-version: 310
 
diff --git a/src/test/debuginfo/recursive-struct.rs b/src/test/debuginfo/recursive-struct.rs
index 8fb83b7956be3..4f75ef4fa9b9a 100644
--- a/src/test/debuginfo/recursive-struct.rs
+++ b/src/test/debuginfo/recursive-struct.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // ignore-lldb
 
 // Require LLVM with DW_TAG_variant_part and a gdb that can read it.
diff --git a/src/test/debuginfo/unique-enum.rs b/src/test/debuginfo/unique-enum.rs
index 32bd93f1ed2ce..c440ce059f721 100644
--- a/src/test/debuginfo/unique-enum.rs
+++ b/src/test/debuginfo/unique-enum.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // Require LLVM with DW_TAG_variant_part and a gdb and lldb that can
 // read it.
 // min-system-llvm-version: 8.0
diff --git a/src/test/incremental/remapped_paths_cc/auxiliary/extern_crate.rs b/src/test/incremental/remapped_paths_cc/auxiliary/extern_crate.rs
index 52e7f4bd7c782..627b99445ea81 100644
--- a/src/test/incremental/remapped_paths_cc/auxiliary/extern_crate.rs
+++ b/src/test/incremental/remapped_paths_cc/auxiliary/extern_crate.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 //[rpass1] compile-flags: -g
 //[rpass2] compile-flags: -g
 //[rpass3] compile-flags: -g --remap-path-prefix={{src-base}}=/the/src
diff --git a/src/test/mir-opt/basic_assignment.rs b/src/test/mir-opt/basic_assignment.rs
index c771013f72814..ca0e9fa811a26 100644
--- a/src/test/mir-opt/basic_assignment.rs
+++ b/src/test/mir-opt/basic_assignment.rs
@@ -5,8 +5,6 @@
 // so subtle breakage in them can leave a quite hard-to-find trail of
 // destruction.
 
-// ignore-tidy-linelength
-
 fn main() {
     let nodrop_x = false;
     let nodrop_y;
diff --git a/src/test/mir-opt/nll/named-lifetimes-basic.rs b/src/test/mir-opt/nll/named-lifetimes-basic.rs
index 4833ba19554b9..2a6c2db03bec1 100644
--- a/src/test/mir-opt/nll/named-lifetimes-basic.rs
+++ b/src/test/mir-opt/nll/named-lifetimes-basic.rs
@@ -5,7 +5,6 @@
 
 // compile-flags:-Zborrowck=mir -Zverbose
 //                              ^^^^^^^^^ force compiler to dump more region information
-// ignore-tidy-linelength
 
 #![allow(warnings)]
 
diff --git a/src/test/mir-opt/storage_ranges.rs b/src/test/mir-opt/storage_ranges.rs
index 9a22f57116ed8..c099b1dccb668 100644
--- a/src/test/mir-opt/storage_ranges.rs
+++ b/src/test/mir-opt/storage_ranges.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 fn main() {
     let a = 0;
     {
diff --git a/src/test/run-pass/issues/issue-16278.rs b/src/test/run-pass/issues/issue-16278.rs
index ad9af8473defe..2f47b694ae912 100644
--- a/src/test/run-pass/issues/issue-16278.rs
+++ b/src/test/run-pass/issues/issue-16278.rs
@@ -3,8 +3,8 @@
 
 // this file has some special \r\n endings (use xxd to see them)
 
-fn main() {assert_eq!(b"", b"\
+fn main() {assert_eq!(b"", b"\
                                    ");
-assert_eq!(b"\n", b"
+assert_eq!(b"\n", b"
 ");
 }
diff --git a/src/test/rustdoc-ui/intra-link-span-ice-55723.rs b/src/test/rustdoc-ui/intra-link-span-ice-55723.rs
index 5891a553e3255..c7a13bbf606cb 100644
--- a/src/test/rustdoc-ui/intra-link-span-ice-55723.rs
+++ b/src/test/rustdoc-ui/intra-link-span-ice-55723.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-end-whitespace
-
 #![deny(intra_doc_link_resolution_failure)]
 
 // An error in calculating spans while reporting intra-doc link resolution errors caused rustdoc to
diff --git a/src/test/rustdoc-ui/intra-link-span-ice-55723.stderr b/src/test/rustdoc-ui/intra-link-span-ice-55723.stderr
index 7ee9ca4792395..79702a1a546b7 100644
--- a/src/test/rustdoc-ui/intra-link-span-ice-55723.stderr
+++ b/src/test/rustdoc-ui/intra-link-span-ice-55723.stderr
@@ -1,11 +1,11 @@
 error: `[i]` cannot be resolved, ignoring it...
-  --> $DIR/intra-link-span-ice-55723.rs:11:10
+  --> $DIR/intra-link-span-ice-55723.rs:9:10
    |
 LL | /// (arr[i])
    |           ^ cannot be resolved, ignoring
    |
 note: lint level defined here
-  --> $DIR/intra-link-span-ice-55723.rs:3:9
+  --> $DIR/intra-link-span-ice-55723.rs:1:9
    |
 LL | #![deny(intra_doc_link_resolution_failure)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/rustdoc/empty-mod-private.rs b/src/test/rustdoc/empty-mod-private.rs
index 12576a1b535f7..c2a98049a48cb 100644
--- a/src/test/rustdoc/empty-mod-private.rs
+++ b/src/test/rustdoc/empty-mod-private.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags: --document-private-items
 
 // @has 'empty_mod_private/index.html' '//a[@href="foo/index.html"]' 'foo'
diff --git a/src/test/rustdoc/extern-html-root-url.rs b/src/test/rustdoc/extern-html-root-url.rs
index 674d0305f2eae..60b7b28ae4acf 100644
--- a/src/test/rustdoc/extern-html-root-url.rs
+++ b/src/test/rustdoc/extern-html-root-url.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // compile-flags:-Z unstable-options --extern-html-root-url core=https://example.com/core/0.1.0
 
 // @has extern_html_root_url/index.html
diff --git a/src/test/rustdoc/method-list.rs b/src/test/rustdoc/method-list.rs
index f84be3eb3f718..9f24e817fd3eb 100644
--- a/src/test/rustdoc/method-list.rs
+++ b/src/test/rustdoc/method-list.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![crate_name = "foo"]
 
 // @has foo/struct.Foo.html
diff --git a/src/test/rustdoc/pub-method.rs b/src/test/rustdoc/pub-method.rs
index 01e5141fe2584..8e88b2b59015d 100644
--- a/src/test/rustdoc/pub-method.rs
+++ b/src/test/rustdoc/pub-method.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // compile-flags: --document-private-items
 
 #![crate_name = "foo"]
diff --git a/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr b/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
index 8370aad6f3046..40786c032b180 100644
--- a/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
+++ b/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
@@ -1,5 +1,5 @@
 error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
-  --> $DIR/two-phase-activation-sharing-interference.rs:32:15
+  --> $DIR/two-phase-activation-sharing-interference.rs:30:15
    |
 LL |     let y = &mut x;
    |             ------ mutable borrow occurs here
@@ -10,7 +10,7 @@ LL |     *y += 1;
    |     ------- mutable borrow later used here
 
 error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
-  --> $DIR/two-phase-activation-sharing-interference.rs:40:13
+  --> $DIR/two-phase-activation-sharing-interference.rs:38:13
    |
 LL |     let y = &mut x;
    |             ------ mutable borrow occurs here
@@ -21,7 +21,7 @@ LL |     *y += 1;
    |     ------- mutable borrow later used here
 
 error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
-  --> $DIR/two-phase-activation-sharing-interference.rs:51:13
+  --> $DIR/two-phase-activation-sharing-interference.rs:49:13
    |
 LL |     let y = &mut x;
    |             ------ mutable borrow occurs here
@@ -32,7 +32,7 @@ LL |     *y += 1;
    |     ------- mutable borrow later used here
 
 error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
-  --> $DIR/two-phase-activation-sharing-interference.rs:62:14
+  --> $DIR/two-phase-activation-sharing-interference.rs:60:14
    |
 LL |     let y = &mut x;
    |             ------ mutable borrow occurs here
diff --git a/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs b/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs
index 55a8ae7a49ef3..4d77ac915b1e7 100644
--- a/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs
+++ b/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // revisions: nll_target
 
 // The following revisions are disabled due to missing support from two-phase beyond autorefs
diff --git a/src/test/ui/consts/const-array-oob.rs b/src/test/ui/consts/const-array-oob.rs
index 39ef45175f9e3..1174a76adabcb 100644
--- a/src/test/ui/consts/const-array-oob.rs
+++ b/src/test/ui/consts/const-array-oob.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(const_indexing)]
 
 const FOO: [usize; 3] = [1, 2, 3];
diff --git a/src/test/ui/consts/const-array-oob.stderr b/src/test/ui/consts/const-array-oob.stderr
index 2d9a4fd0dea27..f25cac5cddd47 100644
--- a/src/test/ui/consts/const-array-oob.stderr
+++ b/src/test/ui/consts/const-array-oob.stderr
@@ -1,5 +1,5 @@
 error[E0080]: evaluation of constant value failed
-  --> $DIR/const-array-oob.rs:8:19
+  --> $DIR/const-array-oob.rs:6:19
    |
 LL | const BLUB: [u32; FOO[4]] = [5, 6];
    |                   ^^^^^^ index out of bounds: the len is 3 but the index is 4
diff --git a/src/test/ui/deprecation/deprecation-in-future.rs b/src/test/ui/deprecation/deprecation-in-future.rs
index 138d902621cbc..c4f9fdce74907 100644
--- a/src/test/ui/deprecation/deprecation-in-future.rs
+++ b/src/test/ui/deprecation/deprecation-in-future.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // run-pass
 
 #![deny(deprecated_in_future)]
diff --git a/src/test/ui/deprecation/deprecation-in-future.stderr b/src/test/ui/deprecation/deprecation-in-future.stderr
index 81d2461c1bd83..2284cfa8d685b 100644
--- a/src/test/ui/deprecation/deprecation-in-future.stderr
+++ b/src/test/ui/deprecation/deprecation-in-future.stderr
@@ -1,5 +1,5 @@
 warning: use of deprecated item 'deprecated_future': text
-  --> $DIR/deprecation-in-future.rs:11:5
+  --> $DIR/deprecation-in-future.rs:9:5
    |
 LL |     deprecated_future(); // ok; deprecated_in_future only applies to rustc_deprecated
    |     ^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/derives/deriving-meta-unknown-trait.rs b/src/test/ui/derives/deriving-meta-unknown-trait.rs
index 2b29f10150b96..f4a6f3fd62a05 100644
--- a/src/test/ui/derives/deriving-meta-unknown-trait.rs
+++ b/src/test/ui/derives/deriving-meta-unknown-trait.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #[derive(Eqr)]
 //~^ ERROR cannot find derive macro `Eqr` in this scope
 struct Foo;
diff --git a/src/test/ui/derives/deriving-meta-unknown-trait.stderr b/src/test/ui/derives/deriving-meta-unknown-trait.stderr
index 2b121ac679ae0..cf0173dfad5cd 100644
--- a/src/test/ui/derives/deriving-meta-unknown-trait.stderr
+++ b/src/test/ui/derives/deriving-meta-unknown-trait.stderr
@@ -1,5 +1,5 @@
 error: cannot find derive macro `Eqr` in this scope
-  --> $DIR/deriving-meta-unknown-trait.rs:3:10
+  --> $DIR/deriving-meta-unknown-trait.rs:1:10
    |
 LL | #[derive(Eqr)]
    |          ^^^ help: try: `Eq`
diff --git a/src/test/ui/discrim/discrim-overflow-2.rs b/src/test/ui/discrim/discrim-overflow-2.rs
index 9ff39cd048454..f8f565f4d9c14 100644
--- a/src/test/ui/discrim/discrim-overflow-2.rs
+++ b/src/test/ui/discrim/discrim-overflow-2.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // Issue 23030: Detect overflowing discriminant
 //
 // Check that we detect the overflow even if enum is not used.
diff --git a/src/test/ui/discrim/discrim-overflow-2.stderr b/src/test/ui/discrim/discrim-overflow-2.stderr
index 744324d1f0ff5..198ebe9eb51f9 100644
--- a/src/test/ui/discrim/discrim-overflow-2.stderr
+++ b/src/test/ui/discrim/discrim-overflow-2.stderr
@@ -1,5 +1,5 @@
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:17:9
+  --> $DIR/discrim-overflow-2.rs:15:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 127
@@ -7,7 +7,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -128` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:26:9
+  --> $DIR/discrim-overflow-2.rs:24:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 255
@@ -15,7 +15,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:35:9
+  --> $DIR/discrim-overflow-2.rs:33:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 32767
@@ -23,7 +23,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -32768` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:44:9
+  --> $DIR/discrim-overflow-2.rs:42:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 65535
@@ -31,7 +31,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:53:9
+  --> $DIR/discrim-overflow-2.rs:51:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 2147483647
@@ -39,7 +39,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -2147483648` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:62:9
+  --> $DIR/discrim-overflow-2.rs:60:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 4294967295
@@ -47,7 +47,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:71:9
+  --> $DIR/discrim-overflow-2.rs:69:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 9223372036854775807
@@ -55,7 +55,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow-2.rs:80:9
+  --> $DIR/discrim-overflow-2.rs:78:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 18446744073709551615
diff --git a/src/test/ui/discrim/discrim-overflow.rs b/src/test/ui/discrim/discrim-overflow.rs
index c612661178cf6..d8a9dacfa5180 100644
--- a/src/test/ui/discrim/discrim-overflow.rs
+++ b/src/test/ui/discrim/discrim-overflow.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 // Issue 23030: Detect overflowing discriminant
 
 // See also run-pass/discrim-explicit-23030.rs where the suggested
diff --git a/src/test/ui/discrim/discrim-overflow.stderr b/src/test/ui/discrim/discrim-overflow.stderr
index c831fdfe1a34d..a2ae4863f9f79 100644
--- a/src/test/ui/discrim/discrim-overflow.stderr
+++ b/src/test/ui/discrim/discrim-overflow.stderr
@@ -1,5 +1,5 @@
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:15:9
+  --> $DIR/discrim-overflow.rs:13:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 127
@@ -7,7 +7,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -128` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:26:9
+  --> $DIR/discrim-overflow.rs:24:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 255
@@ -15,7 +15,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:37:9
+  --> $DIR/discrim-overflow.rs:35:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 32767
@@ -23,7 +23,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -32768` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:48:9
+  --> $DIR/discrim-overflow.rs:46:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 65535
@@ -31,7 +31,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:60:9
+  --> $DIR/discrim-overflow.rs:58:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 2147483647
@@ -39,7 +39,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -2147483648` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:72:9
+  --> $DIR/discrim-overflow.rs:70:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 4294967295
@@ -47,7 +47,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = 0` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:84:9
+  --> $DIR/discrim-overflow.rs:82:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 9223372036854775807
@@ -55,7 +55,7 @@ LL |         OhNo,
    = note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome
 
 error[E0370]: enum discriminant overflowed
-  --> $DIR/discrim-overflow.rs:96:9
+  --> $DIR/discrim-overflow.rs:94:9
    |
 LL |         OhNo,
    |         ^^^^ overflowed on value after 18446744073709551615
diff --git a/src/test/ui/editions/edition-raw-pointer-method-2015.rs b/src/test/ui/editions/edition-raw-pointer-method-2015.rs
index a538bca75f67d..3631415fc5f98 100644
--- a/src/test/ui/editions/edition-raw-pointer-method-2015.rs
+++ b/src/test/ui/editions/edition-raw-pointer-method-2015.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // edition:2015
 
 // tests that editions work with the tyvar warning-turned-error
diff --git a/src/test/ui/editions/edition-raw-pointer-method-2015.stderr b/src/test/ui/editions/edition-raw-pointer-method-2015.stderr
index deea6a71b24f3..508d5df2a7160 100644
--- a/src/test/ui/editions/edition-raw-pointer-method-2015.stderr
+++ b/src/test/ui/editions/edition-raw-pointer-method-2015.stderr
@@ -1,11 +1,11 @@
 error: type annotations needed
-  --> $DIR/edition-raw-pointer-method-2015.rs:10:15
+  --> $DIR/edition-raw-pointer-method-2015.rs:9:15
    |
 LL |     let _ = y.is_null();
    |               ^^^^^^^
    |
 note: lint level defined here
-  --> $DIR/edition-raw-pointer-method-2015.rs:6:8
+  --> $DIR/edition-raw-pointer-method-2015.rs:5:8
    |
 LL | #[deny(warnings)]
    |        ^^^^^^^^
diff --git a/src/test/ui/editions/edition-raw-pointer-method-2018.rs b/src/test/ui/editions/edition-raw-pointer-method-2018.rs
index eabab5e4739ab..af0b2d6bd4aa6 100644
--- a/src/test/ui/editions/edition-raw-pointer-method-2018.rs
+++ b/src/test/ui/editions/edition-raw-pointer-method-2018.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 // edition:2018
 
 // tests that editions work with the tyvar warning-turned-error
diff --git a/src/test/ui/editions/edition-raw-pointer-method-2018.stderr b/src/test/ui/editions/edition-raw-pointer-method-2018.stderr
index 03e7f3a9449d6..23452495b4bc6 100644
--- a/src/test/ui/editions/edition-raw-pointer-method-2018.stderr
+++ b/src/test/ui/editions/edition-raw-pointer-method-2018.stderr
@@ -1,5 +1,5 @@
 error[E0699]: the type of this value must be known to call a method on a raw pointer on it
-  --> $DIR/edition-raw-pointer-method-2018.rs:10:15
+  --> $DIR/edition-raw-pointer-method-2018.rs:9:15
    |
 LL |     let _ = y.is_null();
    |               ^^^^^^^
diff --git a/src/test/ui/error-codes/E0375.rs b/src/test/ui/error-codes/E0375.rs
index 362854a53aa63..0c03a8761df01 100644
--- a/src/test/ui/error-codes/E0375.rs
+++ b/src/test/ui/error-codes/E0375.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(coerce_unsized)]
 use std::ops::CoerceUnsized;
 
diff --git a/src/test/ui/error-codes/E0375.stderr b/src/test/ui/error-codes/E0375.stderr
index 18416e9b7d8b9..a68b3af5aaf76 100644
--- a/src/test/ui/error-codes/E0375.stderr
+++ b/src/test/ui/error-codes/E0375.stderr
@@ -1,5 +1,5 @@
 error[E0375]: implementing the trait `CoerceUnsized` requires multiple coercions
-  --> $DIR/E0375.rs:12:12
+  --> $DIR/E0375.rs:10:12
    |
 LL | impl<T, U> CoerceUnsized<Foo<U, T>> for Foo<T, U> {}
    |            ^^^^^^^^^^^^^^^^^^^^^^^^ requires multiple coercions
diff --git a/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.rs b/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.rs
index 2ea60029492af..d118b7f4ff2b2 100644
--- a/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.rs
+++ b/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 #![crate_type = "lib"]
 
 extern {
diff --git a/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.stderr b/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.stderr
index c28d45df7cd41..72e414eab9248 100644
--- a/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.stderr
+++ b/src/test/ui/feature-gates/feature-gate-ffi_returns_twice.stderr
@@ -1,5 +1,5 @@
 error[E0658]: the `#[ffi_returns_twice]` attribute is an experimental feature
-  --> $DIR/feature-gate-ffi_returns_twice.rs:5:5
+  --> $DIR/feature-gate-ffi_returns_twice.rs:4:5
    |
 LL |     #[ffi_returns_twice]
    |     ^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/ffi_returns_twice.rs b/src/test/ui/ffi_returns_twice.rs
index 93c372e1d83dc..845e18df11b54 100644
--- a/src/test/ui/ffi_returns_twice.rs
+++ b/src/test/ui/ffi_returns_twice.rs
@@ -1,4 +1,3 @@
-// ignore-tidy-linelength
 #![feature(ffi_returns_twice)]
 #![crate_type = "lib"]
 
diff --git a/src/test/ui/ffi_returns_twice.stderr b/src/test/ui/ffi_returns_twice.stderr
index e51d3d8c146b4..862892e27be98 100644
--- a/src/test/ui/ffi_returns_twice.stderr
+++ b/src/test/ui/ffi_returns_twice.stderr
@@ -1,5 +1,5 @@
 error[E0724]: `#[ffi_returns_twice]` may only be used on foreign functions
-  --> $DIR/ffi_returns_twice.rs:5:1
+  --> $DIR/ffi_returns_twice.rs:4:1
    |
 LL | #[ffi_returns_twice]
    | ^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/impl-trait/auto-trait-leak.rs b/src/test/ui/impl-trait/auto-trait-leak.rs
index ea0be0b346cbe..1c601bc3c34ea 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.rs
+++ b/src/test/ui/impl-trait/auto-trait-leak.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 use std::cell::Cell;
 use std::rc::Rc;
 
diff --git a/src/test/ui/impl-trait/auto-trait-leak.stderr b/src/test/ui/impl-trait/auto-trait-leak.stderr
index de0043eee8fd7..61450d3203cd8 100644
--- a/src/test/ui/impl-trait/auto-trait-leak.stderr
+++ b/src/test/ui/impl-trait/auto-trait-leak.stderr
@@ -1,29 +1,29 @@
 error[E0391]: cycle detected when processing `cycle1::{{opaque}}#0`
-  --> $DIR/auto-trait-leak.rs:14:16
+  --> $DIR/auto-trait-leak.rs:12:16
    |
 LL | fn cycle1() -> impl Clone {
    |                ^^^^^^^^^^
    |
 note: ...which requires processing `cycle1`...
-  --> $DIR/auto-trait-leak.rs:14:1
+  --> $DIR/auto-trait-leak.rs:12:1
    |
 LL | fn cycle1() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`...
 note: ...which requires processing `cycle2::{{opaque}}#0`...
-  --> $DIR/auto-trait-leak.rs:23:16
+  --> $DIR/auto-trait-leak.rs:21:16
    |
 LL | fn cycle2() -> impl Clone {
    |                ^^^^^^^^^^
 note: ...which requires processing `cycle2`...
-  --> $DIR/auto-trait-leak.rs:23:1
+  --> $DIR/auto-trait-leak.rs:21:1
    |
 LL | fn cycle2() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`...
    = note: ...which again requires processing `cycle1::{{opaque}}#0`, completing the cycle
 note: cycle used when checking item types in top-level module
-  --> $DIR/auto-trait-leak.rs:3:1
+  --> $DIR/auto-trait-leak.rs:1:1
    |
 LL | / use std::cell::Cell;
 LL | | use std::rc::Rc;
@@ -35,30 +35,30 @@ LL | | }
    | |_^
 
 error[E0391]: cycle detected when processing `cycle1::{{opaque}}#0`
-  --> $DIR/auto-trait-leak.rs:14:16
+  --> $DIR/auto-trait-leak.rs:12:16
    |
 LL | fn cycle1() -> impl Clone {
    |                ^^^^^^^^^^
    |
 note: ...which requires processing `cycle1`...
-  --> $DIR/auto-trait-leak.rs:14:1
+  --> $DIR/auto-trait-leak.rs:12:1
    |
 LL | fn cycle1() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`...
 note: ...which requires processing `cycle2::{{opaque}}#0`...
-  --> $DIR/auto-trait-leak.rs:23:16
+  --> $DIR/auto-trait-leak.rs:21:16
    |
 LL | fn cycle2() -> impl Clone {
    |                ^^^^^^^^^^
 note: ...which requires processing `cycle2`...
-  --> $DIR/auto-trait-leak.rs:23:1
+  --> $DIR/auto-trait-leak.rs:21:1
    |
 LL | fn cycle2() -> impl Clone {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which again requires processing `cycle1::{{opaque}}#0`, completing the cycle
 note: cycle used when checking item types in top-level module
-  --> $DIR/auto-trait-leak.rs:3:1
+  --> $DIR/auto-trait-leak.rs:1:1
    |
 LL | / use std::cell::Cell;
 LL | | use std::rc::Rc;
@@ -70,7 +70,7 @@ LL | | }
    | |_^
 
 error[E0277]: `std::rc::Rc<std::string::String>` cannot be sent between threads safely
-  --> $DIR/auto-trait-leak.rs:17:5
+  --> $DIR/auto-trait-leak.rs:15:5
    |
 LL |     send(cycle2().clone());
    |     ^^^^ `std::rc::Rc<std::string::String>` cannot be sent between threads safely
@@ -78,7 +78,7 @@ LL |     send(cycle2().clone());
    = help: within `impl std::clone::Clone`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::string::String>`
    = note: required because it appears within the type `impl std::clone::Clone`
 note: required by `send`
-  --> $DIR/auto-trait-leak.rs:6:1
+  --> $DIR/auto-trait-leak.rs:4:1
    |
 LL | fn send<T: Send>(_: T) {}
    | ^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/impl-trait/auto-trait-leak2.rs b/src/test/ui/impl-trait/auto-trait-leak2.rs
index e529b4757ed1e..fb4b54051237c 100644
--- a/src/test/ui/impl-trait/auto-trait-leak2.rs
+++ b/src/test/ui/impl-trait/auto-trait-leak2.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 use std::cell::Cell;
 use std::rc::Rc;
 
diff --git a/src/test/ui/impl-trait/auto-trait-leak2.stderr b/src/test/ui/impl-trait/auto-trait-leak2.stderr
index 4e427d3d6b388..19899ff83f7c3 100644
--- a/src/test/ui/impl-trait/auto-trait-leak2.stderr
+++ b/src/test/ui/impl-trait/auto-trait-leak2.stderr
@@ -1,29 +1,29 @@
 error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
-  --> $DIR/auto-trait-leak2.rs:15:5
+  --> $DIR/auto-trait-leak2.rs:13:5
    |
 LL |     send(before());
    |     ^^^^ `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-leak2.rs:9:5: 9:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
+   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:7:5: 7: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`
-  --> $DIR/auto-trait-leak2.rs:12:1
+  --> $DIR/auto-trait-leak2.rs:10:1
    |
 LL | fn send<T: Send>(_: T) {}
    | ^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
-  --> $DIR/auto-trait-leak2.rs:18:5
+  --> $DIR/auto-trait-leak2.rs:16:5
    |
 LL |     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-leak2.rs:26:5: 26:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
+   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:24:5: 24: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`
-  --> $DIR/auto-trait-leak2.rs:12:1
+  --> $DIR/auto-trait-leak2.rs:10:1
    |
 LL | fn send<T: Send>(_: T) {}
    | ^^^^^^^^^^^^^^^^^^^^^^
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 32f3517167349..c5c966a959ae9 100644
--- a/src/test/ui/impl-trait/method-suggestion-no-duplication.rs
+++ b/src/test/ui/impl-trait/method-suggestion-no-duplication.rs
@@ -1,6 +1,4 @@
 // issue #21405
-// ignore-tidy-linelength
-
 struct Foo;
 
 fn foo<F>(f: F) where F: FnMut(Foo) {}
diff --git a/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr b/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
index 8da1ce41a0f94..afb3376638a96 100644
--- a/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
+++ b/src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
@@ -1,5 +1,5 @@
 error[E0599]: no method named `is_empty` found for type `Foo` in the current scope
-  --> $DIR/method-suggestion-no-duplication.rs:9:15
+  --> $DIR/method-suggestion-no-duplication.rs:7:15
    |
 LL | struct Foo;
    | ----------- method `is_empty` not found for this
diff --git a/src/test/ui/invalid-module-declaration/invalid-module-declaration.rs b/src/test/ui/invalid-module-declaration/invalid-module-declaration.rs
index 3b1cd9fbdc80e..254d810d79dbc 100644
--- a/src/test/ui/invalid-module-declaration/invalid-module-declaration.rs
+++ b/src/test/ui/invalid-module-declaration/invalid-module-declaration.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 mod auxiliary {
     mod foo;
 }
diff --git a/src/test/ui/issues/issue-21950.rs b/src/test/ui/issues/issue-21950.rs
index 0f78b37fedba3..b902893bf8224 100644
--- a/src/test/ui/issues/issue-21950.rs
+++ b/src/test/ui/issues/issue-21950.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 use std::ops::Add;
 
 fn main() {
diff --git a/src/test/ui/issues/issue-21950.stderr b/src/test/ui/issues/issue-21950.stderr
index d40893b942376..7655e0811e066 100644
--- a/src/test/ui/issues/issue-21950.stderr
+++ b/src/test/ui/issues/issue-21950.stderr
@@ -1,5 +1,5 @@
 error[E0393]: the type parameter `Rhs` must be explicitly specified
-  --> $DIR/issue-21950.rs:7:14
+  --> $DIR/issue-21950.rs:5:14
    |
 LL |             &Add;
    |              ^^^ missing reference to `Rhs`
@@ -7,7 +7,7 @@ LL |             &Add;
    = note: because of the default `Self` reference, type parameters must be specified on object types
 
 error[E0191]: the value of the associated type `Output` (from the trait `std::ops::Add`) must be specified
-  --> $DIR/issue-21950.rs:7:14
+  --> $DIR/issue-21950.rs:5:14
    |
 LL |             &Add;
    |              ^^^ associated type `Output` must be specified
diff --git a/src/test/ui/issues/issue-22370.rs b/src/test/ui/issues/issue-22370.rs
index 44eef2da83ce3..90912cfda0d4e 100644
--- a/src/test/ui/issues/issue-22370.rs
+++ b/src/test/ui/issues/issue-22370.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 trait A<T=Self> {}
 
 fn f(a: &A) {}
diff --git a/src/test/ui/issues/issue-22370.stderr b/src/test/ui/issues/issue-22370.stderr
index 5d76d84d11e6f..f21551a55bc9a 100644
--- a/src/test/ui/issues/issue-22370.stderr
+++ b/src/test/ui/issues/issue-22370.stderr
@@ -1,5 +1,5 @@
 error[E0393]: the type parameter `T` must be explicitly specified
-  --> $DIR/issue-22370.rs:5:10
+  --> $DIR/issue-22370.rs:3:10
    |
 LL | fn f(a: &A) {}
    |          ^ missing reference to `T`
diff --git a/src/test/ui/issues/issue-22560.rs b/src/test/ui/issues/issue-22560.rs
index d91211e556b11..4b8e3aa9eb3e1 100644
--- a/src/test/ui/issues/issue-22560.rs
+++ b/src/test/ui/issues/issue-22560.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 use std::ops::{Add, Sub};
 
 type Test = Add +
diff --git a/src/test/ui/issues/issue-22560.stderr b/src/test/ui/issues/issue-22560.stderr
index a0ad1fd1279d7..5a056dff590fe 100644
--- a/src/test/ui/issues/issue-22560.stderr
+++ b/src/test/ui/issues/issue-22560.stderr
@@ -1,5 +1,5 @@
 error[E0393]: the type parameter `Rhs` must be explicitly specified
-  --> $DIR/issue-22560.rs:5:13
+  --> $DIR/issue-22560.rs:3:13
    |
 LL | type Test = Add +
    |             ^^^ missing reference to `Rhs`
@@ -7,7 +7,7 @@ LL | type Test = Add +
    = 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:8:13
+  --> $DIR/issue-22560.rs:6:13
    |
 LL |             Sub;
    |             ^^^ missing reference to `Rhs`
@@ -15,13 +15,13 @@ LL |             Sub;
    = 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:8:13
+  --> $DIR/issue-22560.rs:6:13
    |
 LL |             Sub;
    |             ^^^ non-auto additional trait
 
 error[E0191]: the value of the associated type `Output` (from the trait `std::ops::Add`) must be specified
-  --> $DIR/issue-22560.rs:5:13
+  --> $DIR/issue-22560.rs:3:13
    |
 LL |   type Test = Add +
    |  _____________^
diff --git a/src/test/ui/issues/issue-23080-2.rs b/src/test/ui/issues/issue-23080-2.rs
index 750b7e19d89df..319aa2a5cce9e 100644
--- a/src/test/ui/issues/issue-23080-2.rs
+++ b/src/test/ui/issues/issue-23080-2.rs
@@ -1,6 +1,4 @@
-// ignore-tidy-linelength
-
-//~^^ ERROR
+//~ ERROR
 
 #![feature(optin_builtin_traits)]
 
diff --git a/src/test/ui/issues/issue-23080-2.stderr b/src/test/ui/issues/issue-23080-2.stderr
index 4179ca37a54cb..1103de0d91043 100644
--- a/src/test/ui/issues/issue-23080-2.stderr
+++ b/src/test/ui/issues/issue-23080-2.stderr
@@ -1,5 +1,5 @@
 error[E0380]: auto traits cannot have methods or associated items
-  --> $DIR/issue-23080-2.rs:7:1
+  --> $DIR/issue-23080-2.rs:5:1
    |
 LL | / unsafe auto trait Trait {
 LL | |
diff --git a/src/test/ui/issues/issue-23080.rs b/src/test/ui/issues/issue-23080.rs
index e25a2d916f5f2..fdfee6981447d 100644
--- a/src/test/ui/issues/issue-23080.rs
+++ b/src/test/ui/issues/issue-23080.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(optin_builtin_traits)]
 
 unsafe auto trait Trait {
diff --git a/src/test/ui/issues/issue-23080.stderr b/src/test/ui/issues/issue-23080.stderr
index ed843e793beeb..91c2721732426 100644
--- a/src/test/ui/issues/issue-23080.stderr
+++ b/src/test/ui/issues/issue-23080.stderr
@@ -1,5 +1,5 @@
 error[E0380]: auto traits cannot have methods or associated items
-  --> $DIR/issue-23080.rs:5:1
+  --> $DIR/issue-23080.rs:3:1
    |
 LL | / unsafe auto trait Trait {
 LL | |
diff --git a/src/test/ui/issues/issue-23281.rs b/src/test/ui/issues/issue-23281.rs
index 98a0495451d04..2b457a57d3ede 100644
--- a/src/test/ui/issues/issue-23281.rs
+++ b/src/test/ui/issues/issue-23281.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 pub struct Struct;
 
 impl Struct {
diff --git a/src/test/ui/issues/issue-23281.stderr b/src/test/ui/issues/issue-23281.stderr
index 1e57774afe55a..e540d4e819242 100644
--- a/src/test/ui/issues/issue-23281.stderr
+++ b/src/test/ui/issues/issue-23281.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the size for values of type `(dyn std::ops::Fn() + 'static)` cannot be known at compilation time
-  --> $DIR/issue-23281.rs:6:5
+  --> $DIR/issue-23281.rs:4:5
    |
 LL |     pub fn function(funs: Vec<Fn() -> ()>) {}
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
diff --git a/src/test/ui/issues/issue-59488.rs b/src/test/ui/issues/issue-59488.rs
index e0a37f6adcc3b..6fa9961f26cc8 100644
--- a/src/test/ui/issues/issue-59488.rs
+++ b/src/test/ui/issues/issue-59488.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 fn foo() -> i32 {
     42
 }
diff --git a/src/test/ui/issues/issue-59488.stderr b/src/test/ui/issues/issue-59488.stderr
index e8f0f7bbebf86..e0cb1f7b96df8 100644
--- a/src/test/ui/issues/issue-59488.stderr
+++ b/src/test/ui/issues/issue-59488.stderr
@@ -1,5 +1,5 @@
 error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}`
-  --> $DIR/issue-59488.rs:16:9
+  --> $DIR/issue-59488.rs:14:9
    |
 LL |     foo > 12;
    |     --- ^ -- {integer}
@@ -8,7 +8,7 @@ LL |     foo > 12;
    |     help: you might have forgotten to call this function: `foo()`
 
 error[E0308]: mismatched types
-  --> $DIR/issue-59488.rs:16:11
+  --> $DIR/issue-59488.rs:14:11
    |
 LL |     foo > 12;
    |           ^^ expected fn item, found integer
@@ -17,7 +17,7 @@ LL |     foo > 12;
               found type `i32`
 
 error[E0369]: binary operation `>` cannot be applied to type `fn(i64) -> i64 {bar}`
-  --> $DIR/issue-59488.rs:20:9
+  --> $DIR/issue-59488.rs:18:9
    |
 LL |     bar > 13;
    |     --- ^ -- {integer}
@@ -26,7 +26,7 @@ LL |     bar > 13;
    |     help: you might have forgotten to call this function: `bar( /* arguments */ )`
 
 error[E0308]: mismatched types
-  --> $DIR/issue-59488.rs:20:11
+  --> $DIR/issue-59488.rs:18:11
    |
 LL |     bar > 13;
    |           ^^ expected fn item, found integer
@@ -35,7 +35,7 @@ LL |     bar > 13;
               found type `i64`
 
 error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}`
-  --> $DIR/issue-59488.rs:24:9
+  --> $DIR/issue-59488.rs:22:9
    |
 LL |     foo > foo;
    |     --- ^ --- fn() -> i32 {foo}
@@ -51,7 +51,7 @@ LL |     foo > foo();
    |           ^^^^^
 
 error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}`
-  --> $DIR/issue-59488.rs:27:9
+  --> $DIR/issue-59488.rs:25:9
    |
 LL |     foo > bar;
    |     --- ^ --- fn(i64) -> i64 {bar}
@@ -61,7 +61,7 @@ LL |     foo > bar;
    = note: an implementation of `std::cmp::PartialOrd` might be missing for `fn() -> i32 {foo}`
 
 error[E0308]: mismatched types
-  --> $DIR/issue-59488.rs:27:11
+  --> $DIR/issue-59488.rs:25:11
    |
 LL |     foo > bar;
    |           ^^^ expected fn item, found a different fn item
@@ -70,7 +70,7 @@ LL |     foo > bar;
               found type `fn(i64) -> i64 {bar}`
 
 error[E0369]: binary operation `==` cannot be applied to type `fn(usize) -> Foo {Foo::Bar}`
-  --> $DIR/issue-59488.rs:32:5
+  --> $DIR/issue-59488.rs:30:5
    |
 LL |     assert_eq!(Foo::Bar, i);
    |     ^^^^^^^^^^^^^^^^^^^^^^^^
@@ -82,7 +82,7 @@ LL |     assert_eq!(Foo::Bar, i);
    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
 
 error[E0277]: `fn(usize) -> Foo {Foo::Bar}` doesn't implement `std::fmt::Debug`
-  --> $DIR/issue-59488.rs:32:5
+  --> $DIR/issue-59488.rs:30:5
    |
 LL |     assert_eq!(Foo::Bar, i);
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ `fn(usize) -> Foo {Foo::Bar}` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
@@ -93,7 +93,7 @@ LL |     assert_eq!(Foo::Bar, i);
    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
 
 error[E0277]: `fn(usize) -> Foo {Foo::Bar}` doesn't implement `std::fmt::Debug`
-  --> $DIR/issue-59488.rs:32:5
+  --> $DIR/issue-59488.rs:30:5
    |
 LL |     assert_eq!(Foo::Bar, i);
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ `fn(usize) -> Foo {Foo::Bar}` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
diff --git a/src/test/ui/lint/lint-incoherent-auto-trait-objects.rs b/src/test/ui/lint/lint-incoherent-auto-trait-objects.rs
index 0d18965ee7338..d53b514476025 100644
--- a/src/test/ui/lint/lint-incoherent-auto-trait-objects.rs
+++ b/src/test/ui/lint/lint-incoherent-auto-trait-objects.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 trait Foo {}
 
 impl Foo for dyn Send {}
diff --git a/src/test/ui/lint/lint-incoherent-auto-trait-objects.stderr b/src/test/ui/lint/lint-incoherent-auto-trait-objects.stderr
index 928c92ef91655..448cc953d40ad 100644
--- a/src/test/ui/lint/lint-incoherent-auto-trait-objects.stderr
+++ b/src/test/ui/lint/lint-incoherent-auto-trait-objects.stderr
@@ -1,5 +1,5 @@
 error: conflicting implementations of trait `Foo` for type `(dyn std::marker::Send + 'static)`: (E0119)
-  --> $DIR/lint-incoherent-auto-trait-objects.rs:7:1
+  --> $DIR/lint-incoherent-auto-trait-objects.rs:5:1
    |
 LL | impl Foo for dyn Send {}
    | --------------------- first implementation here
@@ -12,7 +12,7 @@ LL | impl Foo for dyn Send + Send {}
    = note: for more information, see issue #56484 <https://github.com/rust-lang/rust/issues/56484>
 
 error: conflicting implementations of trait `Foo` for type `(dyn std::marker::Send + std::marker::Sync + 'static)`: (E0119)
-  --> $DIR/lint-incoherent-auto-trait-objects.rs:13:1
+  --> $DIR/lint-incoherent-auto-trait-objects.rs:11:1
    |
 LL | impl Foo for dyn Send + Sync {}
    | ---------------------------- first implementation here
@@ -24,7 +24,7 @@ LL | impl Foo for dyn Sync + Send {}
    = note: for more information, see issue #56484 <https://github.com/rust-lang/rust/issues/56484>
 
 error: conflicting implementations of trait `Foo` for type `(dyn std::marker::Send + std::marker::Sync + 'static)`: (E0119)
-  --> $DIR/lint-incoherent-auto-trait-objects.rs:17:1
+  --> $DIR/lint-incoherent-auto-trait-objects.rs:15:1
    |
 LL | impl Foo for dyn Sync + Send {}
    | ---------------------------- first implementation here
diff --git a/src/test/ui/moves/moves-based-on-type-block-bad.rs b/src/test/ui/moves/moves-based-on-type-block-bad.rs
index 99928caa926a4..516325ce1d797 100644
--- a/src/test/ui/moves/moves-based-on-type-block-bad.rs
+++ b/src/test/ui/moves/moves-based-on-type-block-bad.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(box_patterns)]
 #![feature(box_syntax)]
 
diff --git a/src/test/ui/moves/moves-based-on-type-block-bad.stderr b/src/test/ui/moves/moves-based-on-type-block-bad.stderr
index b83a15c9d4dac..e28b22035f5d4 100644
--- a/src/test/ui/moves/moves-based-on-type-block-bad.stderr
+++ b/src/test/ui/moves/moves-based-on-type-block-bad.stderr
@@ -1,5 +1,5 @@
 error[E0507]: cannot move out of borrowed content
-  --> $DIR/moves-based-on-type-block-bad.rs:24:19
+  --> $DIR/moves-based-on-type-block-bad.rs:22:19
    |
 LL |             match hellothere.x {
    |                   ^^^^^^^^^^^^
@@ -11,7 +11,7 @@ LL |                 box E::Bar(x) => println!("{}", x.to_string()),
    |                            - data moved here
    |
 note: move occurs because `x` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
-  --> $DIR/moves-based-on-type-block-bad.rs:27:28
+  --> $DIR/moves-based-on-type-block-bad.rs:25:28
    |
 LL |                 box E::Bar(x) => println!("{}", x.to_string()),
    |                            ^
diff --git a/src/test/ui/on-unimplemented/auxiliary/no_debug.rs b/src/test/ui/on-unimplemented/auxiliary/no_debug.rs
index f240d0e1f1fab..fd3dc0abdc8fc 100644
--- a/src/test/ui/on-unimplemented/auxiliary/no_debug.rs
+++ b/src/test/ui/on-unimplemented/auxiliary/no_debug.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![crate_type = "lib"]
 
 pub struct Bar;
diff --git a/src/test/ui/on-unimplemented/slice-index.rs b/src/test/ui/on-unimplemented/slice-index.rs
index b5e18e2397e00..758220d3c4ecd 100644
--- a/src/test/ui/on-unimplemented/slice-index.rs
+++ b/src/test/ui/on-unimplemented/slice-index.rs
@@ -1,7 +1,4 @@
 // Test new Index error message for slices
-// ignore-tidy-linelength
-
-
 
 use std::ops::Index;
 
diff --git a/src/test/ui/on-unimplemented/slice-index.stderr b/src/test/ui/on-unimplemented/slice-index.stderr
index c1d884929a0c1..25a65460071da 100644
--- a/src/test/ui/on-unimplemented/slice-index.stderr
+++ b/src/test/ui/on-unimplemented/slice-index.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the type `[i32]` cannot be indexed by `i32`
-  --> $DIR/slice-index.rs:11:5
+  --> $DIR/slice-index.rs:8:5
    |
 LL |     x[1i32];
    |     ^^^^^^^ slice indices are of type `usize` or ranges of `usize`
@@ -8,7 +8,7 @@ LL |     x[1i32];
    = note: required because of the requirements on the impl of `std::ops::Index<i32>` for `[i32]`
 
 error[E0277]: the type `[i32]` cannot be indexed by `std::ops::RangeTo<i32>`
-  --> $DIR/slice-index.rs:12:5
+  --> $DIR/slice-index.rs:9:5
    |
 LL |     x[..1i32];
    |     ^^^^^^^^^ slice indices are of type `usize` or ranges of `usize`
diff --git a/src/test/ui/parser/byte-string-literals.rs b/src/test/ui/parser/byte-string-literals.rs
index d028f28655b8e..8d8ee4da98717 100644
--- a/src/test/ui/parser/byte-string-literals.rs
+++ b/src/test/ui/parser/byte-string-literals.rs
@@ -1,8 +1,5 @@
 // compile-flags: -Z continue-parse-after-error
 
-
-// ignore-tidy-tab
-
 static FOO: &'static [u8] = b"\f";  //~ ERROR unknown byte escape
 
 pub fn main() {
diff --git a/src/test/ui/parser/byte-string-literals.stderr b/src/test/ui/parser/byte-string-literals.stderr
index 6701cfd8e66c2..b855484444010 100644
--- a/src/test/ui/parser/byte-string-literals.stderr
+++ b/src/test/ui/parser/byte-string-literals.stderr
@@ -1,29 +1,29 @@
 error: unknown byte escape: f
-  --> $DIR/byte-string-literals.rs:6:32
+  --> $DIR/byte-string-literals.rs:3:32
    |
 LL | static FOO: &'static [u8] = b"\f";
    |                                ^ unknown byte escape
 
 error: unknown byte escape: f
-  --> $DIR/byte-string-literals.rs:9:8
+  --> $DIR/byte-string-literals.rs:6:8
    |
 LL |     b"\f";
    |        ^ unknown byte escape
 
 error: invalid character in numeric character escape: Z
-  --> $DIR/byte-string-literals.rs:10:10
+  --> $DIR/byte-string-literals.rs:7:10
    |
 LL |     b"\x0Z";
    |          ^
 
 error: byte constant must be ASCII. Use a \xHH escape for a non-ASCII byte
-  --> $DIR/byte-string-literals.rs:11:7
+  --> $DIR/byte-string-literals.rs:8:7
    |
 LL |     b"é";
    |       ^
 
 error: unterminated double quote byte string
-  --> $DIR/byte-string-literals.rs:12:7
+  --> $DIR/byte-string-literals.rs:9:7
    |
 LL |       b"a
    |  _______^
diff --git a/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.rs b/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.rs
index 9e81ee4616951..5297d0d9842e2 100644
--- a/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.rs
+++ b/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 /*
  * We don't infer `T: 'static` outlives relationships by default.
  * Instead an additional feature gate `infer_static_outlives_requirements`
diff --git a/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.stderr b/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.stderr
index 26cbeeaf5acde..b049d8a4ab3c3 100644
--- a/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.stderr
+++ b/src/test/ui/rfc-2093-infer-outlives/dont-infer-static.stderr
@@ -1,5 +1,5 @@
 error[E0310]: the parameter type `U` may not live long enough
-  --> $DIR/dont-infer-static.rs:10:5
+  --> $DIR/dont-infer-static.rs:8:5
    |
 LL | struct Foo<U> {
    |            - help: consider adding an explicit lifetime bound `U: 'static`...
@@ -7,7 +7,7 @@ LL |     bar: Bar<U>
    |     ^^^^^^^^^^^
    |
 note: ...so that the type `U` will meet its required lifetime bounds
-  --> $DIR/dont-infer-static.rs:10:5
+  --> $DIR/dont-infer-static.rs:8:5
    |
 LL |     bar: Bar<U>
    |     ^^^^^^^^^^^
diff --git a/src/test/ui/rfc-2093-infer-outlives/enum.rs b/src/test/ui/rfc-2093-infer-outlives/enum.rs
index 622794ea9ac3b..71d2d32226556 100644
--- a/src/test/ui/rfc-2093-infer-outlives/enum.rs
+++ b/src/test/ui/rfc-2093-infer-outlives/enum.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(rustc_attrs)]
 
 // Needs an explicit where clause stating outlives condition. (RFC 2093)
diff --git a/src/test/ui/rfc-2093-infer-outlives/enum.stderr b/src/test/ui/rfc-2093-infer-outlives/enum.stderr
index e81d10a66dff3..dd56c1f79c712 100644
--- a/src/test/ui/rfc-2093-infer-outlives/enum.stderr
+++ b/src/test/ui/rfc-2093-infer-outlives/enum.stderr
@@ -1,5 +1,5 @@
 error: rustc_outlives
-  --> $DIR/enum.rs:9:1
+  --> $DIR/enum.rs:7:1
    |
 LL | / enum Foo<'a, T> {
 LL | |     One(Bar<'a, T>)
@@ -9,7 +9,7 @@ LL | | }
    = note: T : 'a
 
 error: rustc_outlives
-  --> $DIR/enum.rs:15:1
+  --> $DIR/enum.rs:13:1
    |
 LL | / struct Bar<'b, U> {
 LL | |     field2: &'b U
@@ -19,7 +19,7 @@ LL | | }
    = note: U : 'b
 
 error: rustc_outlives
-  --> $DIR/enum.rs:21:1
+  --> $DIR/enum.rs:19:1
    |
 LL | / enum Ying<'c, K> {
 LL | |     One(&'c Yang<K>)
diff --git a/src/test/ui/span/issue-24356.rs b/src/test/ui/span/issue-24356.rs
index 7696bd54226da..7ec05aab29a71 100644
--- a/src/test/ui/span/issue-24356.rs
+++ b/src/test/ui/span/issue-24356.rs
@@ -1,7 +1,5 @@
 // Regression test for #24356
 
-// ignore-tidy-linelength
-
 fn main() {
     {
         use std::ops::Deref;
diff --git a/src/test/ui/span/issue-24356.stderr b/src/test/ui/span/issue-24356.stderr
index 102cc4201e2ec..4827e9ddd50fd 100644
--- a/src/test/ui/span/issue-24356.stderr
+++ b/src/test/ui/span/issue-24356.stderr
@@ -1,5 +1,5 @@
 error[E0046]: not all trait items implemented, missing: `Target`
-  --> $DIR/issue-24356.rs:20:9
+  --> $DIR/issue-24356.rs:18:9
    |
 LL |         impl Deref for Thing {
    |         ^^^^^^^^^^^^^^^^^^^^ missing `Target` in implementation
diff --git a/src/test/ui/span/issue-7575.rs b/src/test/ui/span/issue-7575.rs
index c33398cd39cab..ea0a66540b931 100644
--- a/src/test/ui/span/issue-7575.rs
+++ b/src/test/ui/span/issue-7575.rs
@@ -1,6 +1,4 @@
 // Test the mechanism for warning about possible missing `self` declarations.
-// ignore-tidy-linelength
-
 trait CtxtFn {
     fn f8(self, _: usize) -> usize;
     fn f9(_: usize) -> usize;
diff --git a/src/test/ui/span/issue-7575.stderr b/src/test/ui/span/issue-7575.stderr
index b2c9e505f07b6..614638752f166 100644
--- a/src/test/ui/span/issue-7575.stderr
+++ b/src/test/ui/span/issue-7575.stderr
@@ -1,24 +1,24 @@
 error[E0599]: no method named `f9` found for type `usize` in the current scope
-  --> $DIR/issue-7575.rs:64:18
+  --> $DIR/issue-7575.rs:62:18
    |
 LL |     u.f8(42) + u.f9(342) + m.fff(42)
    |                  ^^ this is an associated function, not a method
    |
    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
 note: candidate #1 is defined in the trait `CtxtFn`
-  --> $DIR/issue-7575.rs:6:5
+  --> $DIR/issue-7575.rs:4:5
    |
 LL |     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:10:5
+  --> $DIR/issue-7575.rs:8:5
    |
 LL |     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:19:5
+  --> $DIR/issue-7575.rs:17:5
    |
 LL |     fn f9(_: usize) -> usize;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -30,7 +30,7 @@ LL |     fn f9(_: usize) -> usize;
            candidate #3: `UnusedTrait`
 
 error[E0599]: no method named `fff` found for type `Myisize` in the current scope
-  --> $DIR/issue-7575.rs:64:30
+  --> $DIR/issue-7575.rs:62:30
    |
 LL | struct Myisize(isize);
    | ---------------------- method `fff` not found for this
@@ -43,20 +43,20 @@ LL |     u.f8(42) + u.f9(342) + m.fff(42)
    |
    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
 note: the candidate is defined in an impl for the type `Myisize`
-  --> $DIR/issue-7575.rs:41:5
+  --> $DIR/issue-7575.rs:39:5
    |
 LL |     fn fff(i: isize) -> isize {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0599]: no method named `is_str` found for type `T` in the current scope
-  --> $DIR/issue-7575.rs:72:7
+  --> $DIR/issue-7575.rs:70:7
    |
 LL |     t.is_str()
    |       ^^^^^^ this is an associated function, not a method
    |
    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
 note: the candidate is defined in the trait `ManyImplTrait`
-  --> $DIR/issue-7575.rs:47:5
+  --> $DIR/issue-7575.rs:45:5
    |
 LL |     fn is_str() -> bool {
    |     ^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/stability-attribute/stability-attribute-issue.rs b/src/test/ui/stability-attribute/stability-attribute-issue.rs
index ca4d7cc6a6ccf..cda1aff133f94 100644
--- a/src/test/ui/stability-attribute/stability-attribute-issue.rs
+++ b/src/test/ui/stability-attribute/stability-attribute-issue.rs
@@ -1,6 +1,4 @@
 // aux-build:stability_attribute_issue.rs
-// ignore-tidy-linelength
-
 #![deny(deprecated)]
 
 extern crate stability_attribute_issue;
diff --git a/src/test/ui/stability-attribute/stability-attribute-issue.stderr b/src/test/ui/stability-attribute/stability-attribute-issue.stderr
index 36e192e583e62..7e6fbe1600d1e 100644
--- a/src/test/ui/stability-attribute/stability-attribute-issue.stderr
+++ b/src/test/ui/stability-attribute/stability-attribute-issue.stderr
@@ -1,5 +1,5 @@
 error[E0658]: use of unstable library feature 'unstable_test_feature'
-  --> $DIR/stability-attribute-issue.rs:10:5
+  --> $DIR/stability-attribute-issue.rs:8:5
    |
 LL |     unstable();
    |     ^^^^^^^^
@@ -8,7 +8,7 @@ LL |     unstable();
    = help: add #![feature(unstable_test_feature)] to the crate attributes to enable
 
 error[E0658]: use of unstable library feature 'unstable_test_feature': message
-  --> $DIR/stability-attribute-issue.rs:12:5
+  --> $DIR/stability-attribute-issue.rs:10:5
    |
 LL |     unstable_msg();
    |     ^^^^^^^^^^^^
diff --git a/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.rs b/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.rs
index f31dac27caec4..e4487fb110cf1 100644
--- a/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.rs
+++ b/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.rs
@@ -1,5 +1,3 @@
-// ignore-tidy-linelength
-
 #![feature(optin_builtin_traits)]
 
 struct Managed;
diff --git a/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.stderr b/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.stderr
index 5330c04074b2f..4d435bf4e8b24 100644
--- a/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.stderr
+++ b/src/test/ui/typeck/typeck-default-trait-impl-negation-sync.stderr
@@ -1,18 +1,18 @@
 error[E0277]: `MyNotSync` cannot be shared between threads safely
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:35:5
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:33:5
    |
 LL |     is_sync::<MyNotSync>();
    |     ^^^^^^^^^^^^^^^^^^^^ `MyNotSync` cannot be shared between threads safely
    |
    = help: the trait `std::marker::Sync` is not implemented for `MyNotSync`
 note: required by `is_sync`
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:31:1
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:29:1
    |
 LL | fn is_sync<T: Sync>() {}
    | ^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `std::cell::UnsafeCell<u8>` cannot be shared between threads safely
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:38:5
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:36:5
    |
 LL |     is_sync::<MyTypeWUnsafe>();
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<u8>` cannot be shared between threads safely
@@ -20,13 +20,13 @@ LL |     is_sync::<MyTypeWUnsafe>();
    = help: within `MyTypeWUnsafe`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<u8>`
    = note: required because it appears within the type `MyTypeWUnsafe`
 note: required by `is_sync`
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:31:1
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:29:1
    |
 LL | fn is_sync<T: Sync>() {}
    | ^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `Managed` cannot be shared between threads safely
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:41:5
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:39:5
    |
 LL |     is_sync::<MyTypeManaged>();
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ `Managed` cannot be shared between threads safely
@@ -34,7 +34,7 @@ LL |     is_sync::<MyTypeManaged>();
    = help: within `MyTypeManaged`, the trait `std::marker::Sync` is not implemented for `Managed`
    = note: required because it appears within the type `MyTypeManaged`
 note: required by `is_sync`
-  --> $DIR/typeck-default-trait-impl-negation-sync.rs:31:1
+  --> $DIR/typeck-default-trait-impl-negation-sync.rs:29:1
    |
 LL | fn is_sync<T: Sync>() {}
    | ^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/tools/tidy/src/style.rs b/src/tools/tidy/src/style.rs
index fb2bfb13a7478..9ab88d6e9aeac 100644
--- a/src/tools/tidy/src/style.rs
+++ b/src/tools/tidy/src/style.rs
@@ -9,8 +9,8 @@
 //! * No `TODO` or `XXX` directives.
 //! * No unexplained ` ```ignore ` or ` ```rust,ignore ` doc tests.
 //!
-//! A number of these checks can be opted-out of with various directives like
-//! `// ignore-tidy-linelength`.
+//! A number of these checks can be opted-out of with various directives of the form:
+//! `// ignore-tidy-CHECK-NAME`.
 
 use std::fs::File;
 use std::io::prelude::*;
@@ -90,6 +90,36 @@ fn long_line_is_ok(line: &str) -> bool {
     false
 }
 
+enum Directive {
+    /// By default, tidy always warns against style issues.
+    Deny,
+
+    /// `Ignore(false)` means that an `ignore-tidy-*` directive
+    /// has been provided, but is unnecessary. `Ignore(true)`
+    /// means that it is necessary (i.e. a warning would be
+    /// produced if `ignore-tidy-*` was not present).
+    Ignore(bool),
+}
+
+fn contains_ignore_directive(contents: &String, check: &str) -> Directive {
+    if contents.contains(&format!("// ignore-tidy-{}", check)) ||
+        contents.contains(&format!("# ignore-tidy-{}", check)) {
+        Directive::Ignore(false)
+    } else {
+        Directive::Deny
+    }
+}
+
+macro_rules! suppressible_tidy_err {
+    ($err:ident, $skip:ident, $msg:expr) => {
+        if let Directive::Deny = $skip {
+            $err($msg);
+        } else {
+            $skip = Directive::Ignore(true);
+        }
+    };
+}
+
 pub fn check(path: &Path, bad: &mut bool) {
     let mut contents = String::new();
     super::walk(path, &mut super::filter_dirs, &mut |file| {
@@ -107,29 +137,32 @@ pub fn check(path: &Path, bad: &mut bool) {
             tidy_error!(bad, "{}: empty file", file.display());
         }
 
-        let skip_cr = contents.contains("ignore-tidy-cr");
-        let skip_tab = contents.contains("ignore-tidy-tab");
-        let skip_length = contents.contains("ignore-tidy-linelength");
-        let skip_end_whitespace = contents.contains("ignore-tidy-end-whitespace");
-        let skip_copyright = contents.contains("ignore-tidy-copyright");
+        let mut skip_cr = contains_ignore_directive(&contents, "cr");
+        let mut skip_tab = contains_ignore_directive(&contents, "tab");
+        let mut skip_length = contains_ignore_directive(&contents, "linelength");
+        let mut skip_end_whitespace = contains_ignore_directive(&contents, "end-whitespace");
+        let mut skip_copyright = contains_ignore_directive(&contents, "copyright");
         let mut leading_new_lines = false;
         let mut trailing_new_lines = 0;
         for (i, line) in contents.split('\n').enumerate() {
             let mut err = |msg: &str| {
                 tidy_error!(bad, "{}:{}: {}", file.display(), i + 1, msg);
             };
-            if !skip_length && line.chars().count() > COLS
-                && !long_line_is_ok(line) {
-                    err(&format!("line longer than {} chars", COLS));
+            if line.chars().count() > COLS && !long_line_is_ok(line) {
+                suppressible_tidy_err!(
+                    err,
+                    skip_length,
+                    &format!("line longer than {} chars", COLS)
+                );
             }
-            if !skip_tab && line.contains('\t') {
-                err("tab character");
+            if line.contains('\t') {
+                suppressible_tidy_err!(err, skip_tab, "tab character");
             }
-            if !skip_end_whitespace && (line.ends_with(' ') || line.ends_with('\t')) {
-                err("trailing whitespace");
+            if line.ends_with(' ') || line.ends_with('\t') {
+                suppressible_tidy_err!(err, skip_end_whitespace, "trailing whitespace");
             }
-            if !skip_cr && line.contains('\r') {
-                err("CR character");
+            if line.contains('\r') {
+                suppressible_tidy_err!(err, skip_cr, "CR character");
             }
             if filename != "style.rs" {
                 if line.contains("TODO") {
@@ -139,12 +172,16 @@ pub fn check(path: &Path, bad: &mut bool) {
                     err("XXX is deprecated; use FIXME")
                 }
             }
-            if !skip_copyright && (line.starts_with("// Copyright") ||
-                                   line.starts_with("# Copyright") ||
-                                   line.starts_with("Copyright"))
-                               && (line.contains("Rust Developers") ||
-                                   line.contains("Rust Project Developers")) {
-                err("copyright notices attributed to the Rust Project Developers are deprecated");
+            if (line.starts_with("// Copyright") ||
+                line.starts_with("# Copyright") ||
+                line.starts_with("Copyright"))
+                && (line.contains("Rust Developers") ||
+                    line.contains("Rust Project Developers")) {
+                suppressible_tidy_err!(
+                    err,
+                    skip_copyright,
+                    "copyright notices attributed to the Rust Project Developers are deprecated"
+                );
             }
             if line.ends_with("```ignore") || line.ends_with("```rust,ignore") {
                 err(UNEXPLAINED_IGNORE_DOCTEST_INFO);
@@ -169,5 +206,21 @@ pub fn check(path: &Path, bad: &mut bool) {
             1 => {}
             n => tidy_error!(bad, "{}: too many trailing newlines ({})", file.display(), n),
         };
+
+        if let Directive::Ignore(false) = skip_cr {
+            tidy_error!(bad, "{}: ignoring CR characters unnecessarily", file.display());
+        }
+        if let Directive::Ignore(false) = skip_tab {
+            tidy_error!(bad, "{}: ignoring tab characters unnecessarily", file.display());
+        }
+        if let Directive::Ignore(false) = skip_length {
+            tidy_error!(bad, "{}: ignoring line length unnecessarily", file.display());
+        }
+        if let Directive::Ignore(false) = skip_end_whitespace {
+            tidy_error!(bad, "{}: ignoring trailing whitespace unnecessarily", file.display());
+        }
+        if let Directive::Ignore(false) = skip_copyright {
+            tidy_error!(bad, "{}: ignoring copyright unnecessarily", file.display());
+        }
     })
 }