]> git.lizzy.rs Git - rust.git/commitdiff
clippy: Remove now obsolete lintlist module
authorflip1995 <hello@philkrones.com>
Wed, 7 Oct 2020 14:05:13 +0000 (16:05 +0200)
committerflip1995 <philipp.krones@embecosm.com>
Tue, 24 Nov 2020 09:37:31 +0000 (10:37 +0100)
Also stop updating the lintlist module in clippy_dev update_lints

clippy_dev/src/update_lints.rs
src/lintlist/lint.rs [deleted file]
src/lintlist/mod.rs [deleted file]

index 556b67e0b3742ec1eee0165cf5937b38d8167d9b..fcf093f8835d866f7a2059521999ab75dd58c065 100644 (file)
@@ -22,20 +22,7 @@ pub fn run(update_mode: UpdateMode) {
 
     let usable_lint_count = round_to_fifty(usable_lints.len());
 
-    let mut file_change = replace_region_in_file(
-        Path::new("src/lintlist/mod.rs"),
-        "begin lint list",
-        "end lint list",
-        false,
-        update_mode == UpdateMode::Change,
-        || {
-            format!("vec!{:#?}", sorted_usable_lints)
-                .lines()
-                .map(ToString::to_string)
-                .collect::<Vec<_>>()
-        },
-    )
-    .changed;
+    let mut file_change = false;
 
     file_change |= replace_region_in_file(
         Path::new("README.md"),
diff --git a/src/lintlist/lint.rs b/src/lintlist/lint.rs
deleted file mode 100644 (file)
index c817d83..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/// Lint data parsed from the Clippy source code.
-#[derive(Clone, PartialEq, Debug)]
-pub struct Lint {
-    pub name: &'static str,
-    pub group: &'static str,
-    pub desc: &'static str,
-    pub deprecation: Option<&'static str>,
-    pub module: &'static str,
-}
-
-#[derive(PartialOrd, PartialEq, Ord, Eq)]
-pub enum Level {
-    Allow,
-    Warn,
-    Deny,
-}
-
-pub const LINT_LEVELS: [(&str, Level); 8] = [
-    ("correctness", Level::Deny),
-    ("style", Level::Warn),
-    ("complexity", Level::Warn),
-    ("perf", Level::Warn),
-    ("restriction", Level::Allow),
-    ("pedantic", Level::Allow),
-    ("nursery", Level::Allow),
-    ("cargo", Level::Allow),
-];
diff --git a/src/lintlist/mod.rs b/src/lintlist/mod.rs
deleted file mode 100644 (file)
index 1d906d2..0000000
+++ /dev/null
@@ -1,2942 +0,0 @@
-//! This file is managed by `cargo dev update_lints`. Do not edit or format this file.
-
-use std::lazy::SyncLazy;
-
-pub mod lint;
-pub use lint::Level;
-pub use lint::Lint;
-pub use lint::LINT_LEVELS;
-
-#[rustfmt::skip]
-pub static ALL_LINTS: SyncLazy<Vec<Lint>> = SyncLazy::new(|| {
-// begin lint list, do not remove this comment, it’s used in `update_lints`
-vec![
-    Lint {
-        name: "absurd_extreme_comparisons",
-        group: "correctness",
-        desc: "a comparison with a maximum or minimum value that is always true or false",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "almost_swapped",
-        group: "correctness",
-        desc: "`foo = bar; bar = foo` sequence",
-        deprecation: None,
-        module: "swap",
-    },
-    Lint {
-        name: "approx_constant",
-        group: "correctness",
-        desc: "the approximate of a known float constant (in `std::fXX::consts`)",
-        deprecation: None,
-        module: "approx_const",
-    },
-    Lint {
-        name: "as_conversions",
-        group: "restriction",
-        desc: "using a potentially dangerous silent `as` conversion",
-        deprecation: None,
-        module: "as_conversions",
-    },
-    Lint {
-        name: "assertions_on_constants",
-        group: "style",
-        desc: "`assert!(true)` / `assert!(false)` will be optimized out by the compiler, and should probably be replaced by a `panic!()` or `unreachable!()`",
-        deprecation: None,
-        module: "assertions_on_constants",
-    },
-    Lint {
-        name: "assign_op_pattern",
-        group: "style",
-        desc: "assigning the result of an operation on a variable to that same variable",
-        deprecation: None,
-        module: "assign_ops",
-    },
-    Lint {
-        name: "async_yields_async",
-        group: "correctness",
-        desc: "async blocks that return a type that can be awaited",
-        deprecation: None,
-        module: "async_yields_async",
-    },
-    Lint {
-        name: "await_holding_lock",
-        group: "pedantic",
-        desc: "Inside an async function, holding a MutexGuard while calling await",
-        deprecation: None,
-        module: "await_holding_invalid",
-    },
-    Lint {
-        name: "await_holding_refcell_ref",
-        group: "pedantic",
-        desc: "Inside an async function, holding a RefCell ref while calling await",
-        deprecation: None,
-        module: "await_holding_invalid",
-    },
-    Lint {
-        name: "bad_bit_mask",
-        group: "correctness",
-        desc: "expressions of the form `_ & mask == select` that will only ever return `true` or `false`",
-        deprecation: None,
-        module: "bit_mask",
-    },
-    Lint {
-        name: "bind_instead_of_map",
-        group: "complexity",
-        desc: "using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "blacklisted_name",
-        group: "style",
-        desc: "usage of a blacklisted/placeholder name",
-        deprecation: None,
-        module: "blacklisted_name",
-    },
-    Lint {
-        name: "blanket_clippy_restriction_lints",
-        group: "style",
-        desc: "enabling the complete restriction group",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "blocks_in_if_conditions",
-        group: "style",
-        desc: "useless or complex blocks that can be eliminated in conditions",
-        deprecation: None,
-        module: "blocks_in_if_conditions",
-    },
-    Lint {
-        name: "bool_comparison",
-        group: "complexity",
-        desc: "comparing a variable to a boolean, e.g., `if x == true` or `if x != true`",
-        deprecation: None,
-        module: "needless_bool",
-    },
-    Lint {
-        name: "borrow_interior_mutable_const",
-        group: "style",
-        desc: "referencing `const` with interior mutability",
-        deprecation: None,
-        module: "non_copy_const",
-    },
-    Lint {
-        name: "borrowed_box",
-        group: "complexity",
-        desc: "a borrow of a boxed type",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "box_vec",
-        group: "perf",
-        desc: "usage of `Box<Vec<T>>`, vector elements are already on the heap",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "boxed_local",
-        group: "perf",
-        desc: "using `Box<T>` where unnecessary",
-        deprecation: None,
-        module: "escape",
-    },
-    Lint {
-        name: "builtin_type_shadow",
-        group: "style",
-        desc: "shadowing a builtin type",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "cargo_common_metadata",
-        group: "cargo",
-        desc: "common metadata is defined in `Cargo.toml`",
-        deprecation: None,
-        module: "cargo_common_metadata",
-    },
-    Lint {
-        name: "cast_lossless",
-        group: "pedantic",
-        desc: "casts using `as` that are known to be lossless, e.g., `x as u64` where `x: u8`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_possible_truncation",
-        group: "pedantic",
-        desc: "casts that may cause truncation of the value, e.g., `x as u8` where `x: u32`, or `x as i32` where `x: f32`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_possible_wrap",
-        group: "pedantic",
-        desc: "casts that may cause wrapping around the value, e.g., `x as i32` where `x: u32` and `x > i32::MAX`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_precision_loss",
-        group: "pedantic",
-        desc: "casts that cause loss of precision, e.g., `x as f32` where `x: u64`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_ptr_alignment",
-        group: "pedantic",
-        desc: "cast from a pointer to a more-strictly-aligned pointer",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_ref_to_mut",
-        group: "correctness",
-        desc: "a cast of reference to a mutable pointer",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "cast_sign_loss",
-        group: "pedantic",
-        desc: "casts from signed types to unsigned types, e.g., `x as u32` where `x: i32`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "char_lit_as_u8",
-        group: "complexity",
-        desc: "casting a character literal to `u8` truncates",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "chars_last_cmp",
-        group: "style",
-        desc: "using `.chars().last()` or `.chars().next_back()` to check if a string ends with a char",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "chars_next_cmp",
-        group: "style",
-        desc: "using `.chars().next()` to check if a string starts with a char",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "checked_conversions",
-        group: "pedantic",
-        desc: "`try_from` could replace manual bounds checking when casting",
-        deprecation: None,
-        module: "checked_conversions",
-    },
-    Lint {
-        name: "clone_double_ref",
-        group: "correctness",
-        desc: "using `clone` on `&&T`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "clone_on_copy",
-        group: "complexity",
-        desc: "using `clone` on a `Copy` type",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "clone_on_ref_ptr",
-        group: "restriction",
-        desc: "using \'clone\' on a ref-counted pointer",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "cmp_nan",
-        group: "correctness",
-        desc: "comparisons to `NAN`, which will always return false, probably not intended",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "cmp_null",
-        group: "style",
-        desc: "comparing a pointer to a null pointer, suggesting to use `.is_null()` instead.",
-        deprecation: None,
-        module: "ptr",
-    },
-    Lint {
-        name: "cmp_owned",
-        group: "perf",
-        desc: "creating owned instances for comparing with others, e.g., `x == \"foo\".to_string()`",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "cognitive_complexity",
-        group: "nursery",
-        desc: "functions that should be split up into multiple functions",
-        deprecation: None,
-        module: "cognitive_complexity",
-    },
-    Lint {
-        name: "collapsible_if",
-        group: "style",
-        desc: "`if`s that can be collapsed (e.g., `if x { if y { ... } }` and `else { if x { ... } }`)",
-        deprecation: None,
-        module: "collapsible_if",
-    },
-    Lint {
-        name: "comparison_chain",
-        group: "style",
-        desc: "`if`s that can be rewritten with `match` and `cmp`",
-        deprecation: None,
-        module: "comparison_chain",
-    },
-    Lint {
-        name: "comparison_to_empty",
-        group: "style",
-        desc: "checking `x == \"\"` or `x == []` (or similar) when `.is_empty()` could be used instead",
-        deprecation: None,
-        module: "len_zero",
-    },
-    Lint {
-        name: "copy_iterator",
-        group: "pedantic",
-        desc: "implementing `Iterator` on a `Copy` type",
-        deprecation: None,
-        module: "copy_iterator",
-    },
-    Lint {
-        name: "create_dir",
-        group: "restriction",
-        desc: "calling `std::fs::create_dir` instead of `std::fs::create_dir_all`",
-        deprecation: None,
-        module: "create_dir",
-    },
-    Lint {
-        name: "crosspointer_transmute",
-        group: "complexity",
-        desc: "transmutes that have to or from types that are a pointer to the other",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "dbg_macro",
-        group: "restriction",
-        desc: "`dbg!` macro is intended as a debugging tool",
-        deprecation: None,
-        module: "dbg_macro",
-    },
-    Lint {
-        name: "debug_assert_with_mut_call",
-        group: "nursery",
-        desc: "mutable arguments in `debug_assert{,_ne,_eq}!`",
-        deprecation: None,
-        module: "mutable_debug_assertion",
-    },
-    Lint {
-        name: "decimal_literal_representation",
-        group: "restriction",
-        desc: "using decimal representation when hexadecimal would be better",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "declare_interior_mutable_const",
-        group: "style",
-        desc: "declaring `const` with interior mutability",
-        deprecation: None,
-        module: "non_copy_const",
-    },
-    Lint {
-        name: "default_trait_access",
-        group: "pedantic",
-        desc: "checks for literal calls to `Default::default()`",
-        deprecation: None,
-        module: "default",
-    },
-    Lint {
-        name: "deprecated_cfg_attr",
-        group: "complexity",
-        desc: "usage of `cfg_attr(rustfmt)` instead of tool attributes",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "deprecated_semver",
-        group: "correctness",
-        desc: "use of `#[deprecated(since = \"x\")]` where x is not semver",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "deref_addrof",
-        group: "complexity",
-        desc: "use of `*&` or `*&mut` in an expression",
-        deprecation: None,
-        module: "reference",
-    },
-    Lint {
-        name: "derive_hash_xor_eq",
-        group: "correctness",
-        desc: "deriving `Hash` but implementing `PartialEq` explicitly",
-        deprecation: None,
-        module: "derive",
-    },
-    Lint {
-        name: "derive_ord_xor_partial_ord",
-        group: "correctness",
-        desc: "deriving `Ord` but implementing `PartialOrd` explicitly",
-        deprecation: None,
-        module: "derive",
-    },
-    Lint {
-        name: "disallowed_method",
-        group: "nursery",
-        desc: "use of a disallowed method call",
-        deprecation: None,
-        module: "disallowed_method",
-    },
-    Lint {
-        name: "diverging_sub_expression",
-        group: "complexity",
-        desc: "whether an expression contains a diverging sub expression",
-        deprecation: None,
-        module: "eval_order_dependence",
-    },
-    Lint {
-        name: "doc_markdown",
-        group: "pedantic",
-        desc: "presence of `_`, `::` or camel-case outside backticks in documentation",
-        deprecation: None,
-        module: "doc",
-    },
-    Lint {
-        name: "double_comparisons",
-        group: "complexity",
-        desc: "unnecessary double comparisons that can be simplified",
-        deprecation: None,
-        module: "double_comparison",
-    },
-    Lint {
-        name: "double_must_use",
-        group: "style",
-        desc: "`#[must_use]` attribute on a `#[must_use]`-returning function / method",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "double_neg",
-        group: "style",
-        desc: "`--x`, which is a double negation of `x` and not a pre-decrement as in C/C++",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "double_parens",
-        group: "complexity",
-        desc: "Warn on unnecessary double parentheses",
-        deprecation: None,
-        module: "double_parens",
-    },
-    Lint {
-        name: "drop_copy",
-        group: "correctness",
-        desc: "calls to `std::mem::drop` with a value that implements Copy",
-        deprecation: None,
-        module: "drop_forget_ref",
-    },
-    Lint {
-        name: "drop_ref",
-        group: "correctness",
-        desc: "calls to `std::mem::drop` with a reference instead of an owned value",
-        deprecation: None,
-        module: "drop_forget_ref",
-    },
-    Lint {
-        name: "duplicate_underscore_argument",
-        group: "style",
-        desc: "function arguments having names which only differ by an underscore",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "duration_subsec",
-        group: "complexity",
-        desc: "checks for calculation of subsecond microseconds or milliseconds",
-        deprecation: None,
-        module: "duration_subsec",
-    },
-    Lint {
-        name: "else_if_without_else",
-        group: "restriction",
-        desc: "`if` expression with an `else if`, but without a final `else` branch",
-        deprecation: None,
-        module: "else_if_without_else",
-    },
-    Lint {
-        name: "empty_enum",
-        group: "pedantic",
-        desc: "enum with no variants",
-        deprecation: None,
-        module: "empty_enum",
-    },
-    Lint {
-        name: "empty_line_after_outer_attr",
-        group: "nursery",
-        desc: "empty line after outer attribute",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "empty_loop",
-        group: "style",
-        desc: "empty `loop {}`, which should block or sleep",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "enum_clike_unportable_variant",
-        group: "correctness",
-        desc: "C-like enums that are `repr(isize/usize)` and have values that don\'t fit into an `i32`",
-        deprecation: None,
-        module: "enum_clike",
-    },
-    Lint {
-        name: "enum_glob_use",
-        group: "pedantic",
-        desc: "use items that import all variants of an enum",
-        deprecation: None,
-        module: "wildcard_imports",
-    },
-    Lint {
-        name: "enum_variant_names",
-        group: "style",
-        desc: "enums where all variants share a prefix/postfix",
-        deprecation: None,
-        module: "enum_variants",
-    },
-    Lint {
-        name: "eq_op",
-        group: "correctness",
-        desc: "equal operands on both sides of a comparison or bitwise combination (e.g., `x == x`)",
-        deprecation: None,
-        module: "eq_op",
-    },
-    Lint {
-        name: "erasing_op",
-        group: "correctness",
-        desc: "using erasing operations, e.g., `x * 0` or `y & 0`",
-        deprecation: None,
-        module: "erasing_op",
-    },
-    Lint {
-        name: "eval_order_dependence",
-        group: "complexity",
-        desc: "whether a variable read occurs before a write depends on sub-expression evaluation order",
-        deprecation: None,
-        module: "eval_order_dependence",
-    },
-    Lint {
-        name: "excessive_precision",
-        group: "style",
-        desc: "excessive precision for float literal",
-        deprecation: None,
-        module: "float_literal",
-    },
-    Lint {
-        name: "exit",
-        group: "restriction",
-        desc: "`std::process::exit` is called, terminating the program",
-        deprecation: None,
-        module: "exit",
-    },
-    Lint {
-        name: "expect_fun_call",
-        group: "perf",
-        desc: "using any `expect` method with a function call",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "expect_used",
-        group: "restriction",
-        desc: "using `.expect()` on `Result` or `Option`, which might be better handled",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "expl_impl_clone_on_copy",
-        group: "pedantic",
-        desc: "implementing `Clone` explicitly on `Copy` types",
-        deprecation: None,
-        module: "derive",
-    },
-    Lint {
-        name: "explicit_counter_loop",
-        group: "complexity",
-        desc: "for-looping with an explicit counter when `_.enumerate()` would do",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "explicit_deref_methods",
-        group: "pedantic",
-        desc: "Explicit use of deref or deref_mut method while not in a method chain.",
-        deprecation: None,
-        module: "dereference",
-    },
-    Lint {
-        name: "explicit_into_iter_loop",
-        group: "pedantic",
-        desc: "for-looping over `_.into_iter()` when `_` would do",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "explicit_iter_loop",
-        group: "pedantic",
-        desc: "for-looping over `_.iter()` or `_.iter_mut()` when `&_` or `&mut _` would do",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "explicit_write",
-        group: "complexity",
-        desc: "using the `write!()` family of functions instead of the `print!()` family of functions, when using the latter would work",
-        deprecation: None,
-        module: "explicit_write",
-    },
-    Lint {
-        name: "extra_unused_lifetimes",
-        group: "complexity",
-        desc: "unused lifetimes in function definitions",
-        deprecation: None,
-        module: "lifetimes",
-    },
-    Lint {
-        name: "fallible_impl_from",
-        group: "nursery",
-        desc: "Warn on impls of `From<..>` that contain `panic!()` or `unwrap()`",
-        deprecation: None,
-        module: "fallible_impl_from",
-    },
-    Lint {
-        name: "field_reassign_with_default",
-        group: "style",
-        desc: "binding initialized with Default should have its fields set in the initializer",
-        deprecation: None,
-        module: "default",
-    },
-    Lint {
-        name: "filetype_is_file",
-        group: "restriction",
-        desc: "`FileType::is_file` is not recommended to test for readable file type",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "filter_map",
-        group: "pedantic",
-        desc: "using combinations of `filter`, `map`, `filter_map` and `flat_map` which can usually be written as a single method call",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "filter_map_next",
-        group: "pedantic",
-        desc: "using combination of `filter_map` and `next` which can usually be written as a single method call",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "filter_next",
-        group: "complexity",
-        desc: "using `filter(p).next()`, which is more succinctly expressed as `.find(p)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "find_map",
-        group: "pedantic",
-        desc: "using a combination of `find` and `map` can usually be written as a single method call",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "flat_map_identity",
-        group: "complexity",
-        desc: "call to `flat_map` where `flatten` is sufficient",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "float_arithmetic",
-        group: "restriction",
-        desc: "any floating-point arithmetic statement",
-        deprecation: None,
-        module: "arithmetic",
-    },
-    Lint {
-        name: "float_cmp",
-        group: "correctness",
-        desc: "using `==` or `!=` on float values instead of comparing difference with an epsilon",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "float_cmp_const",
-        group: "restriction",
-        desc: "using `==` or `!=` on float constants instead of comparing difference with an epsilon",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "float_equality_without_abs",
-        group: "correctness",
-        desc: "float equality check without `.abs()`",
-        deprecation: None,
-        module: "float_equality_without_abs",
-    },
-    Lint {
-        name: "fn_address_comparisons",
-        group: "correctness",
-        desc: "comparison with an address of a function item",
-        deprecation: None,
-        module: "unnamed_address",
-    },
-    Lint {
-        name: "fn_params_excessive_bools",
-        group: "pedantic",
-        desc: "using too many bools in function parameters",
-        deprecation: None,
-        module: "excessive_bools",
-    },
-    Lint {
-        name: "fn_to_numeric_cast",
-        group: "style",
-        desc: "casting a function pointer to a numeric type other than usize",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "fn_to_numeric_cast_with_truncation",
-        group: "style",
-        desc: "casting a function pointer to a numeric type not wide enough to store the address",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "for_kv_map",
-        group: "style",
-        desc: "looping on a map using `iter` when `keys` or `values` would do",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "for_loops_over_fallibles",
-        group: "correctness",
-        desc: "for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "forget_copy",
-        group: "correctness",
-        desc: "calls to `std::mem::forget` with a value that implements Copy",
-        deprecation: None,
-        module: "drop_forget_ref",
-    },
-    Lint {
-        name: "forget_ref",
-        group: "correctness",
-        desc: "calls to `std::mem::forget` with a reference instead of an owned value",
-        deprecation: None,
-        module: "drop_forget_ref",
-    },
-    Lint {
-        name: "from_iter_instead_of_collect",
-        group: "style",
-        desc: "use `.collect()` instead of `::from_iter()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "future_not_send",
-        group: "nursery",
-        desc: "public Futures must be Send",
-        deprecation: None,
-        module: "future_not_send",
-    },
-    Lint {
-        name: "get_last_with_len",
-        group: "complexity",
-        desc: "Using `x.get(x.len() - 1)` when `x.last()` is correct and simpler",
-        deprecation: None,
-        module: "get_last_with_len",
-    },
-    Lint {
-        name: "get_unwrap",
-        group: "restriction",
-        desc: "using `.get().unwrap()` or `.get_mut().unwrap()` when using `[]` would work instead",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "identity_op",
-        group: "complexity",
-        desc: "using identity operations, e.g., `x + 0` or `y / 1`",
-        deprecation: None,
-        module: "identity_op",
-    },
-    Lint {
-        name: "if_let_mutex",
-        group: "correctness",
-        desc: "locking a `Mutex` in an `if let` block can cause deadlocks",
-        deprecation: None,
-        module: "if_let_mutex",
-    },
-    Lint {
-        name: "if_let_some_result",
-        group: "style",
-        desc: "usage of `ok()` in `if let Some(pat)` statements is unnecessary, match on `Ok(pat)` instead",
-        deprecation: None,
-        module: "if_let_some_result",
-    },
-    Lint {
-        name: "if_not_else",
-        group: "pedantic",
-        desc: "`if` branches that could be swapped so no negation operation is necessary on the condition",
-        deprecation: None,
-        module: "if_not_else",
-    },
-    Lint {
-        name: "if_same_then_else",
-        group: "correctness",
-        desc: "`if` with the same `then` and `else` blocks",
-        deprecation: None,
-        module: "copies",
-    },
-    Lint {
-        name: "ifs_same_cond",
-        group: "correctness",
-        desc: "consecutive `if`s with the same condition",
-        deprecation: None,
-        module: "copies",
-    },
-    Lint {
-        name: "implicit_hasher",
-        group: "pedantic",
-        desc: "missing generalization over different hashers",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "implicit_return",
-        group: "restriction",
-        desc: "use a return statement like `return expr` instead of an expression",
-        deprecation: None,
-        module: "implicit_return",
-    },
-    Lint {
-        name: "implicit_saturating_sub",
-        group: "pedantic",
-        desc: "Perform saturating subtraction instead of implicitly checking lower bound of data type",
-        deprecation: None,
-        module: "implicit_saturating_sub",
-    },
-    Lint {
-        name: "imprecise_flops",
-        group: "nursery",
-        desc: "usage of imprecise floating point operations",
-        deprecation: None,
-        module: "floating_point_arithmetic",
-    },
-    Lint {
-        name: "inconsistent_digit_grouping",
-        group: "style",
-        desc: "integer literals with digits grouped inconsistently",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "indexing_slicing",
-        group: "restriction",
-        desc: "indexing/slicing usage",
-        deprecation: None,
-        module: "indexing_slicing",
-    },
-    Lint {
-        name: "ineffective_bit_mask",
-        group: "correctness",
-        desc: "expressions where a bit mask will be rendered useless by a comparison, e.g., `(x | 1) > 2`",
-        deprecation: None,
-        module: "bit_mask",
-    },
-    Lint {
-        name: "inefficient_to_string",
-        group: "pedantic",
-        desc: "using `to_string` on `&&T` where `T: ToString`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "infallible_destructuring_match",
-        group: "style",
-        desc: "a `match` statement with a single infallible arm instead of a `let`",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "infinite_iter",
-        group: "correctness",
-        desc: "infinite iteration",
-        deprecation: None,
-        module: "infinite_iter",
-    },
-    Lint {
-        name: "inherent_to_string",
-        group: "style",
-        desc: "type implements inherent method `to_string()`, but should instead implement the `Display` trait",
-        deprecation: None,
-        module: "inherent_to_string",
-    },
-    Lint {
-        name: "inherent_to_string_shadow_display",
-        group: "correctness",
-        desc: "type implements inherent method `to_string()`, which gets shadowed by the implementation of the `Display` trait",
-        deprecation: None,
-        module: "inherent_to_string",
-    },
-    Lint {
-        name: "inline_always",
-        group: "pedantic",
-        desc: "use of `#[inline(always)]`",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "inline_asm_x86_att_syntax",
-        group: "restriction",
-        desc: "prefer Intel x86 assembly syntax",
-        deprecation: None,
-        module: "asm_syntax",
-    },
-    Lint {
-        name: "inline_asm_x86_intel_syntax",
-        group: "restriction",
-        desc: "prefer AT&T x86 assembly syntax",
-        deprecation: None,
-        module: "asm_syntax",
-    },
-    Lint {
-        name: "inline_fn_without_body",
-        group: "correctness",
-        desc: "use of `#[inline]` on trait methods without bodies",
-        deprecation: None,
-        module: "inline_fn_without_body",
-    },
-    Lint {
-        name: "int_plus_one",
-        group: "complexity",
-        desc: "instead of using `x >= y + 1`, use `x > y`",
-        deprecation: None,
-        module: "int_plus_one",
-    },
-    Lint {
-        name: "integer_arithmetic",
-        group: "restriction",
-        desc: "any integer arithmetic expression which could overflow or panic",
-        deprecation: None,
-        module: "arithmetic",
-    },
-    Lint {
-        name: "integer_division",
-        group: "restriction",
-        desc: "integer division may cause loss of precision",
-        deprecation: None,
-        module: "integer_division",
-    },
-    Lint {
-        name: "into_iter_on_ref",
-        group: "style",
-        desc: "using `.into_iter()` on a reference",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "invalid_atomic_ordering",
-        group: "correctness",
-        desc: "usage of invalid atomic ordering in atomic operations and memory fences",
-        deprecation: None,
-        module: "atomic_ordering",
-    },
-    Lint {
-        name: "invalid_regex",
-        group: "correctness",
-        desc: "invalid regular expressions",
-        deprecation: None,
-        module: "regex",
-    },
-    Lint {
-        name: "invalid_upcast_comparisons",
-        group: "pedantic",
-        desc: "a comparison involving an upcast which is always true or false",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "invisible_characters",
-        group: "correctness",
-        desc: "using an invisible character in a string literal, which is confusing",
-        deprecation: None,
-        module: "unicode",
-    },
-    Lint {
-        name: "items_after_statements",
-        group: "pedantic",
-        desc: "blocks where an item comes after a statement",
-        deprecation: None,
-        module: "items_after_statements",
-    },
-    Lint {
-        name: "iter_cloned_collect",
-        group: "style",
-        desc: "using `.cloned().collect()` on slice to create a `Vec`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "iter_next_loop",
-        group: "correctness",
-        desc: "for-looping over `_.next()` which is probably not intended",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "iter_next_slice",
-        group: "style",
-        desc: "using `.iter().next()` on a sliced array, which can be shortened to just `.get()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "iter_nth",
-        group: "perf",
-        desc: "using `.iter().nth()` on a standard library type with O(1) element access",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "iter_nth_zero",
-        group: "style",
-        desc: "replace `iter.nth(0)` with `iter.next()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "iter_skip_next",
-        group: "style",
-        desc: "using `.skip(x).next()` on an iterator",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "iterator_step_by_zero",
-        group: "correctness",
-        desc: "using `Iterator::step_by(0)`, which will panic at runtime",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "just_underscores_and_digits",
-        group: "style",
-        desc: "unclear name",
-        deprecation: None,
-        module: "non_expressive_names",
-    },
-    Lint {
-        name: "large_const_arrays",
-        group: "perf",
-        desc: "large non-scalar const array may cause performance overhead",
-        deprecation: None,
-        module: "large_const_arrays",
-    },
-    Lint {
-        name: "large_digit_groups",
-        group: "pedantic",
-        desc: "grouping digits into groups that are too large",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "large_enum_variant",
-        group: "perf",
-        desc: "large size difference between variants on an enum",
-        deprecation: None,
-        module: "large_enum_variant",
-    },
-    Lint {
-        name: "large_stack_arrays",
-        group: "pedantic",
-        desc: "allocating large arrays on stack may cause stack overflow",
-        deprecation: None,
-        module: "large_stack_arrays",
-    },
-    Lint {
-        name: "large_types_passed_by_value",
-        group: "pedantic",
-        desc: "functions taking large arguments by value",
-        deprecation: None,
-        module: "pass_by_ref_or_value",
-    },
-    Lint {
-        name: "len_without_is_empty",
-        group: "style",
-        desc: "traits or impls with a public `len` method but no corresponding `is_empty` method",
-        deprecation: None,
-        module: "len_zero",
-    },
-    Lint {
-        name: "len_zero",
-        group: "style",
-        desc: "checking `.len() == 0` or `.len() > 0` (or similar) when `.is_empty()` could be used instead",
-        deprecation: None,
-        module: "len_zero",
-    },
-    Lint {
-        name: "let_and_return",
-        group: "style",
-        desc: "creating a let-binding and then immediately returning it like `let x = expr; x` at the end of a block",
-        deprecation: None,
-        module: "returns",
-    },
-    Lint {
-        name: "let_underscore_drop",
-        group: "pedantic",
-        desc: "non-binding let on a type that implements `Drop`",
-        deprecation: None,
-        module: "let_underscore",
-    },
-    Lint {
-        name: "let_underscore_lock",
-        group: "correctness",
-        desc: "non-binding let on a synchronization lock",
-        deprecation: None,
-        module: "let_underscore",
-    },
-    Lint {
-        name: "let_underscore_must_use",
-        group: "restriction",
-        desc: "non-binding let on a `#[must_use]` expression",
-        deprecation: None,
-        module: "let_underscore",
-    },
-    Lint {
-        name: "let_unit_value",
-        group: "pedantic",
-        desc: "creating a `let` binding to a value of unit type, which usually can\'t be used afterwards",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "linkedlist",
-        group: "pedantic",
-        desc: "usage of LinkedList, usually a vector is faster, or a more specialized data structure like a `VecDeque`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "logic_bug",
-        group: "correctness",
-        desc: "boolean expressions that contain terminals which can be eliminated",
-        deprecation: None,
-        module: "booleans",
-    },
-    Lint {
-        name: "lossy_float_literal",
-        group: "restriction",
-        desc: "lossy whole number float literals",
-        deprecation: None,
-        module: "float_literal",
-    },
-    Lint {
-        name: "macro_use_imports",
-        group: "pedantic",
-        desc: "#[macro_use] is no longer needed",
-        deprecation: None,
-        module: "macro_use",
-    },
-    Lint {
-        name: "main_recursion",
-        group: "style",
-        desc: "recursion using the entrypoint",
-        deprecation: None,
-        module: "main_recursion",
-    },
-    Lint {
-        name: "manual_async_fn",
-        group: "style",
-        desc: "manual implementations of `async` functions can be simplified using the dedicated syntax",
-        deprecation: None,
-        module: "manual_async_fn",
-    },
-    Lint {
-        name: "manual_memcpy",
-        group: "perf",
-        desc: "manually copying items between slices",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "manual_non_exhaustive",
-        group: "style",
-        desc: "manual implementations of the non-exhaustive pattern can be simplified using #[non_exhaustive]",
-        deprecation: None,
-        module: "manual_non_exhaustive",
-    },
-    Lint {
-        name: "manual_ok_or",
-        group: "pedantic",
-        desc: "finds patterns that can be encoded more concisely with `Option::ok_or`",
-        deprecation: None,
-        module: "manual_ok_or",
-    },
-    Lint {
-        name: "manual_range_contains",
-        group: "style",
-        desc: "manually reimplementing {`Range`, `RangeInclusive`}`::contains`",
-        deprecation: None,
-        module: "ranges",
-    },
-    Lint {
-        name: "manual_saturating_arithmetic",
-        group: "style",
-        desc: "`.chcked_add/sub(x).unwrap_or(MAX/MIN)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "manual_strip",
-        group: "complexity",
-        desc: "suggests using `strip_{prefix,suffix}` over `str::{starts,ends}_with` and slicing",
-        deprecation: None,
-        module: "manual_strip",
-    },
-    Lint {
-        name: "manual_swap",
-        group: "complexity",
-        desc: "manual swap of two variables",
-        deprecation: None,
-        module: "swap",
-    },
-    Lint {
-        name: "manual_unwrap_or",
-        group: "complexity",
-        desc: "finds patterns that can be encoded more concisely with `Option::unwrap_or` or `Result::unwrap_or`",
-        deprecation: None,
-        module: "manual_unwrap_or",
-    },
-    Lint {
-        name: "many_single_char_names",
-        group: "style",
-        desc: "too many single character bindings",
-        deprecation: None,
-        module: "non_expressive_names",
-    },
-    Lint {
-        name: "map_clone",
-        group: "style",
-        desc: "using `iterator.map(|x| x.clone())`, or dereferencing closures for `Copy` types",
-        deprecation: None,
-        module: "map_clone",
-    },
-    Lint {
-        name: "map_collect_result_unit",
-        group: "style",
-        desc: "using `.map(_).collect::<Result<(),_>()`, which can be replaced with `try_for_each`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "map_entry",
-        group: "perf",
-        desc: "use of `contains_key` followed by `insert` on a `HashMap` or `BTreeMap`",
-        deprecation: None,
-        module: "entry",
-    },
-    Lint {
-        name: "map_err_ignore",
-        group: "pedantic",
-        desc: "`map_err` should not ignore the original error",
-        deprecation: None,
-        module: "map_err_ignore",
-    },
-    Lint {
-        name: "map_flatten",
-        group: "pedantic",
-        desc: "using combinations of `flatten` and `map` which can usually be written as a single method call",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "map_identity",
-        group: "complexity",
-        desc: "using iterator.map(|x| x)",
-        deprecation: None,
-        module: "map_identity",
-    },
-    Lint {
-        name: "map_unwrap_or",
-        group: "pedantic",
-        desc: "using `.map(f).unwrap_or(a)` or `.map(f).unwrap_or_else(func)`, which are more succinctly expressed as `map_or(a, f)` or `map_or_else(a, f)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "match_as_ref",
-        group: "complexity",
-        desc: "a `match` on an Option value instead of using `as_ref()` or `as_mut`",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_bool",
-        group: "pedantic",
-        desc: "a `match` on a boolean expression instead of an `if..else` block",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_like_matches_macro",
-        group: "style",
-        desc: "a match that could be written with the matches! macro",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_on_vec_items",
-        group: "pedantic",
-        desc: "matching on vector elements can panic",
-        deprecation: None,
-        module: "match_on_vec_items",
-    },
-    Lint {
-        name: "match_overlapping_arm",
-        group: "style",
-        desc: "a `match` with overlapping arms",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_ref_pats",
-        group: "style",
-        desc: "a `match` or `if let` with all arms prefixed with `&` instead of deref-ing the match expression",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_same_arms",
-        group: "pedantic",
-        desc: "`match` with identical arm bodies",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_single_binding",
-        group: "complexity",
-        desc: "a match with a single binding instead of using `let` statement",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_wild_err_arm",
-        group: "pedantic",
-        desc: "a `match` with `Err(_)` arm and take drastic actions",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "match_wildcard_for_single_variants",
-        group: "pedantic",
-        desc: "a wildcard enum match for a single variant",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "maybe_infinite_iter",
-        group: "pedantic",
-        desc: "possible infinite iteration",
-        deprecation: None,
-        module: "infinite_iter",
-    },
-    Lint {
-        name: "mem_discriminant_non_enum",
-        group: "correctness",
-        desc: "calling `mem::descriminant` on non-enum type",
-        deprecation: None,
-        module: "mem_discriminant",
-    },
-    Lint {
-        name: "mem_forget",
-        group: "restriction",
-        desc: "`mem::forget` usage on `Drop` types, likely to cause memory leaks",
-        deprecation: None,
-        module: "mem_forget",
-    },
-    Lint {
-        name: "mem_replace_option_with_none",
-        group: "style",
-        desc: "replacing an `Option` with `None` instead of `take()`",
-        deprecation: None,
-        module: "mem_replace",
-    },
-    Lint {
-        name: "mem_replace_with_default",
-        group: "style",
-        desc: "replacing a value of type `T` with `T::default()` instead of using `std::mem::take`",
-        deprecation: None,
-        module: "mem_replace",
-    },
-    Lint {
-        name: "mem_replace_with_uninit",
-        group: "correctness",
-        desc: "`mem::replace(&mut _, mem::uninitialized())` or `mem::replace(&mut _, mem::zeroed())`",
-        deprecation: None,
-        module: "mem_replace",
-    },
-    Lint {
-        name: "min_max",
-        group: "correctness",
-        desc: "`min(_, max(_, _))` (or vice versa) with bounds clamping the result to a constant",
-        deprecation: None,
-        module: "minmax",
-    },
-    Lint {
-        name: "mismatched_target_os",
-        group: "correctness",
-        desc: "usage of `cfg(operating_system)` instead of `cfg(target_os = \"operating_system\")`",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "misrefactored_assign_op",
-        group: "complexity",
-        desc: "having a variable on both sides of an assign op",
-        deprecation: None,
-        module: "assign_ops",
-    },
-    Lint {
-        name: "missing_const_for_fn",
-        group: "nursery",
-        desc: "Lint functions definitions that could be made `const fn`",
-        deprecation: None,
-        module: "missing_const_for_fn",
-    },
-    Lint {
-        name: "missing_docs_in_private_items",
-        group: "restriction",
-        desc: "detects missing documentation for public and private members",
-        deprecation: None,
-        module: "missing_doc",
-    },
-    Lint {
-        name: "missing_errors_doc",
-        group: "pedantic",
-        desc: "`pub fn` returns `Result` without `# Errors` in doc comment",
-        deprecation: None,
-        module: "doc",
-    },
-    Lint {
-        name: "missing_inline_in_public_items",
-        group: "restriction",
-        desc: "detects missing `#[inline]` attribute for public callables (functions, trait methods, methods...)",
-        deprecation: None,
-        module: "missing_inline",
-    },
-    Lint {
-        name: "missing_safety_doc",
-        group: "style",
-        desc: "`pub unsafe fn` without `# Safety` docs",
-        deprecation: None,
-        module: "doc",
-    },
-    Lint {
-        name: "mistyped_literal_suffixes",
-        group: "correctness",
-        desc: "mistyped literal suffix",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "mixed_case_hex_literals",
-        group: "style",
-        desc: "hex literals whose letter digits are not consistently upper- or lowercased",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "module_inception",
-        group: "style",
-        desc: "modules that have the same name as their parent module",
-        deprecation: None,
-        module: "enum_variants",
-    },
-    Lint {
-        name: "module_name_repetitions",
-        group: "pedantic",
-        desc: "type names prefixed/postfixed with their containing module\'s name",
-        deprecation: None,
-        module: "enum_variants",
-    },
-    Lint {
-        name: "modulo_arithmetic",
-        group: "restriction",
-        desc: "any modulo arithmetic statement",
-        deprecation: None,
-        module: "modulo_arithmetic",
-    },
-    Lint {
-        name: "modulo_one",
-        group: "correctness",
-        desc: "taking a number modulo 1, which always returns 0",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "multiple_crate_versions",
-        group: "cargo",
-        desc: "multiple versions of the same crate being used",
-        deprecation: None,
-        module: "multiple_crate_versions",
-    },
-    Lint {
-        name: "multiple_inherent_impl",
-        group: "restriction",
-        desc: "Multiple inherent impl that could be grouped",
-        deprecation: None,
-        module: "inherent_impl",
-    },
-    Lint {
-        name: "must_use_candidate",
-        group: "pedantic",
-        desc: "function or method that could take a `#[must_use]` attribute",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "must_use_unit",
-        group: "style",
-        desc: "`#[must_use]` attribute on a unit-returning function / method",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "mut_from_ref",
-        group: "correctness",
-        desc: "fns that create mutable refs from immutable ref args",
-        deprecation: None,
-        module: "ptr",
-    },
-    Lint {
-        name: "mut_mut",
-        group: "pedantic",
-        desc: "usage of double-mut refs, e.g., `&mut &mut ...`",
-        deprecation: None,
-        module: "mut_mut",
-    },
-    Lint {
-        name: "mut_mutex_lock",
-        group: "style",
-        desc: "`&mut Mutex::lock` does unnecessary locking",
-        deprecation: None,
-        module: "mut_mutex_lock",
-    },
-    Lint {
-        name: "mut_range_bound",
-        group: "complexity",
-        desc: "for loop over a range where one of the bounds is a mutable variable",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "mutable_key_type",
-        group: "correctness",
-        desc: "Check for mutable `Map`/`Set` key type",
-        deprecation: None,
-        module: "mut_key",
-    },
-    Lint {
-        name: "mutex_atomic",
-        group: "perf",
-        desc: "using a mutex where an atomic value could be used instead",
-        deprecation: None,
-        module: "mutex_atomic",
-    },
-    Lint {
-        name: "mutex_integer",
-        group: "nursery",
-        desc: "using a mutex for an integer type",
-        deprecation: None,
-        module: "mutex_atomic",
-    },
-    Lint {
-        name: "naive_bytecount",
-        group: "perf",
-        desc: "use of naive `<slice>.filter(|&x| x == y).count()` to count byte values",
-        deprecation: None,
-        module: "bytecount",
-    },
-    Lint {
-        name: "needless_arbitrary_self_type",
-        group: "complexity",
-        desc: "type of `self` parameter is already by default `Self`",
-        deprecation: None,
-        module: "needless_arbitrary_self_type",
-    },
-    Lint {
-        name: "needless_bool",
-        group: "complexity",
-        desc: "if-statements with plain booleans in the then- and else-clause, e.g., `if p { true } else { false }`",
-        deprecation: None,
-        module: "needless_bool",
-    },
-    Lint {
-        name: "needless_borrow",
-        group: "nursery",
-        desc: "taking a reference that is going to be automatically dereferenced",
-        deprecation: None,
-        module: "needless_borrow",
-    },
-    Lint {
-        name: "needless_borrowed_reference",
-        group: "complexity",
-        desc: "taking a needless borrowed reference",
-        deprecation: None,
-        module: "needless_borrowed_ref",
-    },
-    Lint {
-        name: "needless_collect",
-        group: "perf",
-        desc: "collecting an iterator when collect is not needed",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "needless_continue",
-        group: "pedantic",
-        desc: "`continue` statements that can be replaced by a rearrangement of code",
-        deprecation: None,
-        module: "needless_continue",
-    },
-    Lint {
-        name: "needless_doctest_main",
-        group: "style",
-        desc: "presence of `fn main() {` in code examples",
-        deprecation: None,
-        module: "doc",
-    },
-    Lint {
-        name: "needless_lifetimes",
-        group: "complexity",
-        desc: "using explicit lifetimes for references in function arguments when elision rules would allow omitting them",
-        deprecation: None,
-        module: "lifetimes",
-    },
-    Lint {
-        name: "needless_pass_by_value",
-        group: "pedantic",
-        desc: "functions taking arguments by value, but not consuming them in its body",
-        deprecation: None,
-        module: "needless_pass_by_value",
-    },
-    Lint {
-        name: "needless_range_loop",
-        group: "style",
-        desc: "for-looping over a range of indices where an iterator over items would do",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "needless_return",
-        group: "style",
-        desc: "using a return statement like `return expr;` where an expression would suffice",
-        deprecation: None,
-        module: "returns",
-    },
-    Lint {
-        name: "needless_update",
-        group: "complexity",
-        desc: "using `Foo { ..base }` when there are no missing fields",
-        deprecation: None,
-        module: "needless_update",
-    },
-    Lint {
-        name: "neg_cmp_op_on_partial_ord",
-        group: "complexity",
-        desc: "The use of negated comparison operators on partially ordered types may produce confusing code.",
-        deprecation: None,
-        module: "neg_cmp_op_on_partial_ord",
-    },
-    Lint {
-        name: "neg_multiply",
-        group: "style",
-        desc: "multiplying integers with `-1`",
-        deprecation: None,
-        module: "neg_multiply",
-    },
-    Lint {
-        name: "never_loop",
-        group: "correctness",
-        desc: "any loop that will always `break` or `return`",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "new_ret_no_self",
-        group: "style",
-        desc: "not returning type containing `Self` in a `new` method",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "new_without_default",
-        group: "style",
-        desc: "`fn new() -> Self` method without `Default` implementation",
-        deprecation: None,
-        module: "new_without_default",
-    },
-    Lint {
-        name: "no_effect",
-        group: "complexity",
-        desc: "statements with no effect",
-        deprecation: None,
-        module: "no_effect",
-    },
-    Lint {
-        name: "non_ascii_literal",
-        group: "pedantic",
-        desc: "using any literal non-ASCII chars in a string literal instead of using the `\\\\u` escape",
-        deprecation: None,
-        module: "unicode",
-    },
-    Lint {
-        name: "nonminimal_bool",
-        group: "complexity",
-        desc: "boolean expressions that can be written more concisely",
-        deprecation: None,
-        module: "booleans",
-    },
-    Lint {
-        name: "nonsensical_open_options",
-        group: "correctness",
-        desc: "nonsensical combination of options for opening a file",
-        deprecation: None,
-        module: "open_options",
-    },
-    Lint {
-        name: "not_unsafe_ptr_arg_deref",
-        group: "correctness",
-        desc: "public functions dereferencing raw pointer arguments but not marked `unsafe`",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "ok_expect",
-        group: "style",
-        desc: "using `ok().expect()`, which gives worse error messages than calling `expect` directly on the Result",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "op_ref",
-        group: "style",
-        desc: "taking a reference to satisfy the type constraints on `==`",
-        deprecation: None,
-        module: "eq_op",
-    },
-    Lint {
-        name: "option_as_ref_deref",
-        group: "complexity",
-        desc: "using `as_ref().map(Deref::deref)`, which is more succinctly expressed as `as_deref()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "option_env_unwrap",
-        group: "correctness",
-        desc: "using `option_env!(...).unwrap()` to get environment variable",
-        deprecation: None,
-        module: "option_env_unwrap",
-    },
-    Lint {
-        name: "option_if_let_else",
-        group: "pedantic",
-        desc: "reimplementation of Option::map_or",
-        deprecation: None,
-        module: "option_if_let_else",
-    },
-    Lint {
-        name: "option_map_or_none",
-        group: "style",
-        desc: "using `Option.map_or(None, f)`, which is more succinctly expressed as `and_then(f)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "option_map_unit_fn",
-        group: "complexity",
-        desc: "using `option.map(f)`, where `f` is a function or closure that returns `()`",
-        deprecation: None,
-        module: "map_unit_fn",
-    },
-    Lint {
-        name: "option_option",
-        group: "pedantic",
-        desc: "usage of `Option<Option<T>>`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "or_fun_call",
-        group: "perf",
-        desc: "using any `*or` method with a function call, which suggests `*or_else`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "out_of_bounds_indexing",
-        group: "correctness",
-        desc: "out of bounds constant indexing",
-        deprecation: None,
-        module: "indexing_slicing",
-    },
-    Lint {
-        name: "overflow_check_conditional",
-        group: "complexity",
-        desc: "overflow checks inspired by C which are likely to panic",
-        deprecation: None,
-        module: "overflow_check_conditional",
-    },
-    Lint {
-        name: "panic",
-        group: "restriction",
-        desc: "usage of the `panic!` macro",
-        deprecation: None,
-        module: "panic_unimplemented",
-    },
-    Lint {
-        name: "panic_in_result_fn",
-        group: "restriction",
-        desc: "functions of type `Result<..>` that contain `panic!()`, `todo!()` or `unreachable()` or `unimplemented()` ",
-        deprecation: None,
-        module: "panic_in_result_fn",
-    },
-    Lint {
-        name: "panicking_unwrap",
-        group: "correctness",
-        desc: "checks for calls of `unwrap[_err]()` that will always fail",
-        deprecation: None,
-        module: "unwrap",
-    },
-    Lint {
-        name: "partialeq_ne_impl",
-        group: "complexity",
-        desc: "re-implementing `PartialEq::ne`",
-        deprecation: None,
-        module: "partialeq_ne_impl",
-    },
-    Lint {
-        name: "path_buf_push_overwrite",
-        group: "nursery",
-        desc: "calling `push` with file system root on `PathBuf` can overwrite it",
-        deprecation: None,
-        module: "path_buf_push_overwrite",
-    },
-    Lint {
-        name: "pattern_type_mismatch",
-        group: "restriction",
-        desc: "type of pattern does not match the expression type",
-        deprecation: None,
-        module: "pattern_type_mismatch",
-    },
-    Lint {
-        name: "possible_missing_comma",
-        group: "correctness",
-        desc: "possible missing comma in array",
-        deprecation: None,
-        module: "formatting",
-    },
-    Lint {
-        name: "precedence",
-        group: "complexity",
-        desc: "operations where precedence may be unclear",
-        deprecation: None,
-        module: "precedence",
-    },
-    Lint {
-        name: "print_literal",
-        group: "style",
-        desc: "printing a literal with a format string",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "print_stdout",
-        group: "restriction",
-        desc: "printing on stdout",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "print_with_newline",
-        group: "style",
-        desc: "using `print!()` with a format string that ends in a single newline",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "println_empty_string",
-        group: "style",
-        desc: "using `println!(\"\")` with an empty string",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "ptr_arg",
-        group: "style",
-        desc: "fn arguments of the type `&Vec<...>` or `&String`, suggesting to use `&[...]` or `&str` instead, respectively",
-        deprecation: None,
-        module: "ptr",
-    },
-    Lint {
-        name: "ptr_eq",
-        group: "style",
-        desc: "use `std::ptr::eq` when comparing raw pointers",
-        deprecation: None,
-        module: "ptr_eq",
-    },
-    Lint {
-        name: "ptr_offset_with_cast",
-        group: "complexity",
-        desc: "unneeded pointer offset cast",
-        deprecation: None,
-        module: "ptr_offset_with_cast",
-    },
-    Lint {
-        name: "pub_enum_variant_names",
-        group: "pedantic",
-        desc: "public enums where all variants share a prefix/postfix",
-        deprecation: None,
-        module: "enum_variants",
-    },
-    Lint {
-        name: "question_mark",
-        group: "style",
-        desc: "checks for expressions that could be replaced by the question mark operator",
-        deprecation: None,
-        module: "question_mark",
-    },
-    Lint {
-        name: "range_minus_one",
-        group: "pedantic",
-        desc: "`x..=(y-1)` reads better as `x..y`",
-        deprecation: None,
-        module: "ranges",
-    },
-    Lint {
-        name: "range_plus_one",
-        group: "pedantic",
-        desc: "`x..(y+1)` reads better as `x..=y`",
-        deprecation: None,
-        module: "ranges",
-    },
-    Lint {
-        name: "range_zip_with_len",
-        group: "complexity",
-        desc: "zipping iterator with a range when `enumerate()` would do",
-        deprecation: None,
-        module: "ranges",
-    },
-    Lint {
-        name: "rc_buffer",
-        group: "restriction",
-        desc: "shared ownership of a buffer type",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "redundant_allocation",
-        group: "perf",
-        desc: "redundant allocation",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "redundant_clone",
-        group: "perf",
-        desc: "`clone()` of an owned value that is going to be dropped immediately",
-        deprecation: None,
-        module: "redundant_clone",
-    },
-    Lint {
-        name: "redundant_closure",
-        group: "style",
-        desc: "redundant closures, i.e., `|a| foo(a)` (which can be written as just `foo`)",
-        deprecation: None,
-        module: "eta_reduction",
-    },
-    Lint {
-        name: "redundant_closure_call",
-        group: "complexity",
-        desc: "throwaway closures called in the expression they are defined",
-        deprecation: None,
-        module: "redundant_closure_call",
-    },
-    Lint {
-        name: "redundant_closure_for_method_calls",
-        group: "pedantic",
-        desc: "redundant closures for method calls",
-        deprecation: None,
-        module: "eta_reduction",
-    },
-    Lint {
-        name: "redundant_field_names",
-        group: "style",
-        desc: "checks for fields in struct literals where shorthands could be used",
-        deprecation: None,
-        module: "redundant_field_names",
-    },
-    Lint {
-        name: "redundant_pattern",
-        group: "style",
-        desc: "using `name @ _` in a pattern",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "redundant_pattern_matching",
-        group: "style",
-        desc: "use the proper utility function avoiding an `if let`",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "redundant_pub_crate",
-        group: "nursery",
-        desc: "Using `pub(crate)` visibility on items that are not crate visible due to the visibility of the module that contains them.",
-        deprecation: None,
-        module: "redundant_pub_crate",
-    },
-    Lint {
-        name: "redundant_static_lifetimes",
-        group: "style",
-        desc: "Using explicit `\'static` lifetime for constants or statics when elision rules would allow omitting them.",
-        deprecation: None,
-        module: "redundant_static_lifetimes",
-    },
-    Lint {
-        name: "ref_in_deref",
-        group: "complexity",
-        desc: "Use of reference in auto dereference expression.",
-        deprecation: None,
-        module: "reference",
-    },
-    Lint {
-        name: "ref_option_ref",
-        group: "pedantic",
-        desc: "use `Option<&T>` instead of `&Option<&T>`",
-        deprecation: None,
-        module: "ref_option_ref",
-    },
-    Lint {
-        name: "repeat_once",
-        group: "complexity",
-        desc: "using `.repeat(1)` instead of `String.clone()`, `str.to_string()` or `slice.to_vec()` ",
-        deprecation: None,
-        module: "repeat_once",
-    },
-    Lint {
-        name: "rest_pat_in_fully_bound_structs",
-        group: "restriction",
-        desc: "a match on a struct that binds all fields but still uses the wildcard pattern",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "result_map_or_into_option",
-        group: "style",
-        desc: "using `Result.map_or(None, Some)`, which is more succinctly expressed as `ok()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "result_map_unit_fn",
-        group: "complexity",
-        desc: "using `result.map(f)`, where `f` is a function or closure that returns `()`",
-        deprecation: None,
-        module: "map_unit_fn",
-    },
-    Lint {
-        name: "result_unit_err",
-        group: "style",
-        desc: "public function returning `Result` with an `Err` type of `()`",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "reversed_empty_ranges",
-        group: "correctness",
-        desc: "reversing the limits of range expressions, resulting in empty ranges",
-        deprecation: None,
-        module: "ranges",
-    },
-    Lint {
-        name: "same_functions_in_if_condition",
-        group: "pedantic",
-        desc: "consecutive `if`s with the same function call",
-        deprecation: None,
-        module: "copies",
-    },
-    Lint {
-        name: "same_item_push",
-        group: "style",
-        desc: "the same item is pushed inside of a for loop",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "search_is_some",
-        group: "complexity",
-        desc: "using an iterator or string search followed by `is_some()`, which is more succinctly expressed as a call to `any()` or `contains()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "self_assignment",
-        group: "correctness",
-        desc: "explicit self-assignment",
-        deprecation: None,
-        module: "self_assignment",
-    },
-    Lint {
-        name: "serde_api_misuse",
-        group: "correctness",
-        desc: "various things that will negatively affect your serde experience",
-        deprecation: None,
-        module: "serde_api",
-    },
-    Lint {
-        name: "shadow_reuse",
-        group: "restriction",
-        desc: "rebinding a name to an expression that re-uses the original value, e.g., `let x = x + 1`",
-        deprecation: None,
-        module: "shadow",
-    },
-    Lint {
-        name: "shadow_same",
-        group: "restriction",
-        desc: "rebinding a name to itself, e.g., `let mut x = &mut x`",
-        deprecation: None,
-        module: "shadow",
-    },
-    Lint {
-        name: "shadow_unrelated",
-        group: "pedantic",
-        desc: "rebinding a name without even using the original value",
-        deprecation: None,
-        module: "shadow",
-    },
-    Lint {
-        name: "short_circuit_statement",
-        group: "complexity",
-        desc: "using a short circuit boolean condition as a statement",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "should_implement_trait",
-        group: "style",
-        desc: "defining a method that should be implementing a std trait",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "similar_names",
-        group: "pedantic",
-        desc: "similarly named items and bindings",
-        deprecation: None,
-        module: "non_expressive_names",
-    },
-    Lint {
-        name: "single_char_add_str",
-        group: "style",
-        desc: "`push_str()` or `insert_str()` used with a single-character string literal as parameter",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "single_char_pattern",
-        group: "perf",
-        desc: "using a single-character str where a char could be used, e.g., `_.split(\"x\")`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "single_component_path_imports",
-        group: "style",
-        desc: "imports with single component path are redundant",
-        deprecation: None,
-        module: "single_component_path_imports",
-    },
-    Lint {
-        name: "single_element_loop",
-        group: "complexity",
-        desc: "there is no reason to have a single element loop",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "single_match",
-        group: "style",
-        desc: "a `match` statement with a single nontrivial arm (i.e., where the other arm is `_ => {}`) instead of `if let`",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "single_match_else",
-        group: "pedantic",
-        desc: "a `match` statement with two arms where the second arm\'s pattern is a placeholder instead of a specific match pattern",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "skip_while_next",
-        group: "complexity",
-        desc: "using `skip_while(p).next()`, which is more succinctly expressed as `.find(!p)`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "slow_vector_initialization",
-        group: "perf",
-        desc: "slow vector initialization",
-        deprecation: None,
-        module: "slow_vector_initialization",
-    },
-    Lint {
-        name: "stable_sort_primitive",
-        group: "perf",
-        desc: "use of sort() when sort_unstable() is equivalent",
-        deprecation: None,
-        module: "stable_sort_primitive",
-    },
-    Lint {
-        name: "string_add",
-        group: "restriction",
-        desc: "using `x + ..` where x is a `String` instead of `push_str()`",
-        deprecation: None,
-        module: "strings",
-    },
-    Lint {
-        name: "string_add_assign",
-        group: "pedantic",
-        desc: "using `x = x + ..` where x is a `String` instead of `push_str()`",
-        deprecation: None,
-        module: "strings",
-    },
-    Lint {
-        name: "string_extend_chars",
-        group: "style",
-        desc: "using `x.extend(s.chars())` where s is a `&str` or `String`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "string_from_utf8_as_bytes",
-        group: "complexity",
-        desc: "casting string slices to byte slices and back",
-        deprecation: None,
-        module: "strings",
-    },
-    Lint {
-        name: "string_lit_as_bytes",
-        group: "nursery",
-        desc: "calling `as_bytes` on a string literal instead of using a byte string literal",
-        deprecation: None,
-        module: "strings",
-    },
-    Lint {
-        name: "struct_excessive_bools",
-        group: "pedantic",
-        desc: "using too many bools in a struct",
-        deprecation: None,
-        module: "excessive_bools",
-    },
-    Lint {
-        name: "suboptimal_flops",
-        group: "nursery",
-        desc: "usage of sub-optimal floating point operations",
-        deprecation: None,
-        module: "floating_point_arithmetic",
-    },
-    Lint {
-        name: "suspicious_arithmetic_impl",
-        group: "correctness",
-        desc: "suspicious use of operators in impl of arithmetic trait",
-        deprecation: None,
-        module: "suspicious_trait_impl",
-    },
-    Lint {
-        name: "suspicious_assignment_formatting",
-        group: "style",
-        desc: "suspicious formatting of `*=`, `-=` or `!=`",
-        deprecation: None,
-        module: "formatting",
-    },
-    Lint {
-        name: "suspicious_else_formatting",
-        group: "style",
-        desc: "suspicious formatting of `else`",
-        deprecation: None,
-        module: "formatting",
-    },
-    Lint {
-        name: "suspicious_map",
-        group: "complexity",
-        desc: "suspicious usage of map",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "suspicious_op_assign_impl",
-        group: "correctness",
-        desc: "suspicious use of operators in impl of OpAssign trait",
-        deprecation: None,
-        module: "suspicious_trait_impl",
-    },
-    Lint {
-        name: "suspicious_unary_op_formatting",
-        group: "style",
-        desc: "suspicious formatting of unary `-` or `!` on the RHS of a BinOp",
-        deprecation: None,
-        module: "formatting",
-    },
-    Lint {
-        name: "tabs_in_doc_comments",
-        group: "style",
-        desc: "using tabs in doc comments is not recommended",
-        deprecation: None,
-        module: "tabs_in_doc_comments",
-    },
-    Lint {
-        name: "temporary_assignment",
-        group: "complexity",
-        desc: "assignments to temporaries",
-        deprecation: None,
-        module: "temporary_assignment",
-    },
-    Lint {
-        name: "to_digit_is_some",
-        group: "style",
-        desc: "`char.is_digit()` is clearer",
-        deprecation: None,
-        module: "to_digit_is_some",
-    },
-    Lint {
-        name: "to_string_in_display",
-        group: "correctness",
-        desc: "`to_string` method used while implementing `Display` trait",
-        deprecation: None,
-        module: "to_string_in_display",
-    },
-    Lint {
-        name: "todo",
-        group: "restriction",
-        desc: "`todo!` should not be present in production code",
-        deprecation: None,
-        module: "panic_unimplemented",
-    },
-    Lint {
-        name: "too_many_arguments",
-        group: "complexity",
-        desc: "functions with too many arguments",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "too_many_lines",
-        group: "pedantic",
-        desc: "functions with too many lines",
-        deprecation: None,
-        module: "functions",
-    },
-    Lint {
-        name: "toplevel_ref_arg",
-        group: "style",
-        desc: "an entire binding declared as `ref`, in a function argument or a `let` statement",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "trait_duplication_in_bounds",
-        group: "pedantic",
-        desc: "Check if the same trait bounds are specified twice during a function declaration",
-        deprecation: None,
-        module: "trait_bounds",
-    },
-    Lint {
-        name: "transmute_bytes_to_str",
-        group: "complexity",
-        desc: "transmutes from a `&[u8]` to a `&str`",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_float_to_int",
-        group: "complexity",
-        desc: "transmutes from a float to an integer",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_int_to_bool",
-        group: "complexity",
-        desc: "transmutes from an integer to a `bool`",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_int_to_char",
-        group: "complexity",
-        desc: "transmutes from an integer to a `char`",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_int_to_float",
-        group: "complexity",
-        desc: "transmutes from an integer to a float",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_ptr_to_ptr",
-        group: "complexity",
-        desc: "transmutes from a pointer to a pointer / a reference to a reference",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmute_ptr_to_ref",
-        group: "complexity",
-        desc: "transmutes from a pointer to a reference type",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmutes_expressible_as_ptr_casts",
-        group: "complexity",
-        desc: "transmutes that could be a pointer cast",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "transmuting_null",
-        group: "correctness",
-        desc: "transmutes from a null pointer to a reference, which is undefined behavior",
-        deprecation: None,
-        module: "transmuting_null",
-    },
-    Lint {
-        name: "trivial_regex",
-        group: "style",
-        desc: "trivial regular expressions",
-        deprecation: None,
-        module: "regex",
-    },
-    Lint {
-        name: "trivially_copy_pass_by_ref",
-        group: "pedantic",
-        desc: "functions taking small copyable arguments by reference",
-        deprecation: None,
-        module: "pass_by_ref_or_value",
-    },
-    Lint {
-        name: "try_err",
-        group: "style",
-        desc: "return errors explicitly rather than hiding them behind a `?`",
-        deprecation: None,
-        module: "try_err",
-    },
-    Lint {
-        name: "type_complexity",
-        group: "complexity",
-        desc: "usage of very complex types that might be better factored into `type` definitions",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "type_repetition_in_bounds",
-        group: "pedantic",
-        desc: "Types are repeated unnecessary in trait bounds use `+` instead of using `T: _, T: _`",
-        deprecation: None,
-        module: "trait_bounds",
-    },
-    Lint {
-        name: "undropped_manually_drops",
-        group: "correctness",
-        desc: "use of safe `std::mem::drop` function to drop a std::mem::ManuallyDrop, which will not drop the inner value",
-        deprecation: None,
-        module: "undropped_manually_drops",
-    },
-    Lint {
-        name: "unicode_not_nfc",
-        group: "pedantic",
-        desc: "using a Unicode literal not in NFC normal form (see [Unicode tr15](http://www.unicode.org/reports/tr15/) for further information)",
-        deprecation: None,
-        module: "unicode",
-    },
-    Lint {
-        name: "unimplemented",
-        group: "restriction",
-        desc: "`unimplemented!` should not be present in production code",
-        deprecation: None,
-        module: "panic_unimplemented",
-    },
-    Lint {
-        name: "uninit_assumed_init",
-        group: "correctness",
-        desc: "`MaybeUninit::uninit().assume_init()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "unit_arg",
-        group: "complexity",
-        desc: "passing unit to a function",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "unit_cmp",
-        group: "correctness",
-        desc: "comparing unit values",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "unit_return_expecting_ord",
-        group: "correctness",
-        desc: "fn arguments of type Fn(...) -> Ord returning the unit type ().",
-        deprecation: None,
-        module: "unit_return_expecting_ord",
-    },
-    Lint {
-        name: "unknown_clippy_lints",
-        group: "style",
-        desc: "unknown_lints for scoped Clippy lints",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "unnecessary_cast",
-        group: "complexity",
-        desc: "cast to the same type, e.g., `x as i32` where `x: i32`",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "unnecessary_filter_map",
-        group: "complexity",
-        desc: "using `filter_map` when a more succinct alternative exists",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "unnecessary_fold",
-        group: "style",
-        desc: "using `fold` when a more succinct alternative exists",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "unnecessary_lazy_evaluations",
-        group: "style",
-        desc: "using unnecessary lazy evaluation, which can be replaced with simpler eager evaluation",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "unnecessary_mut_passed",
-        group: "style",
-        desc: "an argument passed as a mutable reference although the callee only demands an immutable reference",
-        deprecation: None,
-        module: "mut_reference",
-    },
-    Lint {
-        name: "unnecessary_operation",
-        group: "complexity",
-        desc: "outer expressions with no effect",
-        deprecation: None,
-        module: "no_effect",
-    },
-    Lint {
-        name: "unnecessary_sort_by",
-        group: "complexity",
-        desc: "Use of `Vec::sort_by` when `Vec::sort_by_key` or `Vec::sort` would be clearer",
-        deprecation: None,
-        module: "unnecessary_sort_by",
-    },
-    Lint {
-        name: "unnecessary_unwrap",
-        group: "complexity",
-        desc: "checks for calls of `unwrap[_err]()` that cannot fail",
-        deprecation: None,
-        module: "unwrap",
-    },
-    Lint {
-        name: "unnecessary_wraps",
-        group: "complexity",
-        desc: "functions that only return `Ok` or `Some`",
-        deprecation: None,
-        module: "unnecessary_wraps",
-    },
-    Lint {
-        name: "unneeded_field_pattern",
-        group: "restriction",
-        desc: "struct fields bound to a wildcard instead of using `..`",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "unneeded_wildcard_pattern",
-        group: "complexity",
-        desc: "tuple patterns with a wildcard pattern (`_`) is next to a rest pattern (`..`)",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "unnested_or_patterns",
-        group: "pedantic",
-        desc: "unnested or-patterns, e.g., `Foo(Bar) | Foo(Baz) instead of `Foo(Bar | Baz)`",
-        deprecation: None,
-        module: "unnested_or_patterns",
-    },
-    Lint {
-        name: "unreachable",
-        group: "restriction",
-        desc: "`unreachable!` should not be present in production code",
-        deprecation: None,
-        module: "panic_unimplemented",
-    },
-    Lint {
-        name: "unreadable_literal",
-        group: "pedantic",
-        desc: "long integer literal without underscores",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "unsafe_derive_deserialize",
-        group: "pedantic",
-        desc: "deriving `serde::Deserialize` on a type that has methods using `unsafe`",
-        deprecation: None,
-        module: "derive",
-    },
-    Lint {
-        name: "unsafe_removed_from_name",
-        group: "style",
-        desc: "`unsafe` removed from API names on import",
-        deprecation: None,
-        module: "unsafe_removed_from_name",
-    },
-    Lint {
-        name: "unseparated_literal_suffix",
-        group: "pedantic",
-        desc: "literals whose suffix is not separated by an underscore",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "unsound_collection_transmute",
-        group: "correctness",
-        desc: "transmute between collections of layout-incompatible types",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "unused_io_amount",
-        group: "correctness",
-        desc: "unused written/read amount",
-        deprecation: None,
-        module: "unused_io_amount",
-    },
-    Lint {
-        name: "unused_self",
-        group: "pedantic",
-        desc: "methods that contain a `self` argument but don\'t use it",
-        deprecation: None,
-        module: "unused_self",
-    },
-    Lint {
-        name: "unused_unit",
-        group: "style",
-        desc: "needless unit expression",
-        deprecation: None,
-        module: "unused_unit",
-    },
-    Lint {
-        name: "unusual_byte_groupings",
-        group: "style",
-        desc: "binary or hex literals that aren\'t grouped by four",
-        deprecation: None,
-        module: "literal_representation",
-    },
-    Lint {
-        name: "unwrap_in_result",
-        group: "restriction",
-        desc: "functions of type `Result<..>` or `Option`<...> that contain `expect()` or `unwrap()`",
-        deprecation: None,
-        module: "unwrap_in_result",
-    },
-    Lint {
-        name: "unwrap_used",
-        group: "restriction",
-        desc: "using `.unwrap()` on `Result` or `Option`, which should at least get a better message using `expect()`",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "use_debug",
-        group: "restriction",
-        desc: "use of `Debug`-based formatting",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "use_self",
-        group: "nursery",
-        desc: "unnecessary structure name repetition whereas `Self` is applicable",
-        deprecation: None,
-        module: "use_self",
-    },
-    Lint {
-        name: "used_underscore_binding",
-        group: "pedantic",
-        desc: "using a binding which is prefixed with an underscore",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "useless_asref",
-        group: "complexity",
-        desc: "using `as_ref` where the types before and after the call are the same",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "useless_attribute",
-        group: "correctness",
-        desc: "use of lint attributes on `extern crate` items",
-        deprecation: None,
-        module: "attrs",
-    },
-    Lint {
-        name: "useless_conversion",
-        group: "complexity",
-        desc: "calls to `Into`, `TryInto`, `From`, `TryFrom`, or `IntoIter` which perform useless conversions to the same type",
-        deprecation: None,
-        module: "useless_conversion",
-    },
-    Lint {
-        name: "useless_format",
-        group: "complexity",
-        desc: "useless use of `format!`",
-        deprecation: None,
-        module: "format",
-    },
-    Lint {
-        name: "useless_let_if_seq",
-        group: "nursery",
-        desc: "unidiomatic `let mut` declaration followed by initialization in `if`",
-        deprecation: None,
-        module: "let_if_seq",
-    },
-    Lint {
-        name: "useless_transmute",
-        group: "nursery",
-        desc: "transmutes that have the same to and from types or could be a cast/coercion",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "useless_vec",
-        group: "perf",
-        desc: "useless `vec!`",
-        deprecation: None,
-        module: "vec",
-    },
-    Lint {
-        name: "vec_box",
-        group: "complexity",
-        desc: "usage of `Vec<Box<T>>` where T: Sized, vector elements are already on the heap",
-        deprecation: None,
-        module: "types",
-    },
-    Lint {
-        name: "vec_resize_to_zero",
-        group: "correctness",
-        desc: "emptying a vector with `resize(0, an_int)` instead of `clear()` is probably an argument inversion mistake",
-        deprecation: None,
-        module: "vec_resize_to_zero",
-    },
-    Lint {
-        name: "verbose_bit_mask",
-        group: "pedantic",
-        desc: "expressions where a bit mask is less readable than the corresponding method call",
-        deprecation: None,
-        module: "bit_mask",
-    },
-    Lint {
-        name: "verbose_file_reads",
-        group: "restriction",
-        desc: "use of `File::read_to_end` or `File::read_to_string`",
-        deprecation: None,
-        module: "verbose_file_reads",
-    },
-    Lint {
-        name: "vtable_address_comparisons",
-        group: "correctness",
-        desc: "comparison with an address of a trait vtable",
-        deprecation: None,
-        module: "unnamed_address",
-    },
-    Lint {
-        name: "while_immutable_condition",
-        group: "correctness",
-        desc: "variables used within while expression are not mutated in the body",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "while_let_loop",
-        group: "complexity",
-        desc: "`loop { if let { ... } else break }`, which can be written as a `while let` loop",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "while_let_on_iterator",
-        group: "style",
-        desc: "using a while-let loop instead of a for loop on an iterator",
-        deprecation: None,
-        module: "loops",
-    },
-    Lint {
-        name: "wildcard_dependencies",
-        group: "cargo",
-        desc: "wildcard dependencies being used",
-        deprecation: None,
-        module: "wildcard_dependencies",
-    },
-    Lint {
-        name: "wildcard_enum_match_arm",
-        group: "restriction",
-        desc: "a wildcard enum match arm using `_`",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "wildcard_imports",
-        group: "pedantic",
-        desc: "lint `use _::*` statements",
-        deprecation: None,
-        module: "wildcard_imports",
-    },
-    Lint {
-        name: "wildcard_in_or_patterns",
-        group: "complexity",
-        desc: "a wildcard pattern used with others patterns in same match arm",
-        deprecation: None,
-        module: "matches",
-    },
-    Lint {
-        name: "write_literal",
-        group: "style",
-        desc: "writing a literal with a format string",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "write_with_newline",
-        group: "style",
-        desc: "using `write!()` with a format string that ends in a single newline",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "writeln_empty_string",
-        group: "style",
-        desc: "using `writeln!(buf, \"\")` with an empty string",
-        deprecation: None,
-        module: "write",
-    },
-    Lint {
-        name: "wrong_pub_self_convention",
-        group: "restriction",
-        desc: "defining a public method named with an established prefix (like \"into_\") that takes `self` with the wrong convention",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "wrong_self_convention",
-        group: "style",
-        desc: "defining a method named with an established prefix (like \"into_\") that takes `self` with the wrong convention",
-        deprecation: None,
-        module: "methods",
-    },
-    Lint {
-        name: "wrong_transmute",
-        group: "correctness",
-        desc: "transmutes that are confusing at best, undefined behaviour at worst and always useless",
-        deprecation: None,
-        module: "transmute",
-    },
-    Lint {
-        name: "zero_divided_by_zero",
-        group: "complexity",
-        desc: "usage of `0.0 / 0.0` to obtain NaN instead of `f32::NAN` or `f64::NAN`",
-        deprecation: None,
-        module: "zero_div_zero",
-    },
-    Lint {
-        name: "zero_prefixed_literal",
-        group: "complexity",
-        desc: "integer literals starting with `0`",
-        deprecation: None,
-        module: "misc_early",
-    },
-    Lint {
-        name: "zero_ptr",
-        group: "style",
-        desc: "using `0 as *{const, mut} T`",
-        deprecation: None,
-        module: "misc",
-    },
-    Lint {
-        name: "zst_offset",
-        group: "correctness",
-        desc: "Check for offset calculations on raw pointers to zero-sized types",
-        deprecation: None,
-        module: "methods",
-    },
-]
-// end lint list, do not remove this comment, it’s used in `update_lints`
-});