diff --git a/README.md b/README.md
index 9dd41f6513c2..14a5e56cdea5 100644
--- a/README.md
+++ b/README.md
@@ -130,16 +130,15 @@ You can add options to your code to `allow`/`warn`/`deny` Clippy lints:
 
 Note: `deny` produces errors instead of warnings.
 
-Note: To use the new `clippy::lint_name` syntax, `#![feature(tool_lints)]` has to be activated 
-currently. If you want to compile your code with the stable toolchain you can use a `cfg_attr` to 
+Note: To use the new `clippy::lint_name` syntax, a recent compiler has to be used
+currently. If you want to compile your code with the stable toolchain you can use a `cfg_attr` to
 activate the `tool_lints` feature:
 ```rust
-#![cfg_attr(feature = "cargo-clippy", feature(tool_lints))]
 #![cfg_attr(feature = "cargo-clippy", allow(clippy::lint_name))]
 ```
 
-For this to work you have to use Clippy on the nightly toolchain: `cargo +nightly clippy`. If you 
-want to use Clippy with the stable toolchain, you can stick to the old unscoped method to 
+For this to work you have to use Clippy on the nightly toolchain: `cargo +nightly clippy`. If you
+want to use Clippy with the stable toolchain, you can stick to the old unscoped method to
 enable/disable Clippy lints until `tool_lints` are stable:
 ```rust
 #![cfg_attr(feature = "cargo-clippy", allow(clippy_lint))]
diff --git a/clippy_dev/src/lib.rs b/clippy_dev/src/lib.rs
index 0e29db9bef04..eee9089e7c4b 100644
--- a/clippy_dev/src/lib.rs
+++ b/clippy_dev/src/lib.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![allow(clippy::default_hash_types)]
 
 use itertools::Itertools;
diff --git a/clippy_lints/src/lib.rs b/clippy_lints/src/lib.rs
index af69a6284f33..c343cf364f63 100644
--- a/clippy_lints/src/lib.rs
+++ b/clippy_lints/src/lib.rs
@@ -15,10 +15,10 @@
 #![feature(slice_patterns)]
 #![feature(stmt_expr_attributes)]
 #![feature(range_contains)]
-#![allow(unknown_lints, clippy::shadow_reuse, clippy::missing_docs_in_private_items)]
+#![allow(clippy::shadow_reuse, clippy::missing_docs_in_private_items)]
 #![recursion_limit = "256"]
 #![feature(macro_at_most_once_rep)]
-#![feature(tool_lints)]
+
 #![warn(rust_2018_idioms, trivial_casts, trivial_numeric_casts)]
 #![feature(crate_visibility_modifier)]
 #![feature(try_from)]
diff --git a/src/driver.rs b/src/driver.rs
index 0619b3ae0d9c..9abe6bd91de5 100644
--- a/src/driver.rs
+++ b/src/driver.rs
@@ -11,9 +11,9 @@
 // error-pattern:yummy
 #![feature(box_syntax)]
 #![feature(rustc_private)]
-#![feature(tool_lints)]
+
 #![feature(try_from)]
-#![allow(unknown_lints, clippy::missing_docs_in_private_items)]
+#![allow(clippy::missing_docs_in_private_items)]
 
 // FIXME: switch to something more ergonomic here, once available.
 // (currently there is no way to opt into sysroot crates w/o `extern crate`)
diff --git a/src/lib.rs b/src/lib.rs
index 58158f92e65b..97f1f81091d7 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -11,8 +11,7 @@
 // error-pattern:cargo-clippy
 #![feature(plugin_registrar)]
 #![feature(rustc_private)]
-#![feature(tool_lints)]
-#![allow(unknown_lints)]
+
 #![allow(clippy::missing_docs_in_private_items)]
 #![warn(rust_2018_idioms)]
 
diff --git a/src/main.rs b/src/main.rs
index 11c259b4d6be..4a1dc487cea0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -11,8 +11,8 @@
 // error-pattern:yummy
 #![feature(box_syntax)]
 #![feature(rustc_private)]
-#![feature(tool_lints)]
-#![allow(unknown_lints, clippy::missing_docs_in_private_items)]
+
+#![allow(clippy::missing_docs_in_private_items)]
 
 use rustc_tools_util::*;
 
diff --git a/tests/run-pass/enum-glob-import-crate.rs b/tests/run-pass/enum-glob-import-crate.rs
index c1e1d9645d10..df8b32cde2bf 100644
--- a/tests/run-pass/enum-glob-import-crate.rs
+++ b/tests/run-pass/enum-glob-import-crate.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::all)]
 #![allow(unused_imports)]
diff --git a/tests/run-pass/ice-1588.rs b/tests/run-pass/ice-1588.rs
index db5a6629a2b8..a54c77cce73c 100644
--- a/tests/run-pass/ice-1588.rs
+++ b/tests/run-pass/ice-1588.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::all)]
 
diff --git a/tests/run-pass/ice-1969.rs b/tests/run-pass/ice-1969.rs
index 0b4a0f4dfbfb..848d9743dcd9 100644
--- a/tests/run-pass/ice-1969.rs
+++ b/tests/run-pass/ice-1969.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::all)]
 
diff --git a/tests/run-pass/ice-2499.rs b/tests/run-pass/ice-2499.rs
index 9716e5500c7e..1a973d737ba3 100644
--- a/tests/run-pass/ice-2499.rs
+++ b/tests/run-pass/ice-2499.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(dead_code, clippy::char_lit_as_u8, clippy::needless_bool)]
 
diff --git a/tests/run-pass/ice-2760.rs b/tests/run-pass/ice-2760.rs
index ad517b84c2c4..7a83094ea768 100644
--- a/tests/run-pass/ice-2760.rs
+++ b/tests/run-pass/ice-2760.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused_variables, clippy::blacklisted_name,
          clippy::needless_pass_by_value, dead_code)]
diff --git a/tests/run-pass/ice-2774.rs b/tests/run-pass/ice-2774.rs
index 6ed09a4a0088..67a77340d915 100644
--- a/tests/run-pass/ice-2774.rs
+++ b/tests/run-pass/ice-2774.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::collections::HashSet;
 
diff --git a/tests/run-pass/ice-700.rs b/tests/run-pass/ice-700.rs
index 3252381e1fdb..cb6ba21e72b7 100644
--- a/tests/run-pass/ice-700.rs
+++ b/tests/run-pass/ice-700.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::all)]
 
diff --git a/tests/run-pass/ice_exacte_size.rs b/tests/run-pass/ice_exacte_size.rs
index 8a905a401e58..74eda792e756 100644
--- a/tests/run-pass/ice_exacte_size.rs
+++ b/tests/run-pass/ice_exacte_size.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::all)]
 
diff --git a/tests/run-pass/if_same_then_else.rs b/tests/run-pass/if_same_then_else.rs
index 4f0f581063a6..cc95262fe3ce 100644
--- a/tests/run-pass/if_same_then_else.rs
+++ b/tests/run-pass/if_same_then_else.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::if_same_then_else)]
 
diff --git a/tests/run-pass/match_same_arms_const.rs b/tests/run-pass/match_same_arms_const.rs
index 1e36baf059bd..bd180e9cad99 100644
--- a/tests/run-pass/match_same_arms_const.rs
+++ b/tests/run-pass/match_same_arms_const.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::match_same_arms)]
 
diff --git a/tests/run-pass/mut_mut_macro.rs b/tests/run-pass/mut_mut_macro.rs
index afc3c9eda157..8859009479cd 100644
--- a/tests/run-pass/mut_mut_macro.rs
+++ b/tests/run-pass/mut_mut_macro.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::mut_mut, clippy::zero_ptr, clippy::cmp_nan)]
 #![allow(dead_code)]
diff --git a/tests/run-pass/needless_borrow_fp.rs b/tests/run-pass/needless_borrow_fp.rs
index 6a70849d9cad..ad4b04864e47 100644
--- a/tests/run-pass/needless_borrow_fp.rs
+++ b/tests/run-pass/needless_borrow_fp.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[deny(clippy::all)]
 
diff --git a/tests/run-pass/needless_lifetimes_impl_trait.rs b/tests/run-pass/needless_lifetimes_impl_trait.rs
index b27bb284e212..0514d7ab0089 100644
--- a/tests/run-pass/needless_lifetimes_impl_trait.rs
+++ b/tests/run-pass/needless_lifetimes_impl_trait.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::needless_lifetimes)]
 #![allow(dead_code)]
diff --git a/tests/run-pass/regressions.rs b/tests/run-pass/regressions.rs
index a589922218d1..9be3bab185c4 100644
--- a/tests/run-pass/regressions.rs
+++ b/tests/run-pass/regressions.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::blacklisted_name)]
 
diff --git a/tests/run-pass/single-match-else.rs b/tests/run-pass/single-match-else.rs
index 54c282451b8f..cf032c657031 100644
--- a/tests/run-pass/single-match-else.rs
+++ b/tests/run-pass/single-match-else.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::single_match_else)]
 
diff --git a/tests/run-pass/used_underscore_binding_macro.rs b/tests/run-pass/used_underscore_binding_macro.rs
index b700ab90a687..68bd69220620 100644
--- a/tests/run-pass/used_underscore_binding_macro.rs
+++ b/tests/run-pass/used_underscore_binding_macro.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::useless_attribute)] //issue #2910
 
diff --git a/tests/ui-toml/toml_blacklist/conf_french_blacklisted_name.rs b/tests/ui-toml/toml_blacklist/conf_french_blacklisted_name.rs
index 4f0cd1659f7d..ad81b82b2c53 100644
--- a/tests/ui-toml/toml_blacklist/conf_french_blacklisted_name.rs
+++ b/tests/ui-toml/toml_blacklist/conf_french_blacklisted_name.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code)]
diff --git a/tests/ui-toml/toml_trivially_copy/test.rs b/tests/ui-toml/toml_trivially_copy/test.rs
index 081dbf9b060e..eb09d6dfc5c6 100644
--- a/tests/ui-toml/toml_trivially_copy/test.rs
+++ b/tests/ui-toml/toml_trivially_copy/test.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![allow(clippy::many_single_char_names)]
 
 #[derive(Copy, Clone)]
diff --git a/tests/ui/absurd-extreme-comparisons.rs b/tests/ui/absurd-extreme-comparisons.rs
index a88e57a5c43b..b219cb0397be 100644
--- a/tests/ui/absurd-extreme-comparisons.rs
+++ b/tests/ui/absurd-extreme-comparisons.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::absurd_extreme_comparisons)]
diff --git a/tests/ui/approx_const.rs b/tests/ui/approx_const.rs
index ea023b8a7a2e..b2f50cc2ce36 100644
--- a/tests/ui/approx_const.rs
+++ b/tests/ui/approx_const.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::approx_constant)]
diff --git a/tests/ui/arithmetic.rs b/tests/ui/arithmetic.rs
index a5bf8c9280e9..ff550c9593c9 100644
--- a/tests/ui/arithmetic.rs
+++ b/tests/ui/arithmetic.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::integer_arithmetic, clippy::float_arithmetic)]
diff --git a/tests/ui/assign_ops.rs b/tests/ui/assign_ops.rs
index 5d791ba8f545..419e63b2c62b 100644
--- a/tests/ui/assign_ops.rs
+++ b/tests/ui/assign_ops.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[allow(dead_code, unused_assignments)]
 #[warn(clippy::assign_op_pattern)]
diff --git a/tests/ui/assign_ops2.rs b/tests/ui/assign_ops2.rs
index 60a9d2fb73e0..4f9fbc80aaa1 100644
--- a/tests/ui/assign_ops2.rs
+++ b/tests/ui/assign_ops2.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[allow(unused_assignments)]
diff --git a/tests/ui/attrs.rs b/tests/ui/attrs.rs
index 9af9c0e619a1..1d0c23905bd8 100644
--- a/tests/ui/attrs.rs
+++ b/tests/ui/attrs.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::inline_always, clippy::deprecated_semver)]
diff --git a/tests/ui/bit_masks.rs b/tests/ui/bit_masks.rs
index 4110f6ced850..db5a6885c9e6 100644
--- a/tests/ui/bit_masks.rs
+++ b/tests/ui/bit_masks.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 const THREE_BITS : i64 = 7;
diff --git a/tests/ui/blacklisted_name.rs b/tests/ui/blacklisted_name.rs
index be58a8fb601a..285438810d9c 100644
--- a/tests/ui/blacklisted_name.rs
+++ b/tests/ui/blacklisted_name.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code, clippy::similar_names, clippy::single_match, clippy::toplevel_ref_arg, unused_mut, unused_variables)]
diff --git a/tests/ui/block_in_if_condition.rs b/tests/ui/block_in_if_condition.rs
index 67bd778acaa9..bb87315bcc47 100644
--- a/tests/ui/block_in_if_condition.rs
+++ b/tests/ui/block_in_if_condition.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::block_in_if_condition_expr)]
diff --git a/tests/ui/bool_comparison.rs b/tests/ui/bool_comparison.rs
index 1d9756bc39b0..c213414a63da 100644
--- a/tests/ui/bool_comparison.rs
+++ b/tests/ui/bool_comparison.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::bool_comparison)]
diff --git a/tests/ui/booleans.rs b/tests/ui/booleans.rs
index 556344c77a29..962f03dc9cdb 100644
--- a/tests/ui/booleans.rs
+++ b/tests/ui/booleans.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::nonminimal_bool, clippy::logic_bug)]
 
diff --git a/tests/ui/borrow_box.rs b/tests/ui/borrow_box.rs
index 7c668c33c83a..dbcd42a692ce 100644
--- a/tests/ui/borrow_box.rs
+++ b/tests/ui/borrow_box.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![deny(clippy::borrowed_box)]
diff --git a/tests/ui/box_vec.rs b/tests/ui/box_vec.rs
index 78174d2cd8fa..bf505c85abc7 100644
--- a/tests/ui/box_vec.rs
+++ b/tests/ui/box_vec.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/builtin-type-shadow.rs b/tests/ui/builtin-type-shadow.rs
index a6d0f82a7d6e..e43a2789ce1d 100644
--- a/tests/ui/builtin-type-shadow.rs
+++ b/tests/ui/builtin-type-shadow.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::builtin_type_shadow)]
 
diff --git a/tests/ui/bytecount.rs b/tests/ui/bytecount.rs
index 71a6e01219e2..170666d1f18f 100644
--- a/tests/ui/bytecount.rs
+++ b/tests/ui/bytecount.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[deny(clippy::naive_bytecount)]
diff --git a/tests/ui/cast.rs b/tests/ui/cast.rs
index 2fb865b12b89..9976a4aa96a0 100644
--- a/tests/ui/cast.rs
+++ b/tests/ui/cast.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::cast_precision_loss, clippy::cast_possible_truncation, clippy::cast_sign_loss, clippy::cast_possible_wrap, clippy::cast_lossless)]
diff --git a/tests/ui/cast_alignment.rs b/tests/ui/cast_alignment.rs
index b6e01d21288f..a1a2e1c9a8fd 100644
--- a/tests/ui/cast_alignment.rs
+++ b/tests/ui/cast_alignment.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 //! Test casts for alignment issues
 
diff --git a/tests/ui/cast_lossless_float.rs b/tests/ui/cast_lossless_float.rs
index aa78a62f88bf..468774dd88be 100644
--- a/tests/ui/cast_lossless_float.rs
+++ b/tests/ui/cast_lossless_float.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[warn(clippy::cast_lossless)]
 #[allow(clippy::no_effect, clippy::unnecessary_operation)]
diff --git a/tests/ui/cast_lossless_integer.rs b/tests/ui/cast_lossless_integer.rs
index ef430d57e1e2..4f7432de6206 100644
--- a/tests/ui/cast_lossless_integer.rs
+++ b/tests/ui/cast_lossless_integer.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #[warn(clippy::cast_lossless)]
 #[allow(clippy::no_effect, clippy::unnecessary_operation)]
 fn main() {
diff --git a/tests/ui/cast_size.rs b/tests/ui/cast_size.rs
index e8b0f4a5b823..fddf9669a8f7 100644
--- a/tests/ui/cast_size.rs
+++ b/tests/ui/cast_size.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[warn(clippy::cast_precision_loss, clippy::cast_possible_truncation, clippy::cast_sign_loss, clippy::cast_possible_wrap, clippy::cast_lossless)]
 #[allow(clippy::no_effect, clippy::unnecessary_operation)]
diff --git a/tests/ui/char_lit_as_u8.rs b/tests/ui/char_lit_as_u8.rs
index 8fda473e351a..d684fcf57467 100644
--- a/tests/ui/char_lit_as_u8.rs
+++ b/tests/ui/char_lit_as_u8.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::char_lit_as_u8)]
diff --git a/tests/ui/checked_unwrap.rs b/tests/ui/checked_unwrap.rs
index ed9651b1872a..383fd82240bc 100644
--- a/tests/ui/checked_unwrap.rs
+++ b/tests/ui/checked_unwrap.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::panicking_unwrap, clippy::unnecessary_unwrap)]
 #![allow(clippy::if_same_then_else)]
diff --git a/tests/ui/clone_on_copy_mut.rs b/tests/ui/clone_on_copy_mut.rs
index ad37d45d36f6..81d70eb9458a 100644
--- a/tests/ui/clone_on_copy_mut.rs
+++ b/tests/ui/clone_on_copy_mut.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 pub fn dec_read_dec(i: &mut i32) -> i32 {
     *i -= 1;
diff --git a/tests/ui/cmp_nan.rs b/tests/ui/cmp_nan.rs
index a2506f444f08..4b62d0e53f1c 100644
--- a/tests/ui/cmp_nan.rs
+++ b/tests/ui/cmp_nan.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::cmp_nan)]
diff --git a/tests/ui/cmp_null.rs b/tests/ui/cmp_null.rs
index d8214876a1bc..03f0367a640f 100644
--- a/tests/ui/cmp_null.rs
+++ b/tests/ui/cmp_null.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::cmp_null)]
 #![allow(unused_mut)]
diff --git a/tests/ui/cmp_owned.rs b/tests/ui/cmp_owned.rs
index 031809f5df5f..978e919ff43a 100644
--- a/tests/ui/cmp_owned.rs
+++ b/tests/ui/cmp_owned.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::cmp_owned)]
diff --git a/tests/ui/collapsible_if.rs b/tests/ui/collapsible_if.rs
index fa80b27f590e..a6df9109df92 100644
--- a/tests/ui/collapsible_if.rs
+++ b/tests/ui/collapsible_if.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::collapsible_if)]
diff --git a/tests/ui/complex_types.rs b/tests/ui/complex_types.rs
index 5779c9da47f0..e735bf8e4875 100644
--- a/tests/ui/complex_types.rs
+++ b/tests/ui/complex_types.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all)]
 #![allow(unused, clippy::needless_pass_by_value)]
diff --git a/tests/ui/copies.rs b/tests/ui/copies.rs
index 2b29e76c4e0d..8d0bc802daf1 100644
--- a/tests/ui/copies.rs
+++ b/tests/ui/copies.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::blacklisted_name, clippy::collapsible_if, clippy::cyclomatic_complexity, clippy::eq_op, clippy::needless_continue,
          clippy::needless_return, clippy::never_loop, clippy::no_effect, clippy::zero_divided_by_zero)]
diff --git a/tests/ui/copy_iterator.rs b/tests/ui/copy_iterator.rs
index 6984b612f236..b5684f183ebe 100644
--- a/tests/ui/copy_iterator.rs
+++ b/tests/ui/copy_iterator.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::copy_iterator)]
 
diff --git a/tests/ui/cstring.rs b/tests/ui/cstring.rs
index fd5d00059a7d..6121166debeb 100644
--- a/tests/ui/cstring.rs
+++ b/tests/ui/cstring.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 fn main() {}
 
diff --git a/tests/ui/cyclomatic_complexity.rs b/tests/ui/cyclomatic_complexity.rs
index 3c8ab8694a6f..35451a99acc3 100644
--- a/tests/ui/cyclomatic_complexity.rs
+++ b/tests/ui/cyclomatic_complexity.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::all)]
 #![warn(clippy::cyclomatic_complexity)]
diff --git a/tests/ui/cyclomatic_complexity_attr_used.rs b/tests/ui/cyclomatic_complexity_attr_used.rs
index 1699601aa509..63d4e65a9776 100644
--- a/tests/ui/cyclomatic_complexity_attr_used.rs
+++ b/tests/ui/cyclomatic_complexity_attr_used.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::cyclomatic_complexity)]
 #![warn(unused)]
diff --git a/tests/ui/decimal_literal_representation.rs b/tests/ui/decimal_literal_representation.rs
index f85ccd84722c..c52fcd826ca3 100644
--- a/tests/ui/decimal_literal_representation.rs
+++ b/tests/ui/decimal_literal_representation.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::decimal_literal_representation)]
diff --git a/tests/ui/default_trait_access.rs b/tests/ui/default_trait_access.rs
index d268746d765b..331ad03f9a24 100644
--- a/tests/ui/default_trait_access.rs
+++ b/tests/ui/default_trait_access.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::default_trait_access)]
 
diff --git a/tests/ui/derive.rs b/tests/ui/derive.rs
index c5ce42586fa2..521a2e323fc0 100644
--- a/tests/ui/derive.rs
+++ b/tests/ui/derive.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(untagged_unions)]
 
diff --git a/tests/ui/diverging_sub_expression.rs b/tests/ui/diverging_sub_expression.rs
index 9cf6f22fb270..a47c96759ac4 100644
--- a/tests/ui/diverging_sub_expression.rs
+++ b/tests/ui/diverging_sub_expression.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(never_type)]
 
diff --git a/tests/ui/dlist.rs b/tests/ui/dlist.rs
index dbbac901b03b..cf16777b77a3 100644
--- a/tests/ui/dlist.rs
+++ b/tests/ui/dlist.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(alloc)]
 #![feature(associated_type_defaults)]
diff --git a/tests/ui/doc.rs b/tests/ui/doc.rs
index 85e688e0f071..37f89de471ff 100644
--- a/tests/ui/doc.rs
+++ b/tests/ui/doc.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 //! This file tests for the DOC_MARKDOWN lint
 
diff --git a/tests/ui/double_neg.rs b/tests/ui/double_neg.rs
index 31e7a508fcdb..3785c09060bf 100644
--- a/tests/ui/double_neg.rs
+++ b/tests/ui/double_neg.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::double_neg)]
diff --git a/tests/ui/double_parens.rs b/tests/ui/double_parens.rs
index 18ff140c3ca2..be1676a7487a 100644
--- a/tests/ui/double_parens.rs
+++ b/tests/ui/double_parens.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::double_parens)]
diff --git a/tests/ui/drop_forget_copy.rs b/tests/ui/drop_forget_copy.rs
index 8b2b96a14d3f..44e9ae0e044c 100644
--- a/tests/ui/drop_forget_copy.rs
+++ b/tests/ui/drop_forget_copy.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::drop_copy, clippy::forget_copy)]
diff --git a/tests/ui/drop_forget_ref.rs b/tests/ui/drop_forget_ref.rs
index 0f36b823e0fc..0aee38d3cbff 100644
--- a/tests/ui/drop_forget_ref.rs
+++ b/tests/ui/drop_forget_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::drop_ref, clippy::forget_ref)]
diff --git a/tests/ui/duplicate_underscore_argument.rs b/tests/ui/duplicate_underscore_argument.rs
index 25b2a0ba8b65..27329965f0c3 100644
--- a/tests/ui/duplicate_underscore_argument.rs
+++ b/tests/ui/duplicate_underscore_argument.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::duplicate_underscore_argument)]
diff --git a/tests/ui/duration_subsec.rs b/tests/ui/duration_subsec.rs
index 75352ad182b8..c8db599a840d 100644
--- a/tests/ui/duration_subsec.rs
+++ b/tests/ui/duration_subsec.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::duration_subsec)]
 
diff --git a/tests/ui/else_if_without_else.rs b/tests/ui/else_if_without_else.rs
index 56987d0d64d9..caaa024ff6bc 100644
--- a/tests/ui/else_if_without_else.rs
+++ b/tests/ui/else_if_without_else.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all)]
 #![warn(clippy::else_if_without_else)]
diff --git a/tests/ui/empty_enum.rs b/tests/ui/empty_enum.rs
index cd63acb9ed6d..b60f5491a93a 100644
--- a/tests/ui/empty_enum.rs
+++ b/tests/ui/empty_enum.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code)]
diff --git a/tests/ui/empty_line_after_outer_attribute.rs b/tests/ui/empty_line_after_outer_attribute.rs
index 8aa2e8a1f46a..43105b6e3428 100644
--- a/tests/ui/empty_line_after_outer_attribute.rs
+++ b/tests/ui/empty_line_after_outer_attribute.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::empty_line_after_outer_attr)]
 
 // This should produce a warning
diff --git a/tests/ui/entry.rs b/tests/ui/entry.rs
index 0bab6bf332e8..0ee6d7992220 100644
--- a/tests/ui/entry.rs
+++ b/tests/ui/entry.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused, clippy::needless_pass_by_value)]
 
diff --git a/tests/ui/enum_glob_use.rs b/tests/ui/enum_glob_use.rs
index e24e2fd8eb3e..9b7d4518c66e 100644
--- a/tests/ui/enum_glob_use.rs
+++ b/tests/ui/enum_glob_use.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all, clippy::pedantic)]
 #![allow(unused_imports, dead_code, clippy::missing_docs_in_private_items)]
diff --git a/tests/ui/enum_variants.rs b/tests/ui/enum_variants.rs
index 8a51e2f58f11..34c69854b75c 100644
--- a/tests/ui/enum_variants.rs
+++ b/tests/ui/enum_variants.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(non_ascii_idents)]
 
diff --git a/tests/ui/enums_clike.rs b/tests/ui/enums_clike.rs
index 179832550304..5513a9506aac 100644
--- a/tests/ui/enums_clike.rs
+++ b/tests/ui/enums_clike.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 // ignore-x86
 
diff --git a/tests/ui/eq_op.rs b/tests/ui/eq_op.rs
index c96cd8b9af24..36c54b0f42e2 100644
--- a/tests/ui/eq_op.rs
+++ b/tests/ui/eq_op.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::eq_op)]
diff --git a/tests/ui/erasing_op.rs b/tests/ui/erasing_op.rs
index 1c572b555542..696c58f98ae3 100644
--- a/tests/ui/erasing_op.rs
+++ b/tests/ui/erasing_op.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[allow(clippy::no_effect)]
diff --git a/tests/ui/eta.rs b/tests/ui/eta.rs
index a580ce0831a1..dd41433d2db9 100644
--- a/tests/ui/eta.rs
+++ b/tests/ui/eta.rs
@@ -8,9 +8,9 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
 
-#![allow(unknown_lints, unused, clippy::no_effect, clippy::redundant_closure_call, clippy::many_single_char_names, clippy::needless_pass_by_value, clippy::option_map_unit_fn, clippy::trivially_copy_pass_by_ref)]
+
+#![allow(unused, clippy::no_effect, clippy::redundant_closure_call, clippy::many_single_char_names, clippy::needless_pass_by_value, clippy::option_map_unit_fn, clippy::trivially_copy_pass_by_ref)]
 #![warn(clippy::redundant_closure, clippy::needless_borrow)]
 
 fn main() {
diff --git a/tests/ui/eval_order_dependence.rs b/tests/ui/eval_order_dependence.rs
index 4e525b9b2b03..ee8f834fe564 100644
--- a/tests/ui/eval_order_dependence.rs
+++ b/tests/ui/eval_order_dependence.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::eval_order_dependence)]
diff --git a/tests/ui/excessive_precision.rs b/tests/ui/excessive_precision.rs
index abfdb0b3da14..5945298da9f4 100644
--- a/tests/ui/excessive_precision.rs
+++ b/tests/ui/excessive_precision.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::excessive_precision)]
 #![allow(clippy::print_literal)]
 
diff --git a/tests/ui/explicit_write.rs b/tests/ui/explicit_write.rs
index 2a748d257246..8c1e35daa488 100644
--- a/tests/ui/explicit_write.rs
+++ b/tests/ui/explicit_write.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::explicit_write)]
 
diff --git a/tests/ui/fallible_impl_from.rs b/tests/ui/fallible_impl_from.rs
index 1e1e24ee9540..f50d5999de61 100644
--- a/tests/ui/fallible_impl_from.rs
+++ b/tests/ui/fallible_impl_from.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::fallible_impl_from)]
 
diff --git a/tests/ui/filter_methods.rs b/tests/ui/filter_methods.rs
index 1bfc03356fb2..33441d728cae 100644
--- a/tests/ui/filter_methods.rs
+++ b/tests/ui/filter_methods.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all, clippy::pedantic)]
diff --git a/tests/ui/float_cmp.rs b/tests/ui/float_cmp.rs
index cb8b7a98e395..5619539fb5a0 100644
--- a/tests/ui/float_cmp.rs
+++ b/tests/ui/float_cmp.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::float_cmp)]
diff --git a/tests/ui/float_cmp_const.rs b/tests/ui/float_cmp_const.rs
index 27d829ed105d..7cca1df65aed 100644
--- a/tests/ui/float_cmp_const.rs
+++ b/tests/ui/float_cmp_const.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::float_cmp_const)]
diff --git a/tests/ui/fn_to_numeric_cast.rs b/tests/ui/fn_to_numeric_cast.rs
index 9bd0ad7687fa..50796e13ef67 100644
--- a/tests/ui/fn_to_numeric_cast.rs
+++ b/tests/ui/fn_to_numeric_cast.rs
@@ -9,7 +9,7 @@
 
 
 // only-64bit
-#![feature(tool_lints)]
+
 
 #![warn(clippy::fn_to_numeric_cast, clippy::fn_to_numeric_cast_with_truncation)]
 
diff --git a/tests/ui/for_loop.rs b/tests/ui/for_loop.rs
index cff7075543b8..bdb6b56e0bb3 100644
--- a/tests/ui/for_loop.rs
+++ b/tests/ui/for_loop.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 use std::collections::*;
diff --git a/tests/ui/format.rs b/tests/ui/format.rs
index 5679a55755cf..e314d3022da3 100644
--- a/tests/ui/format.rs
+++ b/tests/ui/format.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![allow(clippy::print_literal)]
 #![warn(clippy::useless_format)]
 
diff --git a/tests/ui/formatting.rs b/tests/ui/formatting.rs
index 15aff5a3bba9..0dca8c8585b3 100644
--- a/tests/ui/formatting.rs
+++ b/tests/ui/formatting.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/functions.rs b/tests/ui/functions.rs
index 136adef823b8..f5ba0f791eeb 100644
--- a/tests/ui/functions.rs
+++ b/tests/ui/functions.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/fxhash.rs b/tests/ui/fxhash.rs
index e91cfcb9e704..fe4b80807c09 100644
--- a/tests/ui/fxhash.rs
+++ b/tests/ui/fxhash.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::default_hash_types)]
 #![feature(rustc_private)]
diff --git a/tests/ui/identity_conversion.rs b/tests/ui/identity_conversion.rs
index a4f5babecfc4..9384c9eb206e 100644
--- a/tests/ui/identity_conversion.rs
+++ b/tests/ui/identity_conversion.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::identity_conversion)]
 
diff --git a/tests/ui/identity_op.rs b/tests/ui/identity_op.rs
index 35afb85109f5..07a4ef8f3eb2 100644
--- a/tests/ui/identity_op.rs
+++ b/tests/ui/identity_op.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 const ONE : i64 = 1;
diff --git a/tests/ui/if_let_redundant_pattern_matching.rs b/tests/ui/if_let_redundant_pattern_matching.rs
index 84f4b711f53f..1c0e7e79c68f 100644
--- a/tests/ui/if_let_redundant_pattern_matching.rs
+++ b/tests/ui/if_let_redundant_pattern_matching.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/if_not_else.rs b/tests/ui/if_not_else.rs
index b0744d8c6001..23895c0ab52f 100644
--- a/tests/ui/if_not_else.rs
+++ b/tests/ui/if_not_else.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all)]
 #![warn(clippy::if_not_else)]
diff --git a/tests/ui/impl.rs b/tests/ui/impl.rs
index 6c2152220cf9..38c0a484091c 100644
--- a/tests/ui/impl.rs
+++ b/tests/ui/impl.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(dead_code)]
 #![warn(clippy::multiple_inherent_impl)]
diff --git a/tests/ui/inconsistent_digit_grouping.rs b/tests/ui/inconsistent_digit_grouping.rs
index dc73952ca255..941fbe5154aa 100644
--- a/tests/ui/inconsistent_digit_grouping.rs
+++ b/tests/ui/inconsistent_digit_grouping.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[warn(clippy::inconsistent_digit_grouping)]
 #[allow(unused_variables)]
diff --git a/tests/ui/indexing_slicing.rs b/tests/ui/indexing_slicing.rs
index 8d3f3cee99aa..6a32eb87491d 100644
--- a/tests/ui/indexing_slicing.rs
+++ b/tests/ui/indexing_slicing.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(plugin)]
 #![warn(clippy::indexing_slicing)]
diff --git a/tests/ui/infallible_destructuring_match.rs b/tests/ui/infallible_destructuring_match.rs
index bd4e4b49a4a5..62036cbc107e 100644
--- a/tests/ui/infallible_destructuring_match.rs
+++ b/tests/ui/infallible_destructuring_match.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(exhaustive_patterns, never_type)]
 #![allow(clippy::let_and_return)]
diff --git a/tests/ui/infinite_iter.rs b/tests/ui/infinite_iter.rs
index cf30a2e35ed2..68c10acb2bef 100644
--- a/tests/ui/infinite_iter.rs
+++ b/tests/ui/infinite_iter.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::iter::repeat;
 #[allow(clippy::trivially_copy_pass_by_ref)]
diff --git a/tests/ui/infinite_loop.rs b/tests/ui/infinite_loop.rs
index e837e563f18f..869b34e8adec 100644
--- a/tests/ui/infinite_loop.rs
+++ b/tests/ui/infinite_loop.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::trivially_copy_pass_by_ref)]
 
diff --git a/tests/ui/inline_fn_without_body.rs b/tests/ui/inline_fn_without_body.rs
index 93dff0d350f9..8434d33f65ed 100644
--- a/tests/ui/inline_fn_without_body.rs
+++ b/tests/ui/inline_fn_without_body.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::inline_fn_without_body)]
diff --git a/tests/ui/int_plus_one.rs b/tests/ui/int_plus_one.rs
index df16a393824c..8a0405321d06 100644
--- a/tests/ui/int_plus_one.rs
+++ b/tests/ui/int_plus_one.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[allow(clippy::no_effect, clippy::unnecessary_operation)]
@@ -16,7 +16,7 @@
 fn main() {
     let x = 1i32;
     let y = 0i32;
-    
+
     x >= y + 1;
     y + 1 <= x;
 
diff --git a/tests/ui/invalid_upcast_comparisons.rs b/tests/ui/invalid_upcast_comparisons.rs
index 5c17970d337b..3e62f11006d4 100644
--- a/tests/ui/invalid_upcast_comparisons.rs
+++ b/tests/ui/invalid_upcast_comparisons.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::invalid_upcast_comparisons)]
diff --git a/tests/ui/issue_2356.rs b/tests/ui/issue_2356.rs
index d251d51f3fc2..070808f7b698 100644
--- a/tests/ui/issue_2356.rs
+++ b/tests/ui/issue_2356.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::while_let_on_iterator)]
 
diff --git a/tests/ui/item_after_statement.rs b/tests/ui/item_after_statement.rs
index d765adae38c0..a4cc42f0d722 100644
--- a/tests/ui/item_after_statement.rs
+++ b/tests/ui/item_after_statement.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::items_after_statements)]
 
diff --git a/tests/ui/large_digit_groups.rs b/tests/ui/large_digit_groups.rs
index 7cc1f9c881dc..aad5c2050410 100644
--- a/tests/ui/large_digit_groups.rs
+++ b/tests/ui/large_digit_groups.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[warn(clippy::large_digit_groups)]
 #[allow(unused_variables)]
diff --git a/tests/ui/large_enum_variant.rs b/tests/ui/large_enum_variant.rs
index 729cc8940efa..419cb0ab4281 100644
--- a/tests/ui/large_enum_variant.rs
+++ b/tests/ui/large_enum_variant.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code)]
diff --git a/tests/ui/len_zero.rs b/tests/ui/len_zero.rs
index a8f1e283643c..bc82e0bca046 100644
--- a/tests/ui/len_zero.rs
+++ b/tests/ui/len_zero.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::len_without_is_empty, clippy::len_zero)]
 #![allow(dead_code, unused)]
diff --git a/tests/ui/let_if_seq.rs b/tests/ui/let_if_seq.rs
index 5fca759a4b3f..080fa3b24b87 100644
--- a/tests/ui/let_if_seq.rs
+++ b/tests/ui/let_if_seq.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(unused_variables, unused_assignments, clippy::similar_names, clippy::blacklisted_name)]
diff --git a/tests/ui/let_return.rs b/tests/ui/let_return.rs
index 380f775689de..317aaf42b5c7 100644
--- a/tests/ui/let_return.rs
+++ b/tests/ui/let_return.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused)]
 
diff --git a/tests/ui/let_unit.rs b/tests/ui/let_unit.rs
index 578fcb2ddde6..d77bc8712bf9 100644
--- a/tests/ui/let_unit.rs
+++ b/tests/ui/let_unit.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::let_unit_value)]
diff --git a/tests/ui/lifetimes.rs b/tests/ui/lifetimes.rs
index c7ed303b43b8..77f25afe0236 100644
--- a/tests/ui/lifetimes.rs
+++ b/tests/ui/lifetimes.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::needless_lifetimes, clippy::extra_unused_lifetimes)]
diff --git a/tests/ui/literals.rs b/tests/ui/literals.rs
index 3c1dcf09af2b..4db7ce957120 100644
--- a/tests/ui/literals.rs
+++ b/tests/ui/literals.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::mixed_case_hex_literals)]
 #![warn(clippy::unseparated_literal_suffix)]
diff --git a/tests/ui/map_clone.rs b/tests/ui/map_clone.rs
index 90611023f75f..162d8a484b43 100644
--- a/tests/ui/map_clone.rs
+++ b/tests/ui/map_clone.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::all, clippy::pedantic)]
 #![allow(clippy::missing_docs_in_private_items)]
 
diff --git a/tests/ui/map_flatten.rs b/tests/ui/map_flatten.rs
index b3f86d81e3fb..1b5c20069d17 100644
--- a/tests/ui/map_flatten.rs
+++ b/tests/ui/map_flatten.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::all, clippy::pedantic)]
 #![allow(clippy::missing_docs_in_private_items)]
 
diff --git a/tests/ui/matches.rs b/tests/ui/matches.rs
index e6e4154e4374..c43fead08f85 100644
--- a/tests/ui/matches.rs
+++ b/tests/ui/matches.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![feature(exclusive_range_pattern)]
 
 
diff --git a/tests/ui/mem_forget.rs b/tests/ui/mem_forget.rs
index 0e7cfbffa4c5..266c5c267f8c 100644
--- a/tests/ui/mem_forget.rs
+++ b/tests/ui/mem_forget.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 
diff --git a/tests/ui/mem_replace.rs b/tests/ui/mem_replace.rs
index 69e3ae96bad8..2b6e6f2ce67a 100644
--- a/tests/ui/mem_replace.rs
+++ b/tests/ui/mem_replace.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::all, clippy::style, clippy::mem_replace_option_with_none)]
 
 use std::mem;
diff --git a/tests/ui/methods.rs b/tests/ui/methods.rs
index e247a3d64501..883dbf589d78 100644
--- a/tests/ui/methods.rs
+++ b/tests/ui/methods.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all, clippy::pedantic, clippy::option_unwrap_used)]
diff --git a/tests/ui/min_max.rs b/tests/ui/min_max.rs
index 32e3863ad407..b4ca46231e02 100644
--- a/tests/ui/min_max.rs
+++ b/tests/ui/min_max.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/missing-doc.rs b/tests/ui/missing-doc.rs
index 43dad8398f17..6e7dfbfa37a5 100644
--- a/tests/ui/missing-doc.rs
+++ b/tests/ui/missing-doc.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 /* This file incorporates work covered by the following copyright and
  * permission notice:
diff --git a/tests/ui/missing_inline.rs b/tests/ui/missing_inline.rs
index 593774da1b49..0b86c4e5cfe0 100644
--- a/tests/ui/missing_inline.rs
+++ b/tests/ui/missing_inline.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 /* This file incorporates work covered by the following copyright and
  * permission notice:
diff --git a/tests/ui/module_inception.rs b/tests/ui/module_inception.rs
index 1dfc06f38af2..333a8efec32b 100644
--- a/tests/ui/module_inception.rs
+++ b/tests/ui/module_inception.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::module_inception)]
 
diff --git a/tests/ui/modulo_one.rs b/tests/ui/modulo_one.rs
index 6e0cbc581dc1..f1576447708a 100644
--- a/tests/ui/modulo_one.rs
+++ b/tests/ui/modulo_one.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::modulo_one)]
 #![allow(clippy::no_effect, clippy::unnecessary_operation)]
diff --git a/tests/ui/mut_from_ref.rs b/tests/ui/mut_from_ref.rs
index 37256efb839f..0a68d449d922 100644
--- a/tests/ui/mut_from_ref.rs
+++ b/tests/ui/mut_from_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused, clippy::trivially_copy_pass_by_ref)]
 #![warn(clippy::mut_from_ref)]
diff --git a/tests/ui/mut_mut.rs b/tests/ui/mut_mut.rs
index 81c945beafca..bed872902af5 100644
--- a/tests/ui/mut_mut.rs
+++ b/tests/ui/mut_mut.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(unused, clippy::no_effect, clippy::unnecessary_operation)]
diff --git a/tests/ui/mut_reference.rs b/tests/ui/mut_reference.rs
index f42d48f0db43..d63b854fd09e 100644
--- a/tests/ui/mut_reference.rs
+++ b/tests/ui/mut_reference.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(unused_variables, clippy::trivially_copy_pass_by_ref)]
diff --git a/tests/ui/mutex_atomic.rs b/tests/ui/mutex_atomic.rs
index e0ce93bf698b..87b4ac9d8e30 100644
--- a/tests/ui/mutex_atomic.rs
+++ b/tests/ui/mutex_atomic.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/needless_bool.rs b/tests/ui/needless_bool.rs
index 0e8e250c95da..a9a2e3709f1b 100644
--- a/tests/ui/needless_bool.rs
+++ b/tests/ui/needless_bool.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::needless_bool)]
 
diff --git a/tests/ui/needless_borrow.rs b/tests/ui/needless_borrow.rs
index 1cf7b40661d0..f8a170f38d42 100644
--- a/tests/ui/needless_borrow.rs
+++ b/tests/ui/needless_borrow.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::borrow::Cow;
 
diff --git a/tests/ui/needless_borrowed_ref.rs b/tests/ui/needless_borrowed_ref.rs
index 650b57b586c9..ca3e60bd7e74 100644
--- a/tests/ui/needless_borrowed_ref.rs
+++ b/tests/ui/needless_borrowed_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::needless_borrowed_reference)]
diff --git a/tests/ui/needless_collect.rs b/tests/ui/needless_collect.rs
index 45622b333844..91ebd354146c 100644
--- a/tests/ui/needless_collect.rs
+++ b/tests/ui/needless_collect.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::collections::{HashMap, HashSet, BTreeSet};
 
diff --git a/tests/ui/needless_continue.rs b/tests/ui/needless_continue.rs
index 4a15987ba967..3d91132ea627 100644
--- a/tests/ui/needless_continue.rs
+++ b/tests/ui/needless_continue.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 macro_rules! zero {
diff --git a/tests/ui/needless_pass_by_value.rs b/tests/ui/needless_pass_by_value.rs
index 3e029de4755b..5825d9e90748 100644
--- a/tests/ui/needless_pass_by_value.rs
+++ b/tests/ui/needless_pass_by_value.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::needless_pass_by_value)]
 #![allow(dead_code, clippy::single_match, clippy::if_let_redundant_pattern_matching, clippy::many_single_char_names, clippy::option_option)]
diff --git a/tests/ui/needless_pass_by_value_proc_macro.rs b/tests/ui/needless_pass_by_value_proc_macro.rs
index b1ca6d75c990..f8f279ccb66e 100644
--- a/tests/ui/needless_pass_by_value_proc_macro.rs
+++ b/tests/ui/needless_pass_by_value_proc_macro.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![crate_type = "proc-macro"]
 #![warn(clippy::needless_pass_by_value)]
diff --git a/tests/ui/needless_return.rs b/tests/ui/needless_return.rs
index bfe86573a4da..9380f7c48a5b 100644
--- a/tests/ui/needless_return.rs
+++ b/tests/ui/needless_return.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::needless_return)]
diff --git a/tests/ui/needless_update.rs b/tests/ui/needless_update.rs
index 70fe7236c240..974f3603fc68 100644
--- a/tests/ui/needless_update.rs
+++ b/tests/ui/needless_update.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::needless_update)]
diff --git a/tests/ui/neg_cmp_op_on_partial_ord.rs b/tests/ui/neg_cmp_op_on_partial_ord.rs
index c8edba32219e..6d26d2ec6d1c 100644
--- a/tests/ui/neg_cmp_op_on_partial_ord.rs
+++ b/tests/ui/neg_cmp_op_on_partial_ord.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 //! This test case utilizes `f64` an easy example for `PartialOrd` only types
 //! but the lint itself actually validates any expression where the left
@@ -27,7 +27,7 @@ fn main() {
 
     // Not Less but potentially Greater, Equal or Uncomparable.
     let _not_less = !(a_value < another_value);
-    
+
     // Not Less or Equal but potentially Greater or Uncomparable.
     let _not_less_or_equal = !(a_value <= another_value);
 
diff --git a/tests/ui/neg_multiply.rs b/tests/ui/neg_multiply.rs
index 2589f3b8551d..446af7bbe948 100644
--- a/tests/ui/neg_multiply.rs
+++ b/tests/ui/neg_multiply.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::neg_multiply)]
diff --git a/tests/ui/never_loop.rs b/tests/ui/never_loop.rs
index 901a98559e73..b952b1197dd5 100644
--- a/tests/ui/never_loop.rs
+++ b/tests/ui/never_loop.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::single_match, unused_assignments, unused_variables, clippy::while_immutable_condition)]
 
diff --git a/tests/ui/new_without_default.rs b/tests/ui/new_without_default.rs
index 7fa369354b3c..783308d264a0 100644
--- a/tests/ui/new_without_default.rs
+++ b/tests/ui/new_without_default.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(const_fn)]
 
diff --git a/tests/ui/no_effect.rs b/tests/ui/no_effect.rs
index a56327eeefad..32e1ccb7beea 100644
--- a/tests/ui/no_effect.rs
+++ b/tests/ui/no_effect.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(box_syntax)]
 
diff --git a/tests/ui/non_copy_const.rs b/tests/ui/non_copy_const.rs
index 6c57a37e2ab5..5cbb610fea34 100644
--- a/tests/ui/non_copy_const.rs
+++ b/tests/ui/non_copy_const.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(const_string_new, const_vec_new)]
 #![allow(clippy::ref_in_deref, dead_code)]
diff --git a/tests/ui/non_expressive_names.rs b/tests/ui/non_expressive_names.rs
index 47e4da61b51e..67fded144856 100644
--- a/tests/ui/non_expressive_names.rs
+++ b/tests/ui/non_expressive_names.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all,clippy::similar_names)]
 #![allow(unused, clippy::println_empty_string)]
diff --git a/tests/ui/ok_if_let.rs b/tests/ui/ok_if_let.rs
index 71b301cbc42e..b318a90d8832 100644
--- a/tests/ui/ok_if_let.rs
+++ b/tests/ui/ok_if_let.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::if_let_some_result)]
diff --git a/tests/ui/op_ref.rs b/tests/ui/op_ref.rs
index 96a208ef8072..bacf9f1057bb 100644
--- a/tests/ui/op_ref.rs
+++ b/tests/ui/op_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(unused_variables, clippy::blacklisted_name)]
@@ -19,7 +19,7 @@ fn main() {
     let tracked_fds: HashSet<i32> = HashSet::new();
     let new_fds = HashSet::new();
     let unwanted = &tracked_fds - &new_fds;
-    
+
     let foo = &5 - &6;
 
     let bar = String::new();
diff --git a/tests/ui/open_options.rs b/tests/ui/open_options.rs
index a01f2b1ce39c..6b891d72e8ba 100644
--- a/tests/ui/open_options.rs
+++ b/tests/ui/open_options.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::fs::OpenOptions;
 
diff --git a/tests/ui/option_map_unit_fn.rs b/tests/ui/option_map_unit_fn.rs
index a69c41ce9673..b023181fcf7a 100644
--- a/tests/ui/option_map_unit_fn.rs
+++ b/tests/ui/option_map_unit_fn.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::option_map_unit_fn)]
 #![allow(unused)]
diff --git a/tests/ui/overflow_check_conditional.rs b/tests/ui/overflow_check_conditional.rs
index 8aba051c65ec..82fdfe14ab6d 100644
--- a/tests/ui/overflow_check_conditional.rs
+++ b/tests/ui/overflow_check_conditional.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(clippy::many_single_char_names)]
diff --git a/tests/ui/panic_unimplemented.rs b/tests/ui/panic_unimplemented.rs
index f292455dc7d4..ede2e8f063b0 100644
--- a/tests/ui/panic_unimplemented.rs
+++ b/tests/ui/panic_unimplemented.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::panic_params, clippy::unimplemented)]
diff --git a/tests/ui/patterns.rs b/tests/ui/patterns.rs
index 2b42aae63ea0..41e9ec8ca81e 100644
--- a/tests/ui/patterns.rs
+++ b/tests/ui/patterns.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused)]
 #![warn(clippy::all)]
diff --git a/tests/ui/precedence.rs b/tests/ui/precedence.rs
index ccc08ddc5d7b..4b404022ed41 100644
--- a/tests/ui/precedence.rs
+++ b/tests/ui/precedence.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::precedence)]
diff --git a/tests/ui/print.rs b/tests/ui/print.rs
index 3bb72fcb1f43..5fa2cfcc315b 100644
--- a/tests/ui/print.rs
+++ b/tests/ui/print.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::print_literal, clippy::write_literal)]
 #![warn(clippy::print_stdout, clippy::use_debug)]
diff --git a/tests/ui/print_literal.rs b/tests/ui/print_literal.rs
index fd68751820d4..0df26f6d25f4 100644
--- a/tests/ui/print_literal.rs
+++ b/tests/ui/print_literal.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::print_literal)]
 
diff --git a/tests/ui/print_with_newline.rs b/tests/ui/print_with_newline.rs
index 4fc24080d466..2dd08a5b88d8 100644
--- a/tests/ui/print_with_newline.rs
+++ b/tests/ui/print_with_newline.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::print_literal)]
 #![warn(clippy::print_with_newline)]
diff --git a/tests/ui/ptr_arg.rs b/tests/ui/ptr_arg.rs
index 4d5f353bb6a1..df0bde149607 100644
--- a/tests/ui/ptr_arg.rs
+++ b/tests/ui/ptr_arg.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused, clippy::many_single_char_names)]
 #![warn(clippy::ptr_arg)]
diff --git a/tests/ui/range.rs b/tests/ui/range.rs
index 270b71d263fe..8b7f0673e244 100644
--- a/tests/ui/range.rs
+++ b/tests/ui/range.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 struct NotARange;
 impl NotARange {
diff --git a/tests/ui/range_plus_minus_one.rs b/tests/ui/range_plus_minus_one.rs
index 15743828d8b5..602743d69142 100644
--- a/tests/ui/range_plus_minus_one.rs
+++ b/tests/ui/range_plus_minus_one.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 fn f() -> usize {
     42
diff --git a/tests/ui/redundant_closure_call.rs b/tests/ui/redundant_closure_call.rs
index bf0cc550b0d2..4912e5fc1b49 100644
--- a/tests/ui/redundant_closure_call.rs
+++ b/tests/ui/redundant_closure_call.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::redundant_closure_call)]
diff --git a/tests/ui/redundant_field_names.rs b/tests/ui/redundant_field_names.rs
index ac0d5d105356..41e90bba368a 100644
--- a/tests/ui/redundant_field_names.rs
+++ b/tests/ui/redundant_field_names.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::redundant_field_names)]
 #![allow(unused_variables)]
diff --git a/tests/ui/reference.rs b/tests/ui/reference.rs
index 9298aee2cacf..bd0fdd5d5ea3 100644
--- a/tests/ui/reference.rs
+++ b/tests/ui/reference.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 fn get_number() -> usize {
diff --git a/tests/ui/regex.rs b/tests/ui/regex.rs
index 6e77c5890233..2623438c4c4f 100644
--- a/tests/ui/regex.rs
+++ b/tests/ui/regex.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(unused)]
diff --git a/tests/ui/replace_consts.rs b/tests/ui/replace_consts.rs
index 2f961e86f9a7..7a2584f174dc 100644
--- a/tests/ui/replace_consts.rs
+++ b/tests/ui/replace_consts.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(integer_atomics)]
 #![allow(clippy::blacklisted_name)]
diff --git a/tests/ui/result_map_unit_fn.rs b/tests/ui/result_map_unit_fn.rs
index 4edbfdd5bf41..f24e52b10fdb 100644
--- a/tests/ui/result_map_unit_fn.rs
+++ b/tests/ui/result_map_unit_fn.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(never_type)]
 #![warn(clippy::result_map_unit_fn)]
diff --git a/tests/ui/serde.rs b/tests/ui/serde.rs
index caa954bea44f..47be8423d7b4 100644
--- a/tests/ui/serde.rs
+++ b/tests/ui/serde.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::serde_api_misuse)]
 #![allow(dead_code)]
diff --git a/tests/ui/shadow.rs b/tests/ui/shadow.rs
index a607161a949e..aa29bd1d79cf 100644
--- a/tests/ui/shadow.rs
+++ b/tests/ui/shadow.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all, clippy::pedantic, clippy::shadow_same, clippy::shadow_reuse, clippy::shadow_unrelated)]
diff --git a/tests/ui/short_circuit_statement.rs b/tests/ui/short_circuit_statement.rs
index 01511314c7de..67999a74e5eb 100644
--- a/tests/ui/short_circuit_statement.rs
+++ b/tests/ui/short_circuit_statement.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::short_circuit_statement)]
diff --git a/tests/ui/single_char_pattern.rs b/tests/ui/single_char_pattern.rs
index 12aaa69f34b7..5e1231f1227c 100644
--- a/tests/ui/single_char_pattern.rs
+++ b/tests/ui/single_char_pattern.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 use std::collections::HashSet;
 
diff --git a/tests/ui/single_match.rs b/tests/ui/single_match.rs
index 07c1a95025ab..5c7cae249b4f 100644
--- a/tests/ui/single_match.rs
+++ b/tests/ui/single_match.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::single_match)]
 
diff --git a/tests/ui/starts_ends_with.rs b/tests/ui/starts_ends_with.rs
index 180924d2c9cf..5c09e8f1f283 100644
--- a/tests/ui/starts_ends_with.rs
+++ b/tests/ui/starts_ends_with.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(dead_code)]
 
diff --git a/tests/ui/strings.rs b/tests/ui/strings.rs
index 31e6c9a059f2..7bc4e6515f65 100644
--- a/tests/ui/strings.rs
+++ b/tests/ui/strings.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::string_add)]
diff --git a/tests/ui/stutter.rs b/tests/ui/stutter.rs
index 148e8071ce0b..17d528d10500 100644
--- a/tests/ui/stutter.rs
+++ b/tests/ui/stutter.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::stutter)]
 #![allow(dead_code)]
diff --git a/tests/ui/suspicious_arithmetic_impl.rs b/tests/ui/suspicious_arithmetic_impl.rs
index a183576b40eb..5e7608565ed1 100644
--- a/tests/ui/suspicious_arithmetic_impl.rs
+++ b/tests/ui/suspicious_arithmetic_impl.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::suspicious_arithmetic_impl)]
diff --git a/tests/ui/swap.rs b/tests/ui/swap.rs
index bef2031f8a81..90c2aec98759 100644
--- a/tests/ui/swap.rs
+++ b/tests/ui/swap.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/temporary_assignment.rs b/tests/ui/temporary_assignment.rs
index cf92f9fd6c2c..9c4365bef409 100644
--- a/tests/ui/temporary_assignment.rs
+++ b/tests/ui/temporary_assignment.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::temporary_assignment)]
diff --git a/tests/ui/toplevel_ref_arg.rs b/tests/ui/toplevel_ref_arg.rs
index 9f92d706ad62..09ee79f6d8bb 100644
--- a/tests/ui/toplevel_ref_arg.rs
+++ b/tests/ui/toplevel_ref_arg.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::all)]
diff --git a/tests/ui/transmute.rs b/tests/ui/transmute.rs
index 4108750acf62..285c07a97240 100644
--- a/tests/ui/transmute.rs
+++ b/tests/ui/transmute.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code)]
diff --git a/tests/ui/transmute_64bit.rs b/tests/ui/transmute_64bit.rs
index 630b594eb1b8..8620628fdceb 100644
--- a/tests/ui/transmute_64bit.rs
+++ b/tests/ui/transmute_64bit.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 //ignore-x86
 //no-ignore-x86_64
diff --git a/tests/ui/trivially_copy_pass_by_ref.rs b/tests/ui/trivially_copy_pass_by_ref.rs
index 716e0dc64205..cebe15b2cc8b 100644
--- a/tests/ui/trivially_copy_pass_by_ref.rs
+++ b/tests/ui/trivially_copy_pass_by_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::many_single_char_names, clippy::blacklisted_name, clippy::redundant_field_names)]
 
diff --git a/tests/ui/unicode.rs b/tests/ui/unicode.rs
index 486135ddfa5f..8de17fea2201 100644
--- a/tests/ui/unicode.rs
+++ b/tests/ui/unicode.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[warn(clippy::zero_width_space)]
diff --git a/tests/ui/unit_arg.rs b/tests/ui/unit_arg.rs
index ed70ee843b1b..058c6563c5ad 100644
--- a/tests/ui/unit_arg.rs
+++ b/tests/ui/unit_arg.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::unit_arg)]
 #![allow(clippy::no_effect)]
diff --git a/tests/ui/unit_cmp.rs b/tests/ui/unit_cmp.rs
index e8726bf73644..10eb0c70c545 100644
--- a/tests/ui/unit_cmp.rs
+++ b/tests/ui/unit_cmp.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::unit_cmp)]
diff --git a/tests/ui/unnecessary_clone.rs b/tests/ui/unnecessary_clone.rs
index 82010db7a996..df02570d692c 100644
--- a/tests/ui/unnecessary_clone.rs
+++ b/tests/ui/unnecessary_clone.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::clone_on_ref_ptr)]
 #![allow(unused)]
diff --git a/tests/ui/unnecessary_ref.rs b/tests/ui/unnecessary_ref.rs
index 6fb2abaf19ca..adc628fe8b6c 100644
--- a/tests/ui/unnecessary_ref.rs
+++ b/tests/ui/unnecessary_ref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![feature(tool_attributes)]
 #![feature(stmt_expr_attributes)]
diff --git a/tests/ui/unneeded_field_pattern.rs b/tests/ui/unneeded_field_pattern.rs
index 963d555ca564..128a3fee4290 100644
--- a/tests/ui/unneeded_field_pattern.rs
+++ b/tests/ui/unneeded_field_pattern.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::unneeded_field_pattern)]
diff --git a/tests/ui/unreadable_literal.rs b/tests/ui/unreadable_literal.rs
index 67e04706f047..9142b3d29112 100644
--- a/tests/ui/unreadable_literal.rs
+++ b/tests/ui/unreadable_literal.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #[warn(clippy::unreadable_literal)]
 #[allow(unused_variables)]
diff --git a/tests/ui/unsafe_removed_from_name.rs b/tests/ui/unsafe_removed_from_name.rs
index 39aa4afdf8d9..9c1800467d3f 100644
--- a/tests/ui/unsafe_removed_from_name.rs
+++ b/tests/ui/unsafe_removed_from_name.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused_imports)]
 #![allow(dead_code)]
diff --git a/tests/ui/unused_io_amount.rs b/tests/ui/unused_io_amount.rs
index 0ab89c994f43..a47a6ccfdf67 100644
--- a/tests/ui/unused_io_amount.rs
+++ b/tests/ui/unused_io_amount.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code)]
diff --git a/tests/ui/unused_labels.rs b/tests/ui/unused_labels.rs
index ecfdab490f65..d7d843dfc259 100644
--- a/tests/ui/unused_labels.rs
+++ b/tests/ui/unused_labels.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![allow(dead_code, clippy::items_after_statements, clippy::never_loop)]
diff --git a/tests/ui/unused_lt.rs b/tests/ui/unused_lt.rs
index 3aea986d28dd..de13864421e1 100644
--- a/tests/ui/unused_lt.rs
+++ b/tests/ui/unused_lt.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused, dead_code, clippy::needless_lifetimes, clippy::needless_pass_by_value, clippy::trivially_copy_pass_by_ref)]
 #![warn(clippy::extra_unused_lifetimes)]
diff --git a/tests/ui/unwrap_or.rs b/tests/ui/unwrap_or.rs
index b31ccfea200d..80965635a089 100644
--- a/tests/ui/unwrap_or.rs
+++ b/tests/ui/unwrap_or.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 #![warn(clippy::all)]
 
 fn main() {
diff --git a/tests/ui/use_self.rs b/tests/ui/use_self.rs
index 784e0c04016a..6ebe8f16a902 100644
--- a/tests/ui/use_self.rs
+++ b/tests/ui/use_self.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::use_self)]
 #![allow(dead_code)]
diff --git a/tests/ui/used_underscore_binding.rs b/tests/ui/used_underscore_binding.rs
index 13ae1d67f153..b6b055e58bc4 100644
--- a/tests/ui/used_underscore_binding.rs
+++ b/tests/ui/used_underscore_binding.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::all)]
 
diff --git a/tests/ui/useless_asref.rs b/tests/ui/useless_asref.rs
index 598618365c8f..a5e9caf3a671 100644
--- a/tests/ui/useless_asref.rs
+++ b/tests/ui/useless_asref.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![deny(clippy::useless_asref)]
 #![allow(clippy::trivially_copy_pass_by_ref)]
diff --git a/tests/ui/useless_attribute.rs b/tests/ui/useless_attribute.rs
index 710f35da72b8..9fb84866ef6b 100644
--- a/tests/ui/useless_attribute.rs
+++ b/tests/ui/useless_attribute.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![warn(clippy::useless_attribute)]
 
diff --git a/tests/ui/useless_attribute.stderr b/tests/ui/useless_attribute.stderr
index 4a27d1148b42..6b82b105b05d 100644
--- a/tests/ui/useless_attribute.stderr
+++ b/tests/ui/useless_attribute.stderr
@@ -10,7 +10,7 @@ error: useless lint attribute
   --> $DIR/useless_attribute.rs:16:1
    |
 16 | #[cfg_attr(feature = "cargo-clippy", allow(dead_code))]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![cfg_attr(feature = "cargo-clippy", allow(dead_code))`
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![cfg_attr(feature = "cargo-clippy", allow(dead_code)`
 
 error: aborting due to 2 previous errors
 
diff --git a/tests/ui/vec.rs b/tests/ui/vec.rs
index 45e516637951..e74aded57281 100644
--- a/tests/ui/vec.rs
+++ b/tests/ui/vec.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::useless_vec)]
diff --git a/tests/ui/while_loop.rs b/tests/ui/while_loop.rs
index ff7a43fd6932..3cc7c52df5de 100644
--- a/tests/ui/while_loop.rs
+++ b/tests/ui/while_loop.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::while_let_loop, clippy::empty_loop, clippy::while_let_on_iterator)]
diff --git a/tests/ui/write_literal.rs b/tests/ui/write_literal.rs
index 9a27ca11daee..7917479ed67c 100644
--- a/tests/ui/write_literal.rs
+++ b/tests/ui/write_literal.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused_must_use)]
 #![warn(clippy::write_literal)]
diff --git a/tests/ui/write_with_newline.rs b/tests/ui/write_with_newline.rs
index f3e26ed904f9..e9fcff0b3dd6 100644
--- a/tests/ui/write_with_newline.rs
+++ b/tests/ui/write_with_newline.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(clippy::write_literal)]
 #![warn(clippy::write_with_newline)]
diff --git a/tests/ui/writeln_empty_string.rs b/tests/ui/writeln_empty_string.rs
index 888e870667c0..e272a5af88b3 100644
--- a/tests/ui/writeln_empty_string.rs
+++ b/tests/ui/writeln_empty_string.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 #![allow(unused_must_use)]
 #![warn(clippy::writeln_empty_string)]
diff --git a/tests/ui/wrong_self_convention.rs b/tests/ui/wrong_self_convention.rs
index d843af1a3966..d1c7424c8d79 100644
--- a/tests/ui/wrong_self_convention.rs
+++ b/tests/ui/wrong_self_convention.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #![warn(clippy::wrong_self_convention)]
diff --git a/tests/ui/zero_div_zero.rs b/tests/ui/zero_div_zero.rs
index c2cbd32968f6..4e2272c8e090 100644
--- a/tests/ui/zero_div_zero.rs
+++ b/tests/ui/zero_div_zero.rs
@@ -8,7 +8,7 @@
 // except according to those terms.
 
 
-#![feature(tool_lints)]
+
 
 
 #[allow(unused_variables)]