pub use lint::LINT_LEVELS;
// begin lint list, do not remove this comment, it’s used in `update_lints`
-pub const ALL_LINTS: [Lint; 313] = [
+pub const ALL_LINTS: [Lint; 334] = [
Lint {
name: "absurd_extreme_comparisons",
group: "correctness",
},
Lint {
name: "cast_lossless",
- group: "complexity",
+ group: "pedantic",
desc: "casts using `as` that are known to be lossless, e.g., `x as u64` where `x: u8`",
deprecation: None,
module: "types",
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: "copy_iterator",
group: "pedantic",
deprecation: None,
module: "dbg_macro",
},
+ Lint {
+ name: "debug_assert_with_mut_call",
+ group: "correctness",
+ desc: "mutable arguments in `debug_assert{,_ne,_eq}!`",
+ deprecation: None,
+ module: "mutable_debug_assertion",
+ },
Lint {
name: "decimal_literal_representation",
group: "restriction",
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",
deprecation: None,
module: "excessive_precision",
},
+ 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",
deprecation: None,
module: "bit_mask",
},
+ Lint {
+ name: "inefficient_to_string",
+ group: "perf",
+ desc: "using `to_string` on `&&T` where `T: ToString`",
+ deprecation: None,
+ module: "methods",
+ },
Lint {
name: "infallible_destructuring_match",
group: "style",
deprecation: None,
module: "integer_division",
},
- Lint {
- name: "into_iter_on_array",
- group: "correctness",
- desc: "using `.into_iter()` on an array",
- deprecation: None,
- module: "methods",
- },
Lint {
name: "into_iter_on_ref",
group: "style",
deprecation: None,
module: "loops",
},
+ Lint {
+ name: "manual_mul_add",
+ group: "nursery",
+ desc: "Using `a.mul_add(b, c)` for floating points has higher numerical precision than `a * b + c`",
+ deprecation: None,
+ module: "mul_add",
+ },
Lint {
name: "manual_saturating_arithmetic",
group: "style",
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",
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",
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",
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",
deprecation: None,
module: "methods",
},
+ Lint {
+ name: "option_expect_used",
+ group: "restriction",
+ desc: "using `Option.expect()`, which might be better handled",
+ deprecation: None,
+ module: "methods",
+ },
Lint {
name: "option_map_or_none",
group: "style",
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_params",
group: "style",
},
Lint {
name: "redundant_clone",
- group: "nursery",
+ group: "perf",
desc: "`clone()` of an owned value that is going to be dropped immediately",
deprecation: None,
module: "redundant_clone",
group: "style",
desc: "using `name @ _` in a pattern",
deprecation: None,
- module: "misc",
+ module: "misc_early",
},
Lint {
name: "redundant_pattern_matching",
deprecation: None,
module: "replace_consts",
},
+ Lint {
+ name: "result_expect_used",
+ group: "restriction",
+ desc: "using `Result.expect()`, which might be better handled",
+ deprecation: None,
+ module: "methods",
+ },
Lint {
name: "result_map_unit_fn",
group: "complexity",
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",
deprecation: None,
module: "methods",
},
+ Lint {
+ name: "to_digit_is_some",
+ group: "style",
+ desc: "`char.is_digit()` is clearer",
+ deprecation: None,
+ module: "to_digit_is_some",
+ },
+ 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",
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: "unreachable",
+ group: "restriction",
+ desc: "`unreachable!` should not be present in production code",
+ deprecation: None,
+ module: "panic_unimplemented",
+ },
Lint {
name: "unreadable_literal",
group: "style",
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",
deprecation: None,
module: "unused_label",
},
+ 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",