about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-07-23 20:34:17 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-07-28 18:46:24 +0300
commit434152157f9d73ad1899fb8da3a61aed6f8a46d6 (patch)
treefd0dd6654839751b494670ba2da674246dc37cfb
parent0cfb2f7fbda1d27e12913d21d1c8e56a4133dbe1 (diff)
downloadrust-434152157f9d73ad1899fb8da3a61aed6f8a46d6.tar.gz
rust-434152157f9d73ad1899fb8da3a61aed6f8a46d6.zip
Remove lint annotations in specific crates that are already enforced by rustbuild
Remove some random unnecessary lint `allow`s
-rw-r--r--src/bootstrap/bin/main.rs3
-rw-r--r--src/bootstrap/bin/rustc.rs3
-rw-r--r--src/bootstrap/bin/rustdoc.rs3
-rw-r--r--src/bootstrap/lib.rs5
-rw-r--r--src/build_helper/lib.rs3
-rw-r--r--src/liballoc/lib.rs2
-rw-r--r--src/liballoc/tests/lib.rs1
-rw-r--r--src/libarena/lib.rs1
-rw-r--r--src/libcore/lib.rs2
-rw-r--r--src/libcore/tests/lib.rs1
-rw-r--r--src/libfmt_macros/lib.rs1
-rw-r--r--src/libgraphviz/lib.rs2
-rw-r--r--src/libpanic_abort/lib.rs1
-rw-r--r--src/libpanic_unwind/lib.rs2
-rw-r--r--src/libproc_macro/lib.rs2
-rw-r--r--src/libprofiler_builtins/lib.rs1
-rw-r--r--src/librustc/error_codes.rs2
-rw-r--r--src/librustc/lib.rs4
-rw-r--r--src/librustc/session/config.rs2
-rw-r--r--src/librustc/ty/query/job.rs3
-rw-r--r--src/librustc_apfloat/lib.rs1
-rw-r--r--src/librustc_asan/lib.rs2
-rw-r--r--src/librustc_ast_borrowck/lib.rs1
-rw-r--r--src/librustc_codegen_llvm/error_codes.rs2
-rw-r--r--src/librustc_codegen_llvm/intrinsic.rs2
-rw-r--r--src/librustc_codegen_llvm/lib.rs2
-rw-r--r--src/librustc_codegen_llvm/llvm/ffi.rs3
-rw-r--r--src/librustc_codegen_llvm/llvm/mod.rs3
-rw-r--r--src/librustc_codegen_llvm/type_.rs2
-rw-r--r--src/librustc_codegen_ssa/base.rs6
-rw-r--r--src/librustc_codegen_ssa/error_codes.rs2
-rw-r--r--src/librustc_codegen_ssa/lib.rs3
-rw-r--r--src/librustc_codegen_utils/codegen_backend.rs2
-rw-r--r--src/librustc_codegen_utils/lib.rs2
-rw-r--r--src/librustc_data_structures/lib.rs1
-rw-r--r--src/librustc_driver/lib.rs1
-rw-r--r--src/librustc_errors/lib.rs2
-rw-r--r--src/librustc_fs_util/lib.rs2
-rw-r--r--src/librustc_incremental/lib.rs1
-rw-r--r--src/librustc_interface/interface.rs1
-rw-r--r--src/librustc_interface/lib.rs3
-rw-r--r--src/librustc_interface/passes.rs19
-rw-r--r--src/librustc_interface/queries.rs16
-rw-r--r--src/librustc_lint/lib.rs1
-rw-r--r--src/librustc_llvm/lib.rs1
-rw-r--r--src/librustc_lsan/lib.rs2
-rw-r--r--src/librustc_macros/src/lib.rs1
-rw-r--r--src/librustc_metadata/error_codes.rs2
-rw-r--r--src/librustc_metadata/lib.rs1
-rw-r--r--src/librustc_mir/borrow_check/nll/type_check/mod.rs2
-rw-r--r--src/librustc_mir/error_codes.rs2
-rw-r--r--src/librustc_mir/lib.rs1
-rw-r--r--src/librustc_msan/lib.rs2
-rw-r--r--src/librustc_passes/error_codes.rs2
-rw-r--r--src/librustc_passes/lib.rs1
-rw-r--r--src/librustc_plugin/error_codes.rs2
-rw-r--r--src/librustc_plugin/lib.rs2
-rw-r--r--src/librustc_privacy/error_codes.rs2
-rw-r--r--src/librustc_privacy/lib.rs1
-rw-r--r--src/librustc_resolve/error_codes.rs2
-rw-r--r--src/librustc_resolve/lib.rs1
-rw-r--r--src/librustc_save_analysis/lib.rs2
-rw-r--r--src/librustc_target/abi/call/hexagon.rs2
-rw-r--r--src/librustc_target/lib.rs1
-rw-r--r--src/librustc_traits/lib.rs1
-rw-r--r--src/librustc_tsan/lib.rs2
-rw-r--r--src/librustc_typeck/error_codes.rs2
-rw-r--r--src/librustc_typeck/lib.rs1
-rw-r--r--src/librustdoc/lib.rs1
-rw-r--r--src/libserialize/lib.rs2
-rw-r--r--src/libstd/build.rs2
-rw-r--r--src/libstd/lib.rs2
-rw-r--r--src/libsyntax/diagnostics/plugin.rs3
-rw-r--r--src/libsyntax/error_codes.rs2
-rw-r--r--src/libsyntax/json.rs1
-rw-r--r--src/libsyntax/lib.rs1
-rw-r--r--src/libsyntax_ext/error_codes.rs2
-rw-r--r--src/libsyntax_ext/lib.rs1
-rw-r--r--src/libsyntax_pos/lib.rs1
-rw-r--r--src/libterm/lib.rs2
-rw-r--r--src/libtest/lib.rs1
-rw-r--r--src/libunwind/lib.rs2
-rw-r--r--src/test/run-make-fulldeps/issue-19371/foo.rs3
-rw-r--r--src/test/ui-fulldeps/plugin-as-extern-crate.rs1
-rw-r--r--src/test/ui-fulldeps/plugin-as-extern-crate.stderr2
-rw-r--r--src/test/ui/enable-unstable-lib-feature.rs1
-rw-r--r--src/test/ui/enable-unstable-lib-feature.stderr2
-rw-r--r--src/test/ui/error-codes/E0254.rs2
-rw-r--r--src/test/ui/error-codes/E0259.rs1
-rw-r--r--src/test/ui/error-codes/E0259.stderr2
-rw-r--r--src/test/ui/error-codes/E0260.rs2
-rw-r--r--src/test/ui/error-codes/E0260.stderr2
-rw-r--r--src/test/ui/issues/issue-36881.rs1
-rw-r--r--src/test/ui/issues/issue-36881.stderr2
-rw-r--r--src/test/ui/lint/lint-stability-deprecated.rs1
-rw-r--r--src/test/ui/lint/lint-stability-deprecated.stderr210
-rw-r--r--src/test/ui/macros/macro-use-bad-args-1.rs1
-rw-r--r--src/test/ui/macros/macro-use-bad-args-1.stderr2
-rw-r--r--src/test/ui/macros/macro-use-bad-args-2.rs1
-rw-r--r--src/test/ui/macros/macro-use-bad-args-2.stderr2
-rw-r--r--src/test/ui/no-std-inject.rs1
-rw-r--r--src/test/ui/no-std-inject.stderr2
-rw-r--r--src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.rs1
-rw-r--r--src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr4
-rw-r--r--src/test/ui/resolve_self_super_hint.rs2
-rw-r--r--src/test/ui/resolve_self_super_hint.stderr8
-rw-r--r--src/tools/build-manifest/src/main.rs2
-rw-r--r--src/tools/cargotest/main.rs2
-rw-r--r--src/tools/compiletest/src/main.rs1
-rw-r--r--src/tools/error_index_generator/main.rs2
-rw-r--r--src/tools/linkchecker/main.rs2
-rw-r--r--src/tools/remote-test-client/src/main.rs2
-rw-r--r--src/tools/remote-test-server/src/main.rs2
-rw-r--r--src/tools/rustbook/src/main.rs2
-rw-r--r--src/tools/rustc-std-workspace-core/lib.rs1
-rw-r--r--src/tools/rustdoc-themes/main.rs2
-rw-r--r--src/tools/rustdoc/main.rs2
-rw-r--r--src/tools/tidy/src/main.rs2
-rw-r--r--src/tools/unstable-book-gen/src/main.rs5
119 files changed, 146 insertions, 322 deletions
diff --git a/src/bootstrap/bin/main.rs b/src/bootstrap/bin/main.rs
index 0732cb83f39..da35c971f97 100644
--- a/src/bootstrap/bin/main.rs
+++ b/src/bootstrap/bin/main.rs
@@ -5,7 +5,8 @@
 //! parent directory, and otherwise documentation can be found throughout the `build`
 //! directory in each respective module.
 
-#![deny(warnings)]
+// NO-RUSTC-WRAPPER
+#![deny(warnings, rust_2018_idioms)]
 
 use std::env;
 
diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
index a9225f2870f..3888d0ef627 100644
--- a/src/bootstrap/bin/rustc.rs
+++ b/src/bootstrap/bin/rustc.rs
@@ -15,7 +15,8 @@
 //! switching compilers for the bootstrap and for build scripts will probably
 //! never get replaced.
 
-#![deny(warnings)]
+// NO-RUSTC-WRAPPER
+#![deny(warnings, rust_2018_idioms)]
 
 use std::env;
 use std::ffi::OsString;
diff --git a/src/bootstrap/bin/rustdoc.rs b/src/bootstrap/bin/rustdoc.rs
index 1c9f6e1ab28..057daaf2dc4 100644
--- a/src/bootstrap/bin/rustdoc.rs
+++ b/src/bootstrap/bin/rustdoc.rs
@@ -2,7 +2,8 @@
 //!
 //! See comments in `src/bootstrap/rustc.rs` for more information.
 
-#![deny(warnings)]
+// NO-RUSTC-WRAPPER
+#![deny(warnings, rust_2018_idioms)]
 
 use std::env;
 use std::process::Command;
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index 7011b7f1664..0f7e4f6e977 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -103,8 +103,9 @@
 //! More documentation can be found in each respective module below, and you can
 //! also check out the `src/bootstrap/README.md` file for more information.
 
-#![deny(rust_2018_idioms)]
-#![deny(warnings)]
+// NO-RUSTC-WRAPPER
+#![deny(warnings, rust_2018_idioms)]
+
 #![feature(core_intrinsics)]
 #![feature(drain_filter)]
 
diff --git a/src/build_helper/lib.rs b/src/build_helper/lib.rs
index 8b00c1d81b0..f9371e878ef 100644
--- a/src/build_helper/lib.rs
+++ b/src/build_helper/lib.rs
@@ -1,4 +1,5 @@
-#![deny(rust_2018_idioms)]
+// NO-RUSTC-WRAPPER
+#![deny(warnings, rust_2018_idioms)]
 
 use std::fs::File;
 use std::path::{Path, PathBuf};
diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs
index e42d6434725..c0f345443b9 100644
--- a/src/liballoc/lib.rs
+++ b/src/liballoc/lib.rs
@@ -62,8 +62,6 @@
 #![warn(missing_docs)]
 #![warn(missing_debug_implementations)]
 #![deny(intra_doc_link_resolution_failure)] // rustdoc is run without -D warnings
-
-#![deny(rust_2018_idioms)]
 #![allow(explicit_outlives_requirements)]
 
 #![cfg_attr(not(test), feature(generator_trait))]
diff --git a/src/liballoc/tests/lib.rs b/src/liballoc/tests/lib.rs
index 5a43c8e09a2..6d774f3fecd 100644
--- a/src/liballoc/tests/lib.rs
+++ b/src/liballoc/tests/lib.rs
@@ -8,7 +8,6 @@
 #![feature(trusted_len)]
 #![feature(try_reserve)]
 #![feature(unboxed_closures)]
-#![deny(rust_2018_idioms)]
 
 use std::hash::{Hash, Hasher};
 use std::collections::hash_map::DefaultHasher;
diff --git a/src/libarena/lib.rs b/src/libarena/lib.rs
index 967b4ad4720..7baec3ed1cf 100644
--- a/src/libarena/lib.rs
+++ b/src/libarena/lib.rs
@@ -11,7 +11,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
        test(no_crate_inject, attr(deny(warnings))))]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(core_intrinsics)]
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 2bb941b490e..bdfc1e66fd4 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -62,8 +62,6 @@
 #![warn(missing_docs)]
 #![warn(missing_debug_implementations)]
 #![deny(intra_doc_link_resolution_failure)] // rustdoc is run without -D warnings
-
-#![deny(rust_2018_idioms)]
 #![allow(explicit_outlives_requirements)]
 
 #![feature(allow_internal_unstable)]
diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs
index 505f8b0a261..a3b108b2e9c 100644
--- a/src/libcore/tests/lib.rs
+++ b/src/libcore/tests/lib.rs
@@ -32,7 +32,6 @@
 #![feature(const_fn)]
 #![feature(iter_partition_in_place)]
 #![feature(iter_is_partitioned)]
-#![warn(rust_2018_idioms)]
 
 extern crate test;
 
diff --git a/src/libfmt_macros/lib.rs b/src/libfmt_macros/lib.rs
index f1c2b1fb871..d673088fe45 100644
--- a/src/libfmt_macros/lib.rs
+++ b/src/libfmt_macros/lib.rs
@@ -8,7 +8,6 @@
        html_playground_url = "https://play.rust-lang.org/",
        test(attr(deny(warnings))))]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(nll)]
diff --git a/src/libgraphviz/lib.rs b/src/libgraphviz/lib.rs
index a34e4fb89ff..bb996e5f906 100644
--- a/src/libgraphviz/lib.rs
+++ b/src/libgraphviz/lib.rs
@@ -274,8 +274,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
        test(attr(allow(unused_variables), deny(warnings))))]
 
-#![deny(rust_2018_idioms)]
-
 #![feature(nll)]
 
 use LabelText::*;
diff --git a/src/libpanic_abort/lib.rs b/src/libpanic_abort/lib.rs
index 8c20a6ea55a..ee9dd858ef4 100644
--- a/src/libpanic_abort/lib.rs
+++ b/src/libpanic_abort/lib.rs
@@ -10,7 +10,6 @@
 #![panic_runtime]
 
 #![allow(unused_features)]
-#![deny(rust_2018_idioms)]
 
 #![feature(core_intrinsics)]
 #![feature(libc)]
diff --git a/src/libpanic_unwind/lib.rs b/src/libpanic_unwind/lib.rs
index 2bb9ce6ab22..06e6e768f45 100644
--- a/src/libpanic_unwind/lib.rs
+++ b/src/libpanic_unwind/lib.rs
@@ -17,8 +17,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
        issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/")]
 
-#![deny(rust_2018_idioms)]
-
 #![feature(core_intrinsics)]
 #![feature(lang_items)]
 #![feature(libc)]
diff --git a/src/libproc_macro/lib.rs b/src/libproc_macro/lib.rs
index 2c097238b95..c0f7714ca21 100644
--- a/src/libproc_macro/lib.rs
+++ b/src/libproc_macro/lib.rs
@@ -17,8 +17,6 @@
        test(no_crate_inject, attr(deny(warnings))),
        test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))]
 
-#![deny(rust_2018_idioms)]
-
 #![feature(nll)]
 #![feature(staged_api)]
 #![feature(const_fn)]
diff --git a/src/libprofiler_builtins/lib.rs b/src/libprofiler_builtins/lib.rs
index 2ce1a110b44..0d12ba01c87 100644
--- a/src/libprofiler_builtins/lib.rs
+++ b/src/libprofiler_builtins/lib.rs
@@ -7,4 +7,3 @@
 #![allow(unused_features)]
 #![feature(nll)]
 #![feature(staged_api)]
-#![deny(rust_2018_idioms)]
diff --git a/src/librustc/error_codes.rs b/src/librustc/error_codes.rs
index 655028324e1..1edadbd5bae 100644
--- a/src/librustc/error_codes.rs
+++ b/src/librustc/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 // Error messages for EXXXX errors.
 // Each message should start and end with a new line, and be wrapped to 80 characters.
 // In vim you can `:set tw=80` and use `gq` to wrap paragraphs. Use `:set tw=0` to disable.
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index 79f60778d3c..9957b173116 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -28,7 +28,6 @@
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(arbitrary_self_types)]
@@ -81,8 +80,7 @@ extern crate libc;
 
 // Use the test crate here so we depend on getopts through it. This allow tools to link to both
 // librustc_driver and libtest.
-#[allow(unused_extern_crates)]
-extern crate test;
+extern crate test as _;
 
 #[macro_use]
 mod macros;
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 74653d4fbda..886915db449 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1628,7 +1628,7 @@ impl RustcOptGroup {
 // *unstable* options, i.e., options that are only enabled when the
 // user also passes the `-Z unstable-options` debugging flag.
 mod opt {
-    // The `fn opt_u` etc below are written so that we can use them
+    // The `fn flag*` etc below are written so that we can use them
     // in the future; do not warn about them not being used right now.
     #![allow(dead_code)]
 
diff --git a/src/librustc/ty/query/job.rs b/src/librustc/ty/query/job.rs
index dcc467a61b5..c4e798f7461 100644
--- a/src/librustc/ty/query/job.rs
+++ b/src/librustc/ty/query/job.rs
@@ -1,4 +1,4 @@
-#![allow(warnings)]
+#![allow(unused_imports)] // `cfg(parallel_compiler)`
 
 use std::mem;
 use std::process;
@@ -138,6 +138,7 @@ impl<'tcx> QueryJob<'tcx> {
         self.latch.set();
     }
 
+    #[cfg(parallel_compiler)]
     fn as_ptr(&self) -> *const QueryJob<'tcx> {
         self as *const _
     }
diff --git a/src/librustc_apfloat/lib.rs b/src/librustc_apfloat/lib.rs
index ceade5d2788..9e6d5a6f624 100644
--- a/src/librustc_apfloat/lib.rs
+++ b/src/librustc_apfloat/lib.rs
@@ -32,7 +32,6 @@
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 #![forbid(unsafe_code)]
-#![deny(rust_2018_idioms)]
 
 #![feature(nll)]
 
diff --git a/src/librustc_asan/lib.rs b/src/librustc_asan/lib.rs
index 3bdb86d313d..d6c8e54c18d 100644
--- a/src/librustc_asan/lib.rs
+++ b/src/librustc_asan/lib.rs
@@ -6,5 +6,3 @@
 #![unstable(feature = "sanitizer_runtime_lib",
             reason = "internal implementation detail of sanitizers",
             issue = "0")]
-
-#![deny(rust_2018_idioms)]
diff --git a/src/librustc_ast_borrowck/lib.rs b/src/librustc_ast_borrowck/lib.rs
index b857c625ec2..045671e37c0 100644
--- a/src/librustc_ast_borrowck/lib.rs
+++ b/src/librustc_ast_borrowck/lib.rs
@@ -1,7 +1,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![allow(non_camel_case_types)]
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(in_band_lifetimes)]
diff --git a/src/librustc_codegen_llvm/error_codes.rs b/src/librustc_codegen_llvm/error_codes.rs
index 872fa424e4c..c6b5dc03a6f 100644
--- a/src/librustc_codegen_llvm/error_codes.rs
+++ b/src/librustc_codegen_llvm/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 register_long_diagnostics! {
 
 E0511: r##"
diff --git a/src/librustc_codegen_llvm/intrinsic.rs b/src/librustc_codegen_llvm/intrinsic.rs
index 44b3eff2ac5..199170182e4 100644
--- a/src/librustc_codegen_llvm/intrinsic.rs
+++ b/src/librustc_codegen_llvm/intrinsic.rs
@@ -1,5 +1,3 @@
-#![allow(non_upper_case_globals)]
-
 use crate::attributes;
 use crate::llvm;
 use crate::llvm_util;
diff --git a/src/librustc_codegen_llvm/lib.rs b/src/librustc_codegen_llvm/lib.rs
index 8dd241bd81a..90609d6c85a 100644
--- a/src/librustc_codegen_llvm/lib.rs
+++ b/src/librustc_codegen_llvm/lib.rs
@@ -12,7 +12,6 @@
 #![feature(crate_visibility_modifier)]
 #![feature(extern_types)]
 #![feature(in_band_lifetimes)]
-#![allow(unused_attributes)]
 #![feature(libc)]
 #![feature(nll)]
 #![feature(rustc_diagnostic_macros)]
@@ -22,7 +21,6 @@
 #![feature(static_nobundle)]
 #![feature(trusted_len)]
 #![feature(mem_take)]
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 use back::write::{create_target_machine, create_informational_target_machine};
diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs
index 8c6ea00eb8c..d82e1c68df0 100644
--- a/src/librustc_codegen_llvm/llvm/ffi.rs
+++ b/src/librustc_codegen_llvm/llvm/ffi.rs
@@ -1,3 +1,6 @@
+#![allow(non_camel_case_types)]
+#![allow(non_upper_case_globals)]
+
 use super::debuginfo::{
     DIBuilder, DIDescriptor, DIFile, DILexicalBlock, DISubprogram, DIType,
     DIBasicType, DIDerivedType, DICompositeType, DIScope, DIVariable,
diff --git a/src/librustc_codegen_llvm/llvm/mod.rs b/src/librustc_codegen_llvm/llvm/mod.rs
index 543cc912930..57815933af0 100644
--- a/src/librustc_codegen_llvm/llvm/mod.rs
+++ b/src/librustc_codegen_llvm/llvm/mod.rs
@@ -1,7 +1,4 @@
-#![allow(non_upper_case_globals)]
-#![allow(non_camel_case_types)]
 #![allow(non_snake_case)]
-#![deny(bare_trait_objects)]
 
 pub use self::IntPredicate::*;
 pub use self::RealPredicate::*;
diff --git a/src/librustc_codegen_llvm/type_.rs b/src/librustc_codegen_llvm/type_.rs
index 2c167256ad5..8d6cd0bcf47 100644
--- a/src/librustc_codegen_llvm/type_.rs
+++ b/src/librustc_codegen_llvm/type_.rs
@@ -1,5 +1,3 @@
-#![allow(non_upper_case_globals)]
-
 pub use crate::llvm::Type;
 
 use crate::llvm;
diff --git a/src/librustc_codegen_ssa/base.rs b/src/librustc_codegen_ssa/base.rs
index 00471095f2f..fc04976f511 100644
--- a/src/librustc_codegen_ssa/base.rs
+++ b/src/librustc_codegen_ssa/base.rs
@@ -781,12 +781,6 @@ impl CrateInfo {
     }
 }
 
-fn is_codegened_item(tcx: TyCtxt<'_>, id: DefId) -> bool {
-    let (all_mono_items, _) =
-        tcx.collect_and_partition_mono_items(LOCAL_CRATE);
-    all_mono_items.contains(&id)
-}
-
 pub fn provide_both(providers: &mut Providers<'_>) {
     providers.backend_optimization_level = |tcx, cratenum| {
         let for_speed = match tcx.sess.opts.optimize {
diff --git a/src/librustc_codegen_ssa/error_codes.rs b/src/librustc_codegen_ssa/error_codes.rs
index e7ef178cfab..8d46dcb7c09 100644
--- a/src/librustc_codegen_ssa/error_codes.rs
+++ b/src/librustc_codegen_ssa/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 register_long_diagnostics! {
 
 E0668: r##"
diff --git a/src/librustc_codegen_ssa/lib.rs b/src/librustc_codegen_ssa/lib.rs
index d0f4b0a870b..4e2977a011c 100644
--- a/src/librustc_codegen_ssa/lib.rs
+++ b/src/librustc_codegen_ssa/lib.rs
@@ -11,9 +11,6 @@
 #![feature(nll)]
 #![feature(trusted_len)]
 #![feature(mem_take)]
-#![allow(unused_attributes)]
-#![allow(dead_code)]
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![recursion_limit="256"]
diff --git a/src/librustc_codegen_utils/codegen_backend.rs b/src/librustc_codegen_utils/codegen_backend.rs
index 7a7a50a25fa..262cfb1658e 100644
--- a/src/librustc_codegen_utils/codegen_backend.rs
+++ b/src/librustc_codegen_utils/codegen_backend.rs
@@ -5,8 +5,6 @@
 //! This API is completely unstable and subject to change.
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
-#![deny(warnings)]
-#![feature(box_syntax)]
 
 use std::any::Any;
 use std::sync::mpsc;
diff --git a/src/librustc_codegen_utils/lib.rs b/src/librustc_codegen_utils/lib.rs
index f38b672afd9..e3fafc2f2cd 100644
--- a/src/librustc_codegen_utils/lib.rs
+++ b/src/librustc_codegen_utils/lib.rs
@@ -10,13 +10,11 @@
 #![feature(core_intrinsics)]
 #![feature(never_type)]
 #![feature(nll)]
-#![allow(unused_attributes)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(in_band_lifetimes)]
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use]
diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs
index 3047119029a..bb27637912b 100644
--- a/src/librustc_data_structures/lib.rs
+++ b/src/librustc_data_structures/lib.rs
@@ -26,7 +26,6 @@
 #![cfg_attr(unix, feature(libc))]
 #![cfg_attr(test, feature(test))]
 
-#![deny(rust_2018_idioms)]
 #![cfg_attr(not(bootstrap), allow(rustc::default_hash_types))]
 
 #[macro_use]
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index c139be07aa1..66739761ef0 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -16,7 +16,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 pub extern crate getopts;
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 0a6c02c0ca6..f252d0573dc 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -5,11 +5,9 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![feature(crate_visibility_modifier)]
-#![allow(unused_attributes)]
 #![cfg_attr(unix, feature(libc))]
 #![feature(nll)]
 #![feature(optin_builtin_traits)]
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 pub use emitter::ColorConfig;
diff --git a/src/librustc_fs_util/lib.rs b/src/librustc_fs_util/lib.rs
index ce63bcafd79..eaf08d76b99 100644
--- a/src/librustc_fs_util/lib.rs
+++ b/src/librustc_fs_util/lib.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 use std::path::{Path, PathBuf};
 use std::ffi::CString;
 use std::fs;
diff --git a/src/librustc_incremental/lib.rs b/src/librustc_incremental/lib.rs
index 55aba7caa9d..0b5eb41605b 100644
--- a/src/librustc_incremental/lib.rs
+++ b/src/librustc_incremental/lib.rs
@@ -8,7 +8,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use] extern crate rustc;
diff --git a/src/librustc_interface/interface.rs b/src/librustc_interface/interface.rs
index 674b2b60e44..fef60a47dc4 100644
--- a/src/librustc_interface/interface.rs
+++ b/src/librustc_interface/interface.rs
@@ -12,7 +12,6 @@ use rustc_data_structures::OnDrop;
 use rustc_data_structures::sync::Lrc;
 use rustc_data_structures::fx::{FxHashSet, FxHashMap};
 use rustc_metadata::cstore::CStore;
-use std::io::Write;
 use std::path::PathBuf;
 use std::result;
 use std::sync::{Arc, Mutex};
diff --git a/src/librustc_interface/lib.rs b/src/librustc_interface/lib.rs
index 4bc50c24e81..f4e4612007c 100644
--- a/src/librustc_interface/lib.rs
+++ b/src/librustc_interface/lib.rs
@@ -6,11 +6,8 @@
 #![feature(generators)]
 #![cfg_attr(unix, feature(libc))]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
-#![allow(unused_imports)]
-
 #![recursion_limit="256"]
 
 #[cfg(unix)]
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index 3c7d854b36b..ac36ad7e30b 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -2,7 +2,7 @@ use crate::interface::{Compiler, Result};
 use crate::util;
 use crate::proc_macro_decls;
 
-use log::{debug, info, warn, log_enabled};
+use log::{info, warn, log_enabled};
 use rustc::dep_graph::DepGraph;
 use rustc::hir;
 use rustc::hir::lowering::lower_crate;
@@ -10,13 +10,11 @@ use rustc::hir::def_id::{CrateNum, LOCAL_CRATE};
 use rustc::lint;
 use rustc::middle::{self, reachable, resolve_lifetime, stability};
 use rustc::middle::cstore::CrateStore;
-use rustc::middle::privacy::AccessLevels;
 use rustc::ty::{self, AllArenas, Resolutions, TyCtxt, GlobalCtxt};
 use rustc::ty::steal::Steal;
 use rustc::traits;
 use rustc::util::common::{time, ErrorReported};
-use rustc::util::profiling::ProfileCategory;
-use rustc::session::{CompileResult, CrateDisambiguator, Session};
+use rustc::session::Session;
 use rustc::session::config::{self, CrateType, Input, OutputFilenames, OutputType};
 use rustc::session::search_paths::PathKind;
 use rustc_allocator as allocator;
@@ -25,31 +23,27 @@ use rustc_codegen_ssa::back::link::emit_metadata;
 use rustc_codegen_utils::codegen_backend::CodegenBackend;
 use rustc_codegen_utils::link::filename_for_metadata;
 use rustc_data_structures::{box_region_allow_access, declare_box_region_type, parallel};
-use rustc_data_structures::fingerprint::Fingerprint;
-use rustc_data_structures::stable_hasher::StableHasher;
 use rustc_data_structures::sync::{Lrc, ParallelIterator, par_iter};
 use rustc_incremental;
-use rustc_incremental::DepGraphFuture;
 use rustc_metadata::creader::CrateLoader;
 use rustc_metadata::cstore::{self, CStore};
 use rustc_mir as mir;
-use rustc_passes::{self, ast_validation, hir_stats, loops, rvalue_promotion, layout_test};
+use rustc_passes::{self, ast_validation, hir_stats, layout_test};
 use rustc_plugin as plugin;
 use rustc_plugin::registry::Registry;
 use rustc_privacy;
 use rustc_resolve::{Resolver, ResolverArenas};
 use rustc_traits;
 use rustc_typeck as typeck;
-use syntax::{self, ast, attr, diagnostics, visit};
+use syntax::{self, ast, diagnostics, visit};
 use syntax::early_buffered_lints::BufferedEarlyLint;
 use syntax::ext::base::{NamedSyntaxExtension, ExtCtxt};
 use syntax::mut_visit::MutVisitor;
 use syntax::parse::{self, PResult};
 use syntax::util::node_count::NodeCounter;
-use syntax::util::lev_distance::find_best_match_for_name;
 use syntax::symbol::Symbol;
 use syntax::feature_gate::AttributeType;
-use syntax_pos::{FileName, edition::Edition, hygiene};
+use syntax_pos::FileName;
 use syntax_ext;
 
 use rustc_serialize::json;
@@ -61,12 +55,11 @@ use std::ffi::OsString;
 use std::fs;
 use std::io::{self, Write};
 use std::iter;
-use std::path::{Path, PathBuf};
+use std::path::PathBuf;
 use std::sync::mpsc;
 use std::cell::RefCell;
 use std::rc::Rc;
 use std::mem;
-use std::ops::Generator;
 
 pub fn parse<'a>(sess: &'a Session, input: &Input) -> PResult<'a, ast::Crate> {
     sess.diagnostic()
diff --git a/src/librustc_interface/queries.rs b/src/librustc_interface/queries.rs
index 9b79dc6350c..2e7952cd004 100644
--- a/src/librustc_interface/queries.rs
+++ b/src/librustc_interface/queries.rs
@@ -2,30 +2,18 @@ use crate::interface::{Compiler, Result};
 use crate::passes::{self, BoxedResolver, ExpansionResult, BoxedGlobalCtxt, PluginInfo};
 
 use rustc_incremental::DepGraphFuture;
-use rustc_data_structures::sync::Lrc;
-use rustc::session::config::{Input, OutputFilenames, OutputType};
-use rustc::session::Session;
+use rustc::session::config::{OutputFilenames, OutputType};
 use rustc::util::common::{time, ErrorReported};
-use rustc::util::profiling::ProfileCategory;
-use rustc::lint;
 use rustc::hir;
 use rustc::hir::def_id::LOCAL_CRATE;
-use rustc::ty;
 use rustc::ty::steal::Steal;
 use rustc::dep_graph::DepGraph;
-use rustc_passes::hir_stats;
-use rustc_plugin::registry::Registry;
-use rustc_serialize::json;
 use std::cell::{Ref, RefMut, RefCell};
-use std::ops::Deref;
 use std::rc::Rc;
 use std::sync::mpsc;
 use std::any::Any;
 use std::mem;
-use syntax::parse::{self, PResult};
-use syntax::util::node_count::NodeCounter;
-use syntax::{self, ast, attr, diagnostics, visit};
-use syntax_pos::hygiene;
+use syntax::{self, ast};
 
 /// Represent the result of a query.
 /// This result can be stolen with the `take` method and returned with the `give` method.
diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs
index c7a8c2b8923..1d3b2b62996 100644
--- a/src/librustc_lint/lib.rs
+++ b/src/librustc_lint/lib.rs
@@ -19,7 +19,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use]
diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs
index dea7e6ae0a2..647d473f015 100644
--- a/src/librustc_llvm/lib.rs
+++ b/src/librustc_llvm/lib.rs
@@ -1,4 +1,3 @@
-#![deny(rust_2018_idioms)]
 #![feature(nll)]
 #![feature(static_nobundle)]
 
diff --git a/src/librustc_lsan/lib.rs b/src/librustc_lsan/lib.rs
index 3bdb86d313d..d6c8e54c18d 100644
--- a/src/librustc_lsan/lib.rs
+++ b/src/librustc_lsan/lib.rs
@@ -6,5 +6,3 @@
 #![unstable(feature = "sanitizer_runtime_lib",
             reason = "internal implementation detail of sanitizers",
             issue = "0")]
-
-#![deny(rust_2018_idioms)]
diff --git a/src/librustc_macros/src/lib.rs b/src/librustc_macros/src/lib.rs
index 53bbecd0e6a..85e2247ebd7 100644
--- a/src/librustc_macros/src/lib.rs
+++ b/src/librustc_macros/src/lib.rs
@@ -1,5 +1,4 @@
 #![feature(proc_macro_hygiene)]
-#![deny(rust_2018_idioms)]
 #![cfg_attr(not(bootstrap), allow(rustc::default_hash_types))]
 
 #![recursion_limit="128"]
diff --git a/src/librustc_metadata/error_codes.rs b/src/librustc_metadata/error_codes.rs
index 909fca2ab58..0708a6243bf 100644
--- a/src/librustc_metadata/error_codes.rs
+++ b/src/librustc_metadata/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 use syntax::{register_diagnostics, register_long_diagnostics};
 
 register_long_diagnostics! {
diff --git a/src/librustc_metadata/lib.rs b/src/librustc_metadata/lib.rs
index 8db3ec491df..ce7fb7cdc66 100644
--- a/src/librustc_metadata/lib.rs
+++ b/src/librustc_metadata/lib.rs
@@ -15,7 +15,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 extern crate libc;
diff --git a/src/librustc_mir/borrow_check/nll/type_check/mod.rs b/src/librustc_mir/borrow_check/nll/type_check/mod.rs
index 45b806bd286..50c0640f885 100644
--- a/src/librustc_mir/borrow_check/nll/type_check/mod.rs
+++ b/src/librustc_mir/borrow_check/nll/type_check/mod.rs
@@ -1,7 +1,5 @@
 //! This pass type-checks the MIR to ensure it is not broken.
 
-#![allow(unreachable_code)]
-
 use crate::borrow_check::borrow_set::BorrowSet;
 use crate::borrow_check::location::LocationTable;
 use crate::borrow_check::nll::constraints::{OutlivesConstraintSet, OutlivesConstraint};
diff --git a/src/librustc_mir/error_codes.rs b/src/librustc_mir/error_codes.rs
index 83d441b90be..a5e44a1933c 100644
--- a/src/librustc_mir/error_codes.rs
+++ b/src/librustc_mir/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 register_long_diagnostics! {
 
 
diff --git a/src/librustc_mir/lib.rs b/src/librustc_mir/lib.rs
index 964f04d79b9..28e5c5dc99a 100644
--- a/src/librustc_mir/lib.rs
+++ b/src/librustc_mir/lib.rs
@@ -26,7 +26,6 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use] extern crate log;
diff --git a/src/librustc_msan/lib.rs b/src/librustc_msan/lib.rs
index 3bdb86d313d..d6c8e54c18d 100644
--- a/src/librustc_msan/lib.rs
+++ b/src/librustc_msan/lib.rs
@@ -6,5 +6,3 @@
 #![unstable(feature = "sanitizer_runtime_lib",
             reason = "internal implementation detail of sanitizers",
             issue = "0")]
-
-#![deny(rust_2018_idioms)]
diff --git a/src/librustc_passes/error_codes.rs b/src/librustc_passes/error_codes.rs
index 36ebe5cf455..cd33943e77e 100644
--- a/src/librustc_passes/error_codes.rs
+++ b/src/librustc_passes/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 use syntax::{register_diagnostics, register_long_diagnostics};
 
 register_long_diagnostics! {
diff --git a/src/librustc_passes/lib.rs b/src/librustc_passes/lib.rs
index 0a96ad3e344..6c11d82958b 100644
--- a/src/librustc_passes/lib.rs
+++ b/src/librustc_passes/lib.rs
@@ -13,7 +13,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use]
diff --git a/src/librustc_plugin/error_codes.rs b/src/librustc_plugin/error_codes.rs
index 9e76f52a111..b5f6a8d905d 100644
--- a/src/librustc_plugin/error_codes.rs
+++ b/src/librustc_plugin/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 use syntax::{register_diagnostics, register_long_diagnostics};
 
 register_long_diagnostics! {
diff --git a/src/librustc_plugin/lib.rs b/src/librustc_plugin/lib.rs
index 6520cdc3062..25a7a8cdeb6 100644
--- a/src/librustc_plugin/lib.rs
+++ b/src/librustc_plugin/lib.rs
@@ -59,8 +59,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
-
 pub use registry::Registry;
 
 mod error_codes;
diff --git a/src/librustc_privacy/error_codes.rs b/src/librustc_privacy/error_codes.rs
index fa4df53e47b..70a799d426a 100644
--- a/src/librustc_privacy/error_codes.rs
+++ b/src/librustc_privacy/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 register_long_diagnostics! {
 
 E0445: r##"
diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs
index 05df3a6f6bc..75c98753d31 100644
--- a/src/librustc_privacy/lib.rs
+++ b/src/librustc_privacy/lib.rs
@@ -1,6 +1,5 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(in_band_lifetimes)]
diff --git a/src/librustc_resolve/error_codes.rs b/src/librustc_resolve/error_codes.rs
index 15194a5d146..e01f53786ed 100644
--- a/src/librustc_resolve/error_codes.rs
+++ b/src/librustc_resolve/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 use syntax::{register_diagnostics, register_long_diagnostics};
 
 // Error messages for EXXXX errors.  Each message should start and end with a
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index a5e498fa756..c7982b4a396 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -10,7 +10,6 @@
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 pub use rustc::hir::def::{Namespace, PerNS};
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index ade5e2eca60..1e18b34e5c8 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -1,8 +1,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 #![feature(nll)]
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
-#![allow(unused_attributes)]
 
 #![recursion_limit="256"]
 
diff --git a/src/librustc_target/abi/call/hexagon.rs b/src/librustc_target/abi/call/hexagon.rs
index db8c915cdb4..1aec990064a 100644
--- a/src/librustc_target/abi/call/hexagon.rs
+++ b/src/librustc_target/abi/call/hexagon.rs
@@ -1,5 +1,3 @@
-#![allow(non_upper_case_globals)]
-
 use crate::abi::call::{FnType, ArgType};
 
 fn classify_ret_ty<Ty>(ret: &mut ArgType<'_, Ty>) {
diff --git a/src/librustc_target/lib.rs b/src/librustc_target/lib.rs
index a14bc66cc38..0fc5fbdc6a2 100644
--- a/src/librustc_target/lib.rs
+++ b/src/librustc_target/lib.rs
@@ -13,7 +13,6 @@
 #![feature(nll)]
 #![feature(slice_patterns)]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use] extern crate log;
diff --git a/src/librustc_traits/lib.rs b/src/librustc_traits/lib.rs
index 12b19a2648d..ec5a8bc544b 100644
--- a/src/librustc_traits/lib.rs
+++ b/src/librustc_traits/lib.rs
@@ -1,7 +1,6 @@
 //! New recursive solver modeled on Chalk's recursive solver. Most of
 //! the guts are broken up into modules; see the comments in those modules.
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(crate_visibility_modifier)]
diff --git a/src/librustc_tsan/lib.rs b/src/librustc_tsan/lib.rs
index 3bdb86d313d..d6c8e54c18d 100644
--- a/src/librustc_tsan/lib.rs
+++ b/src/librustc_tsan/lib.rs
@@ -6,5 +6,3 @@
 #![unstable(feature = "sanitizer_runtime_lib",
             reason = "internal implementation detail of sanitizers",
             issue = "0")]
-
-#![deny(rust_2018_idioms)]
diff --git a/src/librustc_typeck/error_codes.rs b/src/librustc_typeck/error_codes.rs
index b4c85692119..4bdcb0fa291 100644
--- a/src/librustc_typeck/error_codes.rs
+++ b/src/librustc_typeck/error_codes.rs
@@ -1,7 +1,5 @@
 // ignore-tidy-filelength
 
-#![allow(non_snake_case)]
-
 register_long_diagnostics! {
 
 E0023: r##"
diff --git a/src/librustc_typeck/lib.rs b/src/librustc_typeck/lib.rs
index 934fc684eae..284b1d533d5 100644
--- a/src/librustc_typeck/lib.rs
+++ b/src/librustc_typeck/lib.rs
@@ -73,7 +73,6 @@ This API is completely unstable and subject to change.
 
 #![recursion_limit="256"]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #[macro_use] extern crate log;
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index 3627ce6a5aa..74a7b2b9152 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -1,4 +1,3 @@
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index b8eeb4d2b34..2ad85c603d1 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -8,8 +8,6 @@ Core encoding and decoding interfaces.
        html_playground_url = "https://play.rust-lang.org/",
        test(attr(allow(unused_variables), deny(warnings))))]
 
-#![deny(rust_2018_idioms)]
-
 #![feature(box_syntax)]
 #![feature(core_intrinsics)]
 #![feature(specialization)]
diff --git a/src/libstd/build.rs b/src/libstd/build.rs
index 20397369387..8db7bc12cd3 100644
--- a/src/libstd/build.rs
+++ b/src/libstd/build.rs
@@ -1,5 +1,3 @@
-#![deny(warnings)]
-
 use std::env;
 
 fn main() {
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index 722c08a22a6..1390341cf7c 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -209,8 +209,6 @@
 #![warn(missing_docs)]
 #![warn(missing_debug_implementations)]
 #![deny(intra_doc_link_resolution_failure)] // rustdoc is run without -D warnings
-
-#![deny(rust_2018_idioms)]
 #![allow(explicit_outlives_requirements)]
 
 // Tell the compiler to link to either panic_abort or panic_unwind
diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs
index ee640a1603a..e5e55a6444a 100644
--- a/src/libsyntax/diagnostics/plugin.rs
+++ b/src/libsyntax/diagnostics/plugin.rs
@@ -123,7 +123,6 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt<'_>,
     MacEager::items(smallvec![])
 }
 
-#[allow(deprecated)]
 pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt<'_>,
                                           span: Span,
                                           token_tree: &[TokenTree])
@@ -149,7 +148,7 @@ pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt<'_>,
                 ecx.span_bug(span, &format!(
                     "error writing metadata for triple `{}` and crate `{}`, error: {}, \
                      cause: {:?}",
-                    target_triple, crate_name, e.description(), e.cause()
+                    target_triple, crate_name, e.description(), e.source()
                 ));
             }
         });
diff --git a/src/libsyntax/error_codes.rs b/src/libsyntax/error_codes.rs
index 029ce73498c..1ba29011f75 100644
--- a/src/libsyntax/error_codes.rs
+++ b/src/libsyntax/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 // Error messages for EXXXX errors.
 // Each message should start and end with a new line, and be wrapped to 80 characters.
 // In vim you can `:set tw=80` and use `gq` to wrap paragraphs. Use `:set tw=0` to disable.
diff --git a/src/libsyntax/json.rs b/src/libsyntax/json.rs
index ec0222d90eb..83c9c692bd3 100644
--- a/src/libsyntax/json.rs
+++ b/src/libsyntax/json.rs
@@ -122,7 +122,6 @@ struct Diagnostic {
 }
 
 #[derive(RustcEncodable)]
-#[allow(unused_attributes)]
 struct DiagnosticSpan {
     file_name: String,
     byte_start: u32,
diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs
index bb6a8dfb141..5ef80518b40 100644
--- a/src/libsyntax/lib.rs
+++ b/src/libsyntax/lib.rs
@@ -7,7 +7,6 @@
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
        test(attr(deny(warnings))))]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(bind_by_move_pattern_guards)]
diff --git a/src/libsyntax_ext/error_codes.rs b/src/libsyntax_ext/error_codes.rs
index 9ec551b4395..5982a4df226 100644
--- a/src/libsyntax_ext/error_codes.rs
+++ b/src/libsyntax_ext/error_codes.rs
@@ -1,5 +1,3 @@
-#![allow(non_snake_case)]
-
 use syntax::register_long_diagnostics;
 
 // Error messages for EXXXX errors.
diff --git a/src/libsyntax_ext/lib.rs b/src/libsyntax_ext/lib.rs
index fae884860ed..21031109f2a 100644
--- a/src/libsyntax_ext/lib.rs
+++ b/src/libsyntax_ext/lib.rs
@@ -3,7 +3,6 @@
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(crate_visibility_modifier)]
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index e5f0892b37b..bc7be9f34ee 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -6,7 +6,6 @@
 
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![deny(rust_2018_idioms)]
 #![deny(unused_lifetimes)]
 
 #![feature(const_fn)]
diff --git a/src/libterm/lib.rs b/src/libterm/lib.rs
index 3b5ac7baf20..ad1a83316be 100644
--- a/src/libterm/lib.rs
+++ b/src/libterm/lib.rs
@@ -35,8 +35,6 @@
        test(attr(deny(warnings))))]
 #![deny(missing_docs)]
 
-#![deny(rust_2018_idioms)]
-
 #![cfg_attr(windows, feature(libc))]
 
 use std::io::prelude::*;
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index fa45c9d7d9d..653dce32e50 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -17,7 +17,6 @@
 // this crate, which relies on this attribute (rather than the value of `--crate-name` passed by
 // cargo) to detect this crate.
 
-#![deny(rust_2018_idioms)]
 #![crate_name = "test"]
 #![unstable(feature = "test", issue = "27812")]
 #![doc(html_root_url = "https://doc.rust-lang.org/nightly/", test(attr(deny(warnings))))]
diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
index 9182e349b19..b9ce71b6b84 100644
--- a/src/libunwind/lib.rs
+++ b/src/libunwind/lib.rs
@@ -1,8 +1,6 @@
 #![no_std]
 #![unstable(feature = "panic_unwind", issue = "32837")]
 
-#![deny(rust_2018_idioms)]
-
 #![feature(link_cfg)]
 #![feature(nll)]
 #![feature(staged_api)]
diff --git a/src/test/run-make-fulldeps/issue-19371/foo.rs b/src/test/run-make-fulldeps/issue-19371/foo.rs
index 3c4f2cd541f..afc92638fda 100644
--- a/src/test/run-make-fulldeps/issue-19371/foo.rs
+++ b/src/test/run-make-fulldeps/issue-19371/foo.rs
@@ -2,8 +2,7 @@
 
 extern crate rustc;
 extern crate rustc_interface;
-#[allow(unused_extern_crates)]
-extern crate rustc_driver;
+extern crate rustc_driver as _;
 extern crate syntax;
 
 use rustc::session::DiagnosticOutput;
diff --git a/src/test/ui-fulldeps/plugin-as-extern-crate.rs b/src/test/ui-fulldeps/plugin-as-extern-crate.rs
index c671ab581ef..dde73ba69f7 100644
--- a/src/test/ui-fulldeps/plugin-as-extern-crate.rs
+++ b/src/test/ui-fulldeps/plugin-as-extern-crate.rs
@@ -5,7 +5,6 @@
 // libsyntax is not compiled for it.
 
 #![deny(plugin_as_library)]
-#![allow(unused_extern_crates)]
 
 extern crate attr_plugin_test; //~ ERROR compiler plugin used as an ordinary library
 
diff --git a/src/test/ui-fulldeps/plugin-as-extern-crate.stderr b/src/test/ui-fulldeps/plugin-as-extern-crate.stderr
index ccc9580a60c..4daa4a2c821 100644
--- a/src/test/ui-fulldeps/plugin-as-extern-crate.stderr
+++ b/src/test/ui-fulldeps/plugin-as-extern-crate.stderr
@@ -1,5 +1,5 @@
 error: compiler plugin used as an ordinary library
-  --> $DIR/plugin-as-extern-crate.rs:10:1
+  --> $DIR/plugin-as-extern-crate.rs:9:1
    |
 LL | extern crate attr_plugin_test;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/enable-unstable-lib-feature.rs b/src/test/ui/enable-unstable-lib-feature.rs
index 383c6868ce2..aa6a973d7bd 100644
--- a/src/test/ui/enable-unstable-lib-feature.rs
+++ b/src/test/ui/enable-unstable-lib-feature.rs
@@ -6,7 +6,6 @@
 #![deny(non_snake_case)] // To trigger a hard error
 
 // Shouldn't generate a warning about unstable features
-#[allow(unused_extern_crates)]
 extern crate stability_cfg2;
 
 pub fn BOGUS() { } //~ ERROR
diff --git a/src/test/ui/enable-unstable-lib-feature.stderr b/src/test/ui/enable-unstable-lib-feature.stderr
index 5b6ebc4c0d9..d5b8c0efaad 100644
--- a/src/test/ui/enable-unstable-lib-feature.stderr
+++ b/src/test/ui/enable-unstable-lib-feature.stderr
@@ -1,5 +1,5 @@
 error: function `BOGUS` should have a snake case name
-  --> $DIR/enable-unstable-lib-feature.rs:12:8
+  --> $DIR/enable-unstable-lib-feature.rs:11:8
    |
 LL | pub fn BOGUS() { }
    |        ^^^^^ help: convert the identifier to snake case: `bogus`
diff --git a/src/test/ui/error-codes/E0254.rs b/src/test/ui/error-codes/E0254.rs
index d166aff5657..e291268be86 100644
--- a/src/test/ui/error-codes/E0254.rs
+++ b/src/test/ui/error-codes/E0254.rs
@@ -1,4 +1,4 @@
-#![allow(unused_extern_crates, non_camel_case_types)]
+#![allow(non_camel_case_types)]
 
 extern crate alloc;
 
diff --git a/src/test/ui/error-codes/E0259.rs b/src/test/ui/error-codes/E0259.rs
index c83561be9c6..e7e94d58635 100644
--- a/src/test/ui/error-codes/E0259.rs
+++ b/src/test/ui/error-codes/E0259.rs
@@ -1,5 +1,4 @@
 #![feature(rustc_private)]
-#![allow(unused_extern_crates)]
 
 extern crate alloc;
 
diff --git a/src/test/ui/error-codes/E0259.stderr b/src/test/ui/error-codes/E0259.stderr
index fd6a4087aec..4a48a4d5541 100644
--- a/src/test/ui/error-codes/E0259.stderr
+++ b/src/test/ui/error-codes/E0259.stderr
@@ -1,5 +1,5 @@
 error[E0259]: the name `alloc` is defined multiple times
-  --> $DIR/E0259.rs:6:1
+  --> $DIR/E0259.rs:5:1
    |
 LL | extern crate alloc;
    | ------------------- previous import of the extern crate `alloc` here
diff --git a/src/test/ui/error-codes/E0260.rs b/src/test/ui/error-codes/E0260.rs
index 73b8934159f..f7eb220b08f 100644
--- a/src/test/ui/error-codes/E0260.rs
+++ b/src/test/ui/error-codes/E0260.rs
@@ -1,5 +1,3 @@
-#![allow(unused_extern_crates)]
-
 extern crate alloc;
 
 mod alloc {
diff --git a/src/test/ui/error-codes/E0260.stderr b/src/test/ui/error-codes/E0260.stderr
index 7d0b3022914..737b20b91ec 100644
--- a/src/test/ui/error-codes/E0260.stderr
+++ b/src/test/ui/error-codes/E0260.stderr
@@ -1,5 +1,5 @@
 error[E0260]: the name `alloc` is defined multiple times
-  --> $DIR/E0260.rs:5:1
+  --> $DIR/E0260.rs:3:1
    |
 LL | extern crate alloc;
    | ------------------- previous import of the extern crate `alloc` here
diff --git a/src/test/ui/issues/issue-36881.rs b/src/test/ui/issues/issue-36881.rs
index 2b0508d08ea..04313872d27 100644
--- a/src/test/ui/issues/issue-36881.rs
+++ b/src/test/ui/issues/issue-36881.rs
@@ -1,7 +1,6 @@
 // aux-build:issue-36881-aux.rs
 
 fn main() {
-    #[allow(unused_extern_crates)]
     extern crate issue_36881_aux;
     use issue_36881_aux::Foo; //~ ERROR unresolved import
 }
diff --git a/src/test/ui/issues/issue-36881.stderr b/src/test/ui/issues/issue-36881.stderr
index 2ec636fde60..07d2c99d7d2 100644
--- a/src/test/ui/issues/issue-36881.stderr
+++ b/src/test/ui/issues/issue-36881.stderr
@@ -1,5 +1,5 @@
 error[E0432]: unresolved import `issue_36881_aux`
-  --> $DIR/issue-36881.rs:6:9
+  --> $DIR/issue-36881.rs:5:9
    |
 LL |     use issue_36881_aux::Foo;
    |         ^^^^^^^^^^^^^^^ maybe a missing `extern crate issue_36881_aux;`?
diff --git a/src/test/ui/lint/lint-stability-deprecated.rs b/src/test/ui/lint/lint-stability-deprecated.rs
index 652fd04bdf5..5e747467a12 100644
--- a/src/test/ui/lint/lint-stability-deprecated.rs
+++ b/src/test/ui/lint/lint-stability-deprecated.rs
@@ -5,7 +5,6 @@
 // aux-build:stability-cfg2.rs
 // ignore-tidy-linelength
 #![warn(deprecated)]
-#![allow(dead_code, unused_extern_crates)]
 #![feature(staged_api, unstable_test_feature)]
 
 #![stable(feature = "rust1", since = "1.0.0")]
diff --git a/src/test/ui/lint/lint-stability-deprecated.stderr b/src/test/ui/lint/lint-stability-deprecated.stderr
index 811004ee12c..8132a66df8a 100644
--- a/src/test/ui/lint/lint-stability-deprecated.stderr
+++ b/src/test/ui/lint/lint-stability-deprecated.stderr
@@ -1,5 +1,5 @@
 warning: use of deprecated item 'lint_stability::deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:26:9
+  --> $DIR/lint-stability-deprecated.rs:25:9
    |
 LL |         deprecated();
    |         ^^^^^^^^^^
@@ -11,625 +11,625 @@ LL | #![warn(deprecated)]
    |         ^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:31:9
+  --> $DIR/lint-stability-deprecated.rs:30:9
    |
 LL |         Trait::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:33:9
+  --> $DIR/lint-stability-deprecated.rs:32:9
    |
 LL |         <Foo as Trait>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:35:9
+  --> $DIR/lint-stability-deprecated.rs:34:9
    |
 LL |         deprecated_text();
    |         ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:40:9
+  --> $DIR/lint-stability-deprecated.rs:39:9
    |
 LL |         Trait::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:42:9
+  --> $DIR/lint-stability-deprecated.rs:41:9
    |
 LL |         <Foo as Trait>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:44:9
+  --> $DIR/lint-stability-deprecated.rs:43:9
    |
 LL |         deprecated_unstable();
    |         ^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:49:9
+  --> $DIR/lint-stability-deprecated.rs:48:9
    |
 LL |         Trait::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:51:9
+  --> $DIR/lint-stability-deprecated.rs:50:9
    |
 LL |         <Foo as Trait>::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:53:9
+  --> $DIR/lint-stability-deprecated.rs:52:9
    |
 LL |         deprecated_unstable_text();
    |         ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:58:9
+  --> $DIR/lint-stability-deprecated.rs:57:9
    |
 LL |         Trait::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:60:9
+  --> $DIR/lint-stability-deprecated.rs:59:9
    |
 LL |         <Foo as Trait>::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedStruct': text
-  --> $DIR/lint-stability-deprecated.rs:107:17
+  --> $DIR/lint-stability-deprecated.rs:106:17
    |
 LL |         let _ = DeprecatedStruct {
    |                 ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedUnstableStruct': text
-  --> $DIR/lint-stability-deprecated.rs:110:17
+  --> $DIR/lint-stability-deprecated.rs:109:17
    |
 LL |         let _ = DeprecatedUnstableStruct {
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedUnitStruct': text
-  --> $DIR/lint-stability-deprecated.rs:117:17
+  --> $DIR/lint-stability-deprecated.rs:116:17
    |
 LL |         let _ = DeprecatedUnitStruct;
    |                 ^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedUnstableUnitStruct': text
-  --> $DIR/lint-stability-deprecated.rs:118:17
+  --> $DIR/lint-stability-deprecated.rs:117:17
    |
 LL |         let _ = DeprecatedUnstableUnitStruct;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Enum::DeprecatedVariant': text
-  --> $DIR/lint-stability-deprecated.rs:122:17
+  --> $DIR/lint-stability-deprecated.rs:121:17
    |
 LL |         let _ = Enum::DeprecatedVariant;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Enum::DeprecatedUnstableVariant': text
-  --> $DIR/lint-stability-deprecated.rs:123:17
+  --> $DIR/lint-stability-deprecated.rs:122:17
    |
 LL |         let _ = Enum::DeprecatedUnstableVariant;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedTupleStruct': text
-  --> $DIR/lint-stability-deprecated.rs:127:17
+  --> $DIR/lint-stability-deprecated.rs:126:17
    |
 LL |         let _ = DeprecatedTupleStruct (1);
    |                 ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedUnstableTupleStruct': text
-  --> $DIR/lint-stability-deprecated.rs:128:17
+  --> $DIR/lint-stability-deprecated.rs:127:17
    |
 LL |         let _ = DeprecatedUnstableTupleStruct (1);
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:137:25
+  --> $DIR/lint-stability-deprecated.rs:136:25
    |
 LL |         macro_test_arg!(deprecated_text());
    |                         ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:138:25
+  --> $DIR/lint-stability-deprecated.rs:137:25
    |
 LL |         macro_test_arg!(deprecated_unstable_text());
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:139:41
+  --> $DIR/lint-stability-deprecated.rs:138:41
    |
 LL |         macro_test_arg!(macro_test_arg!(deprecated_text()));
    |                                         ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:144:9
+  --> $DIR/lint-stability-deprecated.rs:143:9
    |
 LL |         Trait::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:146:9
+  --> $DIR/lint-stability-deprecated.rs:145:9
    |
 LL |         <Foo as Trait>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:148:9
+  --> $DIR/lint-stability-deprecated.rs:147:9
    |
 LL |         Trait::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:150:9
+  --> $DIR/lint-stability-deprecated.rs:149:9
    |
 LL |         <Foo as Trait>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:152:9
+  --> $DIR/lint-stability-deprecated.rs:151:9
    |
 LL |         Trait::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:154:9
+  --> $DIR/lint-stability-deprecated.rs:153:9
    |
 LL |         <Foo as Trait>::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:156:9
+  --> $DIR/lint-stability-deprecated.rs:155:9
    |
 LL |         Trait::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:158:9
+  --> $DIR/lint-stability-deprecated.rs:157:9
    |
 LL |         <Foo as Trait>::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedTrait': text
-  --> $DIR/lint-stability-deprecated.rs:186:10
+  --> $DIR/lint-stability-deprecated.rs:185:10
    |
 LL |     impl DeprecatedTrait for S {}
    |          ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedTrait': text
-  --> $DIR/lint-stability-deprecated.rs:188:25
+  --> $DIR/lint-stability-deprecated.rs:187:25
    |
 LL |     trait LocalTrait2 : DeprecatedTrait { }
    |                         ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'inheritance::inherited_stability::unstable_mod::deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:207:9
+  --> $DIR/lint-stability-deprecated.rs:206:9
    |
 LL |         unstable_mod::deprecated();
    |         ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:329:9
+  --> $DIR/lint-stability-deprecated.rs:328:9
    |
 LL |         deprecated();
    |         ^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:334:9
+  --> $DIR/lint-stability-deprecated.rs:333:9
    |
 LL |         Trait::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:336:9
+  --> $DIR/lint-stability-deprecated.rs:335:9
    |
 LL |         <Foo as Trait>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:338:9
+  --> $DIR/lint-stability-deprecated.rs:337:9
    |
 LL |         deprecated_text();
    |         ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:343:9
+  --> $DIR/lint-stability-deprecated.rs:342:9
    |
 LL |         Trait::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:345:9
+  --> $DIR/lint-stability-deprecated.rs:344:9
    |
 LL |         <Foo as Trait>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedStruct': text
-  --> $DIR/lint-stability-deprecated.rs:383:17
+  --> $DIR/lint-stability-deprecated.rs:382:17
    |
 LL |         let _ = DeprecatedStruct {
    |                 ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedUnitStruct': text
-  --> $DIR/lint-stability-deprecated.rs:390:17
+  --> $DIR/lint-stability-deprecated.rs:389:17
    |
 LL |         let _ = DeprecatedUnitStruct;
    |                 ^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Enum::DeprecatedVariant': text
-  --> $DIR/lint-stability-deprecated.rs:394:17
+  --> $DIR/lint-stability-deprecated.rs:393:17
    |
 LL |         let _ = Enum::DeprecatedVariant;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedTupleStruct': text
-  --> $DIR/lint-stability-deprecated.rs:398:17
+  --> $DIR/lint-stability-deprecated.rs:397:17
    |
 LL |         let _ = DeprecatedTupleStruct (1);
    |                 ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:405:9
+  --> $DIR/lint-stability-deprecated.rs:404:9
    |
 LL |         Trait::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:407:9
+  --> $DIR/lint-stability-deprecated.rs:406:9
    |
 LL |         <Foo as Trait>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:409:9
+  --> $DIR/lint-stability-deprecated.rs:408:9
    |
 LL |         Trait::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:411:9
+  --> $DIR/lint-stability-deprecated.rs:410:9
    |
 LL |         <Foo as Trait>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::test_fn_body::fn_in_body': text
-  --> $DIR/lint-stability-deprecated.rs:438:9
+  --> $DIR/lint-stability-deprecated.rs:437:9
    |
 LL |         fn_in_body();
    |         ^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedTrait': text
-  --> $DIR/lint-stability-deprecated.rs:458:10
+  --> $DIR/lint-stability-deprecated.rs:457:10
    |
 LL |     impl DeprecatedTrait for S { }
    |          ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedTrait': text
-  --> $DIR/lint-stability-deprecated.rs:460:24
+  --> $DIR/lint-stability-deprecated.rs:459:24
    |
 LL |     trait LocalTrait : DeprecatedTrait { }
    |                        ^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::test_method_body::fn_in_body': text
-  --> $DIR/lint-stability-deprecated.rs:446:13
+  --> $DIR/lint-stability-deprecated.rs:445:13
    |
 LL |             fn_in_body();
    |             ^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::TraitWithAssociatedTypes::TypeDeprecated': text
-  --> $DIR/lint-stability-deprecated.rs:99:48
+  --> $DIR/lint-stability-deprecated.rs:98:48
    |
 LL |         struct S2<T: TraitWithAssociatedTypes>(T::TypeDeprecated);
    |                                                ^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::TraitWithAssociatedTypes::TypeDeprecated': text
-  --> $DIR/lint-stability-deprecated.rs:103:13
+  --> $DIR/lint-stability-deprecated.rs:102:13
    |
 LL |             TypeDeprecated = u16,
    |             ^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:27:13
+  --> $DIR/lint-stability-deprecated.rs:26:13
    |
 LL |         foo.method_deprecated();
    |             ^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:28:9
+  --> $DIR/lint-stability-deprecated.rs:27:9
    |
 LL |         Foo::method_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:29:9
+  --> $DIR/lint-stability-deprecated.rs:28:9
    |
 LL |         <Foo>::method_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:30:13
+  --> $DIR/lint-stability-deprecated.rs:29:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:32:9
+  --> $DIR/lint-stability-deprecated.rs:31:9
    |
 LL |         <Foo>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:36:13
+  --> $DIR/lint-stability-deprecated.rs:35:13
    |
 LL |         foo.method_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:37:9
+  --> $DIR/lint-stability-deprecated.rs:36:9
    |
 LL |         Foo::method_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:38:9
+  --> $DIR/lint-stability-deprecated.rs:37:9
    |
 LL |         <Foo>::method_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:39:13
+  --> $DIR/lint-stability-deprecated.rs:38:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:41:9
+  --> $DIR/lint-stability-deprecated.rs:40:9
    |
 LL |         <Foo>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:45:13
+  --> $DIR/lint-stability-deprecated.rs:44:13
    |
 LL |         foo.method_deprecated_unstable();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:46:9
+  --> $DIR/lint-stability-deprecated.rs:45:9
    |
 LL |         Foo::method_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:47:9
+  --> $DIR/lint-stability-deprecated.rs:46:9
    |
 LL |         <Foo>::method_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:48:13
+  --> $DIR/lint-stability-deprecated.rs:47:13
    |
 LL |         foo.trait_deprecated_unstable();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:50:9
+  --> $DIR/lint-stability-deprecated.rs:49:9
    |
 LL |         <Foo>::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:54:13
+  --> $DIR/lint-stability-deprecated.rs:53:13
    |
 LL |         foo.method_deprecated_unstable_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:55:9
+  --> $DIR/lint-stability-deprecated.rs:54:9
    |
 LL |         Foo::method_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::MethodTester::method_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:56:9
+  --> $DIR/lint-stability-deprecated.rs:55:9
    |
 LL |         <Foo>::method_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:57:13
+  --> $DIR/lint-stability-deprecated.rs:56:13
    |
 LL |         foo.trait_deprecated_unstable_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:59:9
+  --> $DIR/lint-stability-deprecated.rs:58:9
    |
 LL |         <Foo>::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedStruct::i': text
-  --> $DIR/lint-stability-deprecated.rs:108:13
+  --> $DIR/lint-stability-deprecated.rs:107:13
    |
 LL |             i: 0
    |             ^^^^
 
 warning: use of deprecated item 'lint_stability::DeprecatedUnstableStruct::i': text
-  --> $DIR/lint-stability-deprecated.rs:112:13
+  --> $DIR/lint-stability-deprecated.rs:111:13
    |
 LL |             i: 0
    |             ^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:143:13
+  --> $DIR/lint-stability-deprecated.rs:142:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:145:9
+  --> $DIR/lint-stability-deprecated.rs:144:9
    |
 LL |         <Foo>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:147:13
+  --> $DIR/lint-stability-deprecated.rs:146:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:149:9
+  --> $DIR/lint-stability-deprecated.rs:148:9
    |
 LL |         <Foo>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:151:13
+  --> $DIR/lint-stability-deprecated.rs:150:13
    |
 LL |         foo.trait_deprecated_unstable();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:153:9
+  --> $DIR/lint-stability-deprecated.rs:152:9
    |
 LL |         <Foo>::trait_deprecated_unstable(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:155:13
+  --> $DIR/lint-stability-deprecated.rs:154:13
    |
 LL |         foo.trait_deprecated_unstable_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:157:9
+  --> $DIR/lint-stability-deprecated.rs:156:9
    |
 LL |         <Foo>::trait_deprecated_unstable_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:174:13
+  --> $DIR/lint-stability-deprecated.rs:173:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:175:13
+  --> $DIR/lint-stability-deprecated.rs:174:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable': text
-  --> $DIR/lint-stability-deprecated.rs:176:13
+  --> $DIR/lint-stability-deprecated.rs:175:13
    |
 LL |         foo.trait_deprecated_unstable();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'lint_stability::Trait::trait_deprecated_unstable_text': text
-  --> $DIR/lint-stability-deprecated.rs:177:13
+  --> $DIR/lint-stability-deprecated.rs:176:13
    |
 LL |         foo.trait_deprecated_unstable_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:330:13
+  --> $DIR/lint-stability-deprecated.rs:329:13
    |
 LL |         foo.method_deprecated();
    |             ^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:331:9
+  --> $DIR/lint-stability-deprecated.rs:330:9
    |
 LL |         Foo::method_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:332:9
+  --> $DIR/lint-stability-deprecated.rs:331:9
    |
 LL |         <Foo>::method_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:333:13
+  --> $DIR/lint-stability-deprecated.rs:332:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:335:9
+  --> $DIR/lint-stability-deprecated.rs:334:9
    |
 LL |         <Foo>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:339:13
+  --> $DIR/lint-stability-deprecated.rs:338:13
    |
 LL |         foo.method_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:340:9
+  --> $DIR/lint-stability-deprecated.rs:339:9
    |
 LL |         Foo::method_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::MethodTester::method_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:341:9
+  --> $DIR/lint-stability-deprecated.rs:340:9
    |
 LL |         <Foo>::method_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:342:13
+  --> $DIR/lint-stability-deprecated.rs:341:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:344:9
+  --> $DIR/lint-stability-deprecated.rs:343:9
    |
 LL |         <Foo>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::DeprecatedStruct::i': text
-  --> $DIR/lint-stability-deprecated.rs:385:13
+  --> $DIR/lint-stability-deprecated.rs:384:13
    |
 LL |             i: 0
    |             ^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:404:13
+  --> $DIR/lint-stability-deprecated.rs:403:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:406:9
+  --> $DIR/lint-stability-deprecated.rs:405:9
    |
 LL |         <Foo>::trait_deprecated(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:408:13
+  --> $DIR/lint-stability-deprecated.rs:407:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:410:9
+  --> $DIR/lint-stability-deprecated.rs:409:9
    |
 LL |         <Foo>::trait_deprecated_text(&foo);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated': text
-  --> $DIR/lint-stability-deprecated.rs:427:13
+  --> $DIR/lint-stability-deprecated.rs:426:13
    |
 LL |         foo.trait_deprecated();
    |             ^^^^^^^^^^^^^^^^
 
 warning: use of deprecated item 'this_crate::Trait::trait_deprecated_text': text
-  --> $DIR/lint-stability-deprecated.rs:428:13
+  --> $DIR/lint-stability-deprecated.rs:427:13
    |
 LL |         foo.trait_deprecated_text();
    |             ^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/macros/macro-use-bad-args-1.rs b/src/test/ui/macros/macro-use-bad-args-1.rs
index 061c5cc7b3c..ec0b64a1095 100644
--- a/src/test/ui/macros/macro-use-bad-args-1.rs
+++ b/src/test/ui/macros/macro-use-bad-args-1.rs
@@ -1,6 +1,5 @@
 #![no_std]
 
-#[allow(unused_extern_crates)]
 #[macro_use(foo(bar))]  //~ ERROR bad macro import
 extern crate std;
 
diff --git a/src/test/ui/macros/macro-use-bad-args-1.stderr b/src/test/ui/macros/macro-use-bad-args-1.stderr
index f403c8a3660..4e5482a518c 100644
--- a/src/test/ui/macros/macro-use-bad-args-1.stderr
+++ b/src/test/ui/macros/macro-use-bad-args-1.stderr
@@ -1,5 +1,5 @@
 error[E0466]: bad macro import
-  --> $DIR/macro-use-bad-args-1.rs:4:13
+  --> $DIR/macro-use-bad-args-1.rs:3:13
    |
 LL | #[macro_use(foo(bar))]
    |             ^^^^^^^^
diff --git a/src/test/ui/macros/macro-use-bad-args-2.rs b/src/test/ui/macros/macro-use-bad-args-2.rs
index cb231ce292a..c5f8f62c186 100644
--- a/src/test/ui/macros/macro-use-bad-args-2.rs
+++ b/src/test/ui/macros/macro-use-bad-args-2.rs
@@ -1,6 +1,5 @@
 #![no_std]
 
-#[allow(unused_extern_crates)]
 #[macro_use(foo="bar")]  //~ ERROR bad macro import
 extern crate std;
 
diff --git a/src/test/ui/macros/macro-use-bad-args-2.stderr b/src/test/ui/macros/macro-use-bad-args-2.stderr
index 93617edeeae..c958104eac4 100644
--- a/src/test/ui/macros/macro-use-bad-args-2.stderr
+++ b/src/test/ui/macros/macro-use-bad-args-2.stderr
@@ -1,5 +1,5 @@
 error[E0466]: bad macro import
-  --> $DIR/macro-use-bad-args-2.rs:4:13
+  --> $DIR/macro-use-bad-args-2.rs:3:13
    |
 LL | #[macro_use(foo="bar")]
    |             ^^^^^^^^^
diff --git a/src/test/ui/no-std-inject.rs b/src/test/ui/no-std-inject.rs
index 09879c791f8..e9664a4dd48 100644
--- a/src/test/ui/no-std-inject.rs
+++ b/src/test/ui/no-std-inject.rs
@@ -1,5 +1,4 @@
 #![no_std]
-#![allow(unused_extern_crates)]
 
 extern crate core; //~ ERROR: the name `core` is defined multiple times
 extern crate std;
diff --git a/src/test/ui/no-std-inject.stderr b/src/test/ui/no-std-inject.stderr
index 975f5c2f50c..a82931e0fbd 100644
--- a/src/test/ui/no-std-inject.stderr
+++ b/src/test/ui/no-std-inject.stderr
@@ -1,5 +1,5 @@
 error[E0259]: the name `core` is defined multiple times
-  --> $DIR/no-std-inject.rs:4:1
+  --> $DIR/no-std-inject.rs:3:1
    |
 LL | extern crate core;
    | ^^^^^^^^^^^^^^^^^^ `core` reimported here
diff --git a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.rs b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.rs
index e4bb0d32942..3cb6ab52e0a 100644
--- a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.rs
+++ b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.rs
@@ -1,4 +1,3 @@
-#[allow(unused_extern_crates)]
 extern crate std;
 //~^ ERROR the name `std` is defined multiple times
 
diff --git a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
index 9e43cd4839f..ea6cb9eb00d 100644
--- a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
+++ b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr
@@ -1,8 +1,4 @@
 error[E0259]: the name `std` is defined multiple times
-  --> $DIR/resolve-conflict-extern-crate-vs-extern-crate.rs:2:1
-   |
-LL | extern crate std;
-   | ^^^^^^^^^^^^^^^^^ `std` reimported here
    |
    = note: `std` 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
diff --git a/src/test/ui/resolve_self_super_hint.rs b/src/test/ui/resolve_self_super_hint.rs
index a9423830d90..a14ec5b7290 100644
--- a/src/test/ui/resolve_self_super_hint.rs
+++ b/src/test/ui/resolve_self_super_hint.rs
@@ -1,5 +1,3 @@
-#![allow(unused_extern_crates)]
-
 mod a {
     extern crate alloc;
     use alloc::HashMap;
diff --git a/src/test/ui/resolve_self_super_hint.stderr b/src/test/ui/resolve_self_super_hint.stderr
index 14cdae97d14..bc862553b5b 100644
--- a/src/test/ui/resolve_self_super_hint.stderr
+++ b/src/test/ui/resolve_self_super_hint.stderr
@@ -1,17 +1,17 @@
 error[E0432]: unresolved import `alloc`
-  --> $DIR/resolve_self_super_hint.rs:5:9
+  --> $DIR/resolve_self_super_hint.rs:3:9
    |
 LL |     use alloc::HashMap;
    |         ^^^^^ help: a similar path exists: `self::alloc`
 
 error[E0432]: unresolved import `alloc`
-  --> $DIR/resolve_self_super_hint.rs:10:13
+  --> $DIR/resolve_self_super_hint.rs:8:13
    |
 LL |         use alloc::HashMap;
    |             ^^^^^ help: a similar path exists: `super::alloc`
 
 error[E0432]: unresolved import `alloc`
-  --> $DIR/resolve_self_super_hint.rs:15:17
+  --> $DIR/resolve_self_super_hint.rs:13:17
    |
 LL |             use alloc::HashMap;
    |                 ^^^^^
@@ -20,7 +20,7 @@ LL |             use alloc::HashMap;
    |                 help: a similar path exists: `a::alloc`
 
 error[E0432]: unresolved import `alloc`
-  --> $DIR/resolve_self_super_hint.rs:20:21
+  --> $DIR/resolve_self_super_hint.rs:18:21
    |
 LL |                 use alloc::HashMap;
    |                     ^^^^^
diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs
index 20176557bcb..a935bc6a4de 100644
--- a/src/tools/build-manifest/src/main.rs
+++ b/src/tools/build-manifest/src/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 use toml;
 use serde::Serialize;
 
diff --git a/src/tools/cargotest/main.rs b/src/tools/cargotest/main.rs
index 14035eedbb4..729287faeb6 100644
--- a/src/tools/cargotest/main.rs
+++ b/src/tools/cargotest/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 use std::env;
 use std::process::Command;
 use std::path::{Path, PathBuf};
diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs
index 31360c000ce..d709475541a 100644
--- a/src/tools/compiletest/src/main.rs
+++ b/src/tools/compiletest/src/main.rs
@@ -1,7 +1,6 @@
 #![crate_name = "compiletest"]
 #![feature(test)]
 #![feature(vec_remove_item)]
-#![deny(warnings, rust_2018_idioms)]
 
 extern crate test;
 
diff --git a/src/tools/error_index_generator/main.rs b/src/tools/error_index_generator/main.rs
index 3e7c7ab6379..c31a5069e46 100644
--- a/src/tools/error_index_generator/main.rs
+++ b/src/tools/error_index_generator/main.rs
@@ -1,7 +1,5 @@
 #![feature(rustc_private)]
 
-#![deny(rust_2018_idioms)]
-
 extern crate env_logger;
 extern crate syntax;
 extern crate serialize as rustc_serialize;
diff --git a/src/tools/linkchecker/main.rs b/src/tools/linkchecker/main.rs
index e2bcd4d40af..49c149afe17 100644
--- a/src/tools/linkchecker/main.rs
+++ b/src/tools/linkchecker/main.rs
@@ -14,8 +14,6 @@
 //! A few whitelisted exceptions are allowed as there's known bugs in rustdoc,
 //! but this should catch the majority of "broken link" cases.
 
-#![deny(rust_2018_idioms)]
-
 use std::collections::hash_map::Entry;
 use std::collections::{HashMap, HashSet};
 use std::env;
diff --git a/src/tools/remote-test-client/src/main.rs b/src/tools/remote-test-client/src/main.rs
index f42de441767..a1d52251263 100644
--- a/src/tools/remote-test-client/src/main.rs
+++ b/src/tools/remote-test-client/src/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 /// This is a small client program intended to pair with `remote-test-server` in
 /// this repository. This client connects to the server over TCP and is used to
 /// push artifacts and run tests on the server instead of locally.
diff --git a/src/tools/remote-test-server/src/main.rs b/src/tools/remote-test-server/src/main.rs
index e1270489d31..d2238730196 100644
--- a/src/tools/remote-test-server/src/main.rs
+++ b/src/tools/remote-test-server/src/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 /// This is a small server which is intended to run inside of an emulator or
 /// on a remote test device. This server pairs with the `remote-test-client`
 /// program in this repository. The `remote-test-client` connects to this
diff --git a/src/tools/rustbook/src/main.rs b/src/tools/rustbook/src/main.rs
index 4689bee3e13..6bce7c3a978 100644
--- a/src/tools/rustbook/src/main.rs
+++ b/src/tools/rustbook/src/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 use clap::{crate_version};
 
 use std::env;
diff --git a/src/tools/rustc-std-workspace-core/lib.rs b/src/tools/rustc-std-workspace-core/lib.rs
index 99d51bc2d56..14327852561 100644
--- a/src/tools/rustc-std-workspace-core/lib.rs
+++ b/src/tools/rustc-std-workspace-core/lib.rs
@@ -1,5 +1,4 @@
 #![feature(no_core)]
 #![no_core]
-#![deny(rust_2018_idioms)]
 
 pub use core::*;
diff --git a/src/tools/rustdoc-themes/main.rs b/src/tools/rustdoc-themes/main.rs
index 63432a6585a..616b5444832 100644
--- a/src/tools/rustdoc-themes/main.rs
+++ b/src/tools/rustdoc-themes/main.rs
@@ -1,5 +1,3 @@
-#![deny(rust_2018_idioms)]
-
 use std::env::args;
 use std::fs::read_dir;
 use std::path::Path;
diff --git a/src/tools/rustdoc/main.rs b/src/tools/rustdoc/main.rs
index 8171708e99d..99573cadb95 100644
--- a/src/tools/rustdoc/main.rs
+++ b/src/tools/rustdoc/main.rs
@@ -1,3 +1 @@
-#![deny(rust_2018_idioms)]
-
 fn main() { rustdoc::main() }
diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs
index 19f02f0a96e..3acb50547da 100644
--- a/src/tools/tidy/src/main.rs
+++ b/src/tools/tidy/src/main.rs
@@ -4,8 +4,6 @@
 //! etc. This is run by default on `make check` and as part of the auto
 //! builders.
 
-#![deny(warnings)]
-
 use tidy::*;
 
 use std::process;
diff --git a/src/tools/unstable-book-gen/src/main.rs b/src/tools/unstable-book-gen/src/main.rs
index e92d174a4e1..036349ea1c8 100644
--- a/src/tools/unstable-book-gen/src/main.rs
+++ b/src/tools/unstable-book-gen/src/main.rs
@@ -1,10 +1,5 @@
 //! Auto-generate stub docs for the unstable book
 
-#![deny(rust_2018_idioms)]
-#![deny(warnings)]
-
-
-
 use tidy::features::{Feature, Features, collect_lib_features, collect_lang_features};
 use tidy::unstable_book::{collect_unstable_feature_names, collect_unstable_book_section_file_names,
                           PATH_STR, LANG_FEATURES_DIR, LIB_FEATURES_DIR};