diff --git a/Cargo.lock b/Cargo.lock index 695c37f6d7bf..d449fef09fd6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -383,6 +383,10 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1" +[[package]] +name = "edition" +version = "0.0.0" + [[package]] name = "either" version = "1.13.0" @@ -1256,6 +1260,7 @@ name = "parser" version = "0.0.0" dependencies = [ "drop_bomb", + "edition", "expect-test", "limit", "ra-ap-rustc_lexer", @@ -2651,6 +2656,7 @@ version = "0.1.0" dependencies = [ "anyhow", "directories", + "edition", "either", "flate2", "itertools", diff --git a/Cargo.toml b/Cargo.toml index 3aa93b7b7b4b..b4af4067ba08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,6 +83,7 @@ toolchain = { path = "./crates/toolchain", version = "0.0.0" } tt = { path = "./crates/tt", version = "0.0.0" } vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" } vfs = { path = "./crates/vfs", version = "0.0.0" } +edition = { path = "./crates/edition", version = "0.0.0" } ra-ap-rustc_lexer = { version = "0.75", default-features = false } ra-ap-rustc_parse_format = { version = "0.75", default-features = false } diff --git a/crates/edition/Cargo.toml b/crates/edition/Cargo.toml new file mode 100644 index 000000000000..926b1e1cd41a --- /dev/null +++ b/crates/edition/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "edition" +version = "0.0.0" +rust-version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +repository.workspace = true + +[dependencies] + +[lints] +workspace = true diff --git a/crates/parser/src/edition.rs b/crates/edition/src/lib.rs similarity index 94% rename from crates/parser/src/edition.rs rename to crates/edition/src/lib.rs index 702b16252d4e..c25d5b9557b8 100644 --- a/crates/parser/src/edition.rs +++ b/crates/edition/src/lib.rs @@ -1,6 +1,5 @@ //! The edition of the Rust language used in a crate. -// Ideally this would be defined in the span crate, but the dependency chain is all over the place -// wrt to span, parser and syntax. +// This should live in a separate crate because we use it in both actual code and codegen. use std::fmt; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] diff --git a/crates/ide-completion/src/completions/attribute/lint.rs b/crates/ide-completion/src/completions/attribute/lint.rs index d5f9cd5fc76c..04f40e805ad6 100644 --- a/crates/ide-completion/src/completions/attribute/lint.rs +++ b/crates/ide-completion/src/completions/attribute/lint.rs @@ -11,7 +11,7 @@ pub(super) fn complete_lint( existing_lints: &[ast::Path], lints_completions: &[Lint], ) { - for &Lint { label, description } in lints_completions { + for &Lint { label, description, .. } in lints_completions { let (qual, name) = { // FIXME: change `Lint`'s label to not store a path in it but split the prefix off instead? let mut parts = label.split("::"); diff --git a/crates/ide-db/src/generated/lints.rs b/crates/ide-db/src/generated/lints.rs index 266109765ab8..e3da2ff248cf 100644 --- a/crates/ide-db/src/generated/lints.rs +++ b/crates/ide-db/src/generated/lints.rs @@ -1,814 +1,1649 @@ //! Generated by `cargo codegen lint-definitions`, do not edit by hand. +use span::Edition; + +use crate::Severity; + #[derive(Clone)] pub struct Lint { pub label: &'static str, pub description: &'static str, + pub default_severity: Severity, + pub warn_since: Option, + pub deny_since: Option, } pub struct LintGroup { pub lint: Lint, pub children: &'static [&'static str], } - pub const DEFAULT_LINTS: &[Lint] = &[ Lint { label: "absolute_paths_not_starting_with_crate", description: r##"fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ambiguous_associated_items", + description: r##"ambiguous associated items"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, - Lint { label: "ambiguous_associated_items", description: r##"ambiguous associated items"## }, Lint { label: "ambiguous_glob_imports", description: r##"detects certain glob imports that require reporting an ambiguity error"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ambiguous_glob_reexports", + description: r##"ambiguous glob re-exports"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ambiguous_negative_literals", + description: r##"ambiguous negative literals operations"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "ambiguous_glob_reexports", description: r##"ambiguous glob re-exports"## }, Lint { label: "ambiguous_wide_pointer_comparisons", description: r##"detects ambiguous wide pointer comparisons"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "anonymous_parameters", + description: r##"detects anonymous parameters"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "arithmetic_overflow", + description: r##"arithmetic operation overflows"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, - Lint { label: "anonymous_parameters", description: r##"detects anonymous parameters"## }, - Lint { label: "arithmetic_overflow", description: r##"arithmetic operation overflows"## }, Lint { label: "array_into_iter", description: r##"detects calling `into_iter` on arrays in Rust 2015 and 2018"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "asm_sub_register", description: r##"using only a subset of a register for inline asm inputs"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "async_fn_in_trait", description: r##"use of `async fn` in definition of a publicly-reachable trait"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "bad_asm_style", + description: r##"incorrect use of inline assembly"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "bad_asm_style", description: r##"incorrect use of inline assembly"## }, Lint { label: "bare_trait_objects", description: r##"suggest using `dyn Trait` for trait objects"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "binary_asm_labels", + description: r##"labels in inline assembly containing only 0 or 1 digits"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "bindings_with_variant_name", description: r##"detects pattern bindings with the same name as one of the matched variants"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "boxed_slice_into_iter", description: r##"detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "break_with_label_and_loop", description: r##"`break` expression with label and unlabeled loop as value expression"##, - }, - Lint { - label: "byte_slice_in_packed_struct_with_derive", - description: r##"`[u8]` or `str` used in a packed struct with `derive`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "cenum_impl_drop_cast", description: r##"a C-like enum implementing Drop is cast"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "clashing_extern_declarations", description: r##"detects when an extern fn has been declared with the same name but different types"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "closure_returning_async_block", + description: r##"closure that returns `async {}` could be rewritten as an async closure"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coherence_leak_check", description: r##"distinct impls distinguished only by the leak-check code"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "conflicting_repr_hints", description: r##"conflicts between `#[repr(..)]` hints that were previously accepted and used in practice"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "confusable_idents", description: r##"detects visually confusable pairs between identifiers"##, - }, - Lint { - label: "const_eval_mutable_ptr_in_final_value", - description: r##"detects a mutable pointer that has leaked into final value of a const expression"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "const_evaluatable_unchecked", description: r##"detects a generic constant is used in a type without a emitting a warning"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "const_item_mutation", description: r##"detects attempts to mutate a `const` item"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "dead_code", + description: r##"detect unused, unexported items"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "dead_code", description: r##"detect unused, unexported items"## }, Lint { label: "dependency_on_unit_never_type_fallback", description: r##"never type fallback affecting unsafe function calls"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "deprecated", description: r##"detects use of deprecated items"## }, Lint { - label: "deprecated_cfg_attr_crate_type_name", - description: r##"detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`"##, + label: "deprecated", + description: r##"detects use of deprecated items"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "deprecated_in_future", description: r##"detects use of items that will be deprecated in a future version"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "deprecated_safe", + label: "deprecated_safe_2024", description: r##"detects unsafe functions being used as safe functions"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deprecated_where_clause_location", description: r##"deprecated where clause location"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "deref_into_dyn_supertrait", description: r##"`Deref` implementation usage with a supertrait trait object for output might be shadowed in the future"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "deref_nullptr", description: r##"detects when an null pointer is dereferenced"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "drop_bounds", description: r##"bounds of the form `T: Drop` are most likely incorrect"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "dropping_copy_types", description: r##"calls to `std::mem::drop` with a value that implements Copy"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "dropping_references", description: r##"calls to `std::mem::drop` with a reference instead of an owned value"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "duplicate_macro_attributes", + description: r##"duplicated attribute"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "duplicate_macro_attributes", description: r##"duplicated attribute"## }, Lint { label: "dyn_drop", description: r##"trait objects of the form `dyn Drop` are useless"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "edition_2024_expr_fragment_specifier", + description: r##"The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "elided_lifetimes_in_associated_constant", description: r##"elided lifetimes cannot be used in associated constants in impls"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "elided_lifetimes_in_paths", description: r##"hidden lifetime parameters in types are deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "elided_named_lifetimes", + description: r##"detects when an elided lifetime gets resolved to be `'static` or some named parameter"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "ellipsis_inclusive_range_patterns", description: r##"`...` range patterns are deprecated"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "enum_intrinsics_non_enums", description: r##"detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, + }, + Lint { + label: "explicit_builtin_cfgs_in_flags", + description: r##"detects builtin cfgs set via the `--cfg`"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "explicit_outlives_requirements", description: r##"outlives requirements can be inferred"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exported_private_dependencies", description: r##"public interface leaks type from a private dependency"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "ffi_unwind_calls", description: r##"call to foreign functions or function pointers with FFI-unwind ABI"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "for_loops_over_fallibles", description: r##"for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "forbidden_lint_groups", + description: r##"applying forbid to lint-groups"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "forbidden_lint_groups", description: r##"applying forbid to lint-groups"## }, Lint { label: "forgetting_copy_types", description: r##"calls to `std::mem::forget` with a value that implements Copy"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "forgetting_references", description: r##"calls to `std::mem::forget` with a reference instead of an owned value"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "function_item_references", description: r##"suggest casting to a function pointer when attempting to take references to function items"##, - }, - Lint { - label: "future_incompatible", - description: r##"lint group for: deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, writes-through-immutable-pointer"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "fuzzy_provenance_casts", description: r##"a fuzzy integer to pointer cast is used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hidden_glob_reexports", description: r##"name introduced by a private item shadows a name introduced by a public glob re-export"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "if_let_rescope", + description: r##"`if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ill_formed_attribute_input", description: r##"ill-formed attribute inputs that were previously accepted and used in practice"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "impl_trait_overcaptures", description: r##"`impl Trait` will capture more lifetimes than possibly intended in edition 2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "impl_trait_redundant_captures", description: r##"redundant precise-capturing `use<...>` syntax on an `impl Trait`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "improper_ctypes", description: r##"proper use of libc types in foreign modules"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "improper_ctypes_definitions", description: r##"proper use of libc types in foreign item definitions"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "incomplete_features", description: r##"incomplete features that may function improperly in some or all cases"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "incomplete_include", + description: r##"trailing content in included file"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, - Lint { label: "incomplete_include", description: r##"trailing content in included file"## }, Lint { label: "ineffective_unstable_trait_impl", description: r##"detects `#[unstable]` on stable trait implementations for stable types"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "inline_no_sanitize", description: r##"detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "internal_features", description: r##"internal features are not supposed to be used"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_atomic_ordering", description: r##"usage of invalid atomic ordering in atomic operations and memory fences"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_doc_attributes", description: r##"detects invalid `#[doc(...)]` attributes"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_from_utf8", description: r##"using a non UTF-8 literal in `std::str::from_utf8`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_from_utf8_unchecked", description: r##"using a non UTF-8 literal in `std::str::from_utf8_unchecked`"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_macro_export_arguments", description: r##""invalid_parameter" isn't a valid argument for `#[macro_export]`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_nan_comparisons", description: r##"detects invalid floating point NaN comparisons"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_reference_casting", description: r##"casts of `&T` to `&mut T` without interior mutability"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_type_param_default", description: r##"type parameter default erroneously allowed in invalid location"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "invalid_value", description: r##"an invalid value is being created (such as a null reference)"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "irrefutable_let_patterns", description: r##"detects irrefutable patterns in `if let` and `while let` statements"##, - }, - Lint { - label: "keyword_idents", - description: r##"lint group for: keyword-idents-2018, keyword-idents-2024"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "keyword_idents_2018", description: r##"detects edition keywords being used as an identifier"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "keyword_idents_2024", description: r##"detects edition keywords being used as an identifier"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "large_assignments", + description: r##"detects large moves or copies"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "large_assignments", description: r##"detects large moves or copies"## }, Lint { label: "late_bound_lifetime_arguments", description: r##"detects generic lifetime arguments in path segments with late bound lifetime parameters"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "legacy_derive_helpers", description: r##"detects derive helper attributes that are used before they are introduced"##, - }, - Lint { - label: "let_underscore", - description: r##"lint group for: let-underscore-drop, let-underscore-lock"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "let_underscore_drop", - description: r##"non-binding let on a type that implements `Drop`"##, + description: r##"non-binding let on a type that has a destructor"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "let_underscore_lock", description: r##"non-binding let on a synchronization lock"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "long_running_const_eval", description: r##"detects long const eval operations"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "lossy_provenance_casts", description: r##"a lossy pointer to integer cast is used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "macro_expanded_macro_exports_accessed_by_absolute_paths", description: r##"macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "macro_use_extern_crate", description: r##"the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "map_unit_fn", description: r##"`Iterator::map` call that discard the iterator's values"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "meta_variable_misuse", description: r##"possible meta-variable misuse at macro definition"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "missing_abi", + description: r##"No declared ABI for extern declaration"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "missing_abi", description: r##"No declared ABI for extern declaration"## }, Lint { label: "missing_copy_implementations", description: r##"detects potentially-forgotten implementations of `Copy`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "missing_debug_implementations", description: r##"detects missing implementations of Debug"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "missing_docs", description: r##"detects missing documentation for public members"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "missing_fragment_specifier", description: r##"detects missing fragment specifiers in unused `macro_rules!` patterns"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "missing_unsafe_on_extern", description: r##"detects missing unsafe keyword on extern declarations"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mixed_script_confusables", description: r##"detects Unicode scripts whose mixed script confusables codepoints are solely used"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "multiple_supertrait_upcastable", - description: r##"detect when an object-safe trait has multiple supertraits"##, + description: r##"detect when a dyn-compatible trait has multiple supertraits"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "must_not_suspend", description: r##"use of a `#[must_not_suspend]` value across a yield point"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mutable_transmutes", description: r##"transmuting &T to &mut T is undefined behavior, even if the reference is unused"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "named_arguments_used_positionally", description: r##"named arguments in format used positionally"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "named_asm_labels", + description: r##"named labels in inline assembly"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, - Lint { label: "named_asm_labels", description: r##"named labels in inline assembly"## }, Lint { label: "never_type_fallback_flowing_into_unsafe", description: r##"never type fallback affecting unsafe function calls"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: Some(Edition::Edition2024), }, Lint { label: "no_mangle_const_items", description: r##"const items will not have their symbols exported"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, + }, + Lint { + label: "no_mangle_generic_items", + description: r##"generic items must be mangled"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "non_ascii_idents", + description: r##"detects non-ASCII identifiers"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "no_mangle_generic_items", description: r##"generic items must be mangled"## }, - Lint { label: "non_ascii_idents", description: r##"detects non-ASCII identifiers"## }, Lint { label: "non_camel_case_types", description: r##"types, variants, traits and type parameters should have camel case names"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "non_contiguous_range_endpoints", description: r##"detects off-by-one errors with exclusive range patterns"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "non_exhaustive_omitted_patterns", description: r##"detect when patterns of types marked `non_exhaustive` are missed"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "non_fmt_panics", description: r##"detect single-argument panic!() invocations in which the argument is not a format string"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "non_local_definitions", + description: r##"checks for non-local definitions"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "non_local_definitions", description: r##"checks for non-local definitions"## }, Lint { label: "non_shorthand_field_patterns", description: r##"using `Struct { x: x }` instead of `Struct { x }` in a pattern"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "non_snake_case", description: r##"variables, methods, functions, lifetime parameters and modules should have snake case names"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "non_upper_case_globals", description: r##"static constants should have uppercase identifiers"##, - }, - Lint { - label: "nonstandard_style", - description: r##"lint group for: non-camel-case-types, non-snake-case, non-upper-case-globals"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "noop_method_call", description: r##"detects the use of well-known noop methods"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "opaque_hidden_inferred_bound", description: r##"detects the use of nested `impl Trait` types in associated type bounds that are not general enough"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "order_dependent_trait_objects", description: r##"trait-object types were treated as different depending on marker-trait order"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "out_of_scope_macro_calls", description: r##"detects out of scope calls to `macro_rules` in key-value attributes"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "overflowing_literals", + description: r##"literal out of range for its type"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, - Lint { label: "overflowing_literals", description: r##"literal out of range for its type"## }, Lint { label: "overlapping_range_endpoints", description: r##"detects range patterns with overlapping endpoints"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "path_statements", + description: r##"path statements with no effect"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "path_statements", description: r##"path statements with no effect"## }, Lint { label: "patterns_in_fns_without_body", description: r##"patterns in functions without body were erroneously allowed"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "private_bounds", description: r##"private type in secondary interface of an item"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "private_interfaces", description: r##"private type in primary interface of an item"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_derive_resolution_fallback", description: r##"detects proc macro derives using inaccessible names from parent modules"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ptr_cast_add_auto_to_object", + description: r##"detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ptr_to_integer_transmute_in_consts", + description: r##"detects pointer to integer transmutes in const functions and associated constants"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "pub_use_of_private_extern_crate", description: r##"detect public re-exports of private extern crates"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, + }, + Lint { + label: "redundant_imports", + description: r##"imports that are redundant due to being imported already"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "redundant_lifetimes", description: r##"detects lifetime parameters that are redundant because they are equal to some other named lifetime"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "redundant_semicolons", description: r##"detects unnecessary trailing semicolons"##, - }, - Lint { - label: "refining_impl_trait", - description: r##"lint group for: refining-impl-trait-reachable, refining-impl-trait-internal"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "refining_impl_trait_internal", description: r##"impl trait in impl method signature does not match trait method signature"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "refining_impl_trait_reachable", description: r##"impl trait in impl method signature does not match trait method signature"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "renamed_and_removed_lints", description: r##"lints that have been renamed or removed"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "repr_transparent_external_private_fields", description: r##"transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields"##, - }, - Lint { - label: "rust_2018_compatibility", - description: r##"lint group for: keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##, - }, - Lint { - label: "rust_2018_idioms", - description: r##"lint group for: bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements"##, - }, - Lint { - label: "rust_2021_compatibility", - description: r##"lint group for: ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rust_2021_incompatible_closure_captures", description: r##"detects closures affected by Rust 2021 changes"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rust_2021_incompatible_or_patterns", description: r##"detects usage of old versions of or-patterns"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rust_2021_prefixes_incompatible_syntax", description: r##"identifiers that will be parsed as a prefix in Rust 2021"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rust_2021_prelude_collisions", description: r##"detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "rust_2024_compatibility", - description: r##"lint group for: keyword-idents-2024, deprecated-safe, missing-unsafe-on-extern, static-mut-refs, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter"##, + label: "rust_2024_guarded_string_incompatible_syntax", + description: r##"will be parsed as a guarded string in Rust 2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rust_2024_incompatible_pat", description: r##"detects patterns whose meaning will change in Rust 2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rust_2024_prelude_collisions", + description: r##"detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "self_constructor_from_outer_item", description: r##"detect unsupported use of `Self` from outer item"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "semicolon_in_expressions_from_macros", description: r##"trailing semicolon in macro body used as expression"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "single_use_lifetimes", description: r##"detects lifetime parameters that are only used once"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "soft_unstable", description: r##"a feature gate that doesn't break dependent crates"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "special_module_name", description: r##"module declarations for files with a special meaning"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "stable_features", description: r##"stable features found in `#[feature]` directive"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "static_mut_refs", description: r##"shared references or mutable references of mutable static is discouraged"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: Some(Edition::Edition2024), }, Lint { label: "suspicious_double_ref_op", description: r##"suspicious call of trait method on `&&T`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "tail_expr_drop_order", + description: r##"Detect and warn on significant change in drop order in tail expression location"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "temporary_cstring_as_ptr", description: r##"detects getting the inner pointer of a temporary `CString`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "test_unstable_lint", description: r##"this unstable lint is only for testing"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "text_direction_codepoint_in_comment", description: r##"invisible directionality-changing codepoints in comment"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "text_direction_codepoint_in_literal", description: r##"detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "trivial_bounds", description: r##"these bounds don't depend on an type parameters"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "trivial_casts", description: r##"detects trivial casts which could be removed"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trivial_numeric_casts", description: r##"detects trivial casts of numeric types which could be removed"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "type_alias_bounds", description: r##"bounds in type aliases are not enforced"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "tyvar_behind_raw_pointer", description: r##"raw pointer to an inference variable"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "uncommon_codepoints", description: r##"detects uncommon Unicode codepoints in identifiers"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unconditional_panic", description: r##"operation will cause a panic at runtime"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "unconditional_recursion", description: r##"functions that cannot return without calling themselves"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "uncovered_param_in_projection", description: r##"impl contains type parameters that are not covered"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "undefined_naked_function_abi", description: r##"undefined naked function ABI"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "undropped_manually_drops", description: r##"calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "unexpected_cfgs", description: r##"detects unexpected names and values in `#[cfg]` conditions"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unfulfilled_lint_expectations", description: r##"unfulfilled lint expectation"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "ungated_async_fn_track_caller", description: r##"enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "uninhabited_static", + description: r##"uninhabited static"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "uninhabited_static", description: r##"uninhabited static"## }, Lint { label: "unit_bindings", description: r##"binding is useless because it has the unit `()` type"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unknown_crate_types", description: r##"unknown crate type found in `#[crate_type]` directive"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unknown_lints", + description: r##"unrecognized lint attribute"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unknown_lints", description: r##"unrecognized lint attribute"## }, Lint { label: "unknown_or_malformed_diagnostic_attributes", description: r##"unrecognized or malformed diagnostic attribute"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unnameable_test_items", description: r##"detects an item that cannot be named being marked as `#[test_case]`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unnameable_types", description: r##"effective visibility of a type is larger than the area in which it can be named"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unqualified_local_imports", + description: r##"`use` of a local item without leading `self::`, `super::`, or `crate::`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unreachable_code", + description: r##"detects unreachable code paths"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unreachable_patterns", + description: r##"detects unreachable patterns"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unreachable_code", description: r##"detects unreachable code paths"## }, - Lint { label: "unreachable_patterns", description: r##"detects unreachable patterns"## }, Lint { label: "unreachable_pub", description: r##"`pub` items not reachable from crate root"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsafe_attr_outside_unsafe", description: r##"detects unsafe attributes outside of unsafe"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsafe_code", description: r##"usage of `unsafe` code and other potentially unsound constructs"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsafe_op_in_unsafe_fn", description: r##"unsafe operations in unsafe functions without an explicit unsafe block are deprecated"##, + default_severity: Severity::Allow, + warn_since: Some(Edition::Edition2024), + deny_since: None, + }, + Lint { + label: "unstable_features", + description: r##"enabling unstable features"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "unstable_features", description: r##"enabling unstable features"## }, Lint { label: "unstable_name_collisions", description: r##"detects name collision with an existing but unstable method"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unstable_syntax_pre_expansion", description: r##"unstable syntax can change at any point in the future, causing a hard error!"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unsupported_calling_conventions", description: r##"use of unsupported calling convention"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { - label: "unused", - description: r##"lint group for: unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn"##, + label: "unsupported_fn_ptr_calling_conventions", + description: r##"use of unsupported calling convention for function pointer"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_allocation", description: r##"detects unnecessary allocations that can be eliminated"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_assignments", description: r##"detect assignments that will never be read"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_associated_type_bounds", description: r##"detects unused `Foo = Bar` bounds in `dyn Trait`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_attributes", description: r##"detects attributes that were not used by the compiler"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_braces", + description: r##"unnecessary braces around an expression"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unused_braces", description: r##"unnecessary braces around an expression"## }, Lint { label: "unused_comparisons", description: r##"comparisons made useless by limits of the types involved"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_crate_dependencies", description: r##"crate dependencies that are never used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unused_doc_comments", description: r##"detects doc comments that aren't used by rustdoc"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_extern_crates", + description: r##"extern crates that are never used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "unused_extern_crates", description: r##"extern crates that are never used"## }, Lint { label: "unused_features", description: r##"unused features found in crate-level `#[feature]` directives"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_import_braces", description: r##"unnecessary braces around an imported item"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_imports", + description: r##"imports that are never used"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_labels", + description: r##"detects labels that are never used"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unused_imports", description: r##"imports that are never used"## }, - Lint { label: "unused_labels", description: r##"detects labels that are never used"## }, Lint { label: "unused_lifetimes", description: r##"detects lifetime parameters that are never used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unused_macro_rules", description: r##"detects macro rules that were not used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_macros", + description: r##"detects macros that were not used"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unused_macros", description: r##"detects macros that were not used"## }, Lint { label: "unused_must_use", description: r##"unused result of a type flagged as `#[must_use]`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_mut", description: r##"detect mut variables which don't need to be mutable"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_parens", description: r##"`if`, `match`, `while` and `return` do not need parentheses"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "unused_qualifications", description: r##"detects unnecessarily qualified names"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unused_results", description: r##"unused result of an expression in a statement"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused_unsafe", + description: r##"unnecessary use of an `unsafe` block"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "unused_unsafe", description: r##"unnecessary use of an `unsafe` block"## }, Lint { label: "unused_variables", description: r##"detect variables which are not used in any way"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "useless_deprecated", description: r##"detects deprecation attributes with no effect"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "useless_ptr_null_checks", description: r##"useless checking of non-null-typed pointer"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "variant_size_differences", description: r##"detects enums with widely varying variant sizes"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "warnings", description: r##"mass-change the level for lints which produce warnings"##, - }, - Lint { - label: "warnings", - description: r##"lint group for: all lints that are set to issue warnings"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "wasm_c_abi", description: r##"detects dependencies that are incompatible with the Wasm C ABI"##, + default_severity: Severity::Error, + warn_since: None, + deny_since: None, }, Lint { label: "while_true", description: r##"suggest using `loop { }` instead of `while true { }`"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { - label: "writes_through_immutable_pointer", - description: r##"shared references are immutable, and pointers derived from them must not be written to"##, + label: "deprecated_safe", + description: r##"lint group for: deprecated-safe-2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "future_incompatible", + description: r##"lint group for: deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, unsupported-fn-ptr-calling-conventions, wasm-c-abi"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "keyword_idents", + description: r##"lint group for: keyword-idents-2018, keyword-idents-2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "let_underscore", + description: r##"lint group for: let-underscore-drop, let-underscore-lock"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "nonstandard_style", + description: r##"lint group for: non-camel-case-types, non-snake-case, non-upper-case-globals"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "refining_impl_trait", + description: r##"lint group for: refining-impl-trait-reachable, refining-impl-trait-internal"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rust_2018_compatibility", + description: r##"lint group for: keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rust_2018_idioms", + description: r##"lint group for: bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rust_2021_compatibility", + description: r##"lint group for: ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rust_2024_compatibility", + description: r##"lint group for: keyword-idents-2024, edition-2024-expr-fragment-specifier, deprecated-safe-2024, missing-unsafe-on-extern, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter, impl-trait-overcaptures, tail-expr-drop-order, if-let-rescope, static-mut-refs"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unused", + description: r##"lint group for: unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "warnings", + description: r##"lint group for: all lints that are set to issue warnings"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, ]; pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ + LintGroup { + lint: Lint { + label: "deprecated_safe", + description: r##"lint group for: deprecated-safe-2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + children: &["deprecated_safe_2024"], + }, LintGroup { lint: Lint { label: "future_incompatible", - description: r##"lint group for: deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, writes-through-immutable-pointer"##, + description: r##"lint group for: deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, unsupported-fn-ptr-calling-conventions, wasm-c-abi"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "deref_into_dyn_supertrait", "ambiguous_associated_items", "ambiguous_glob_imports", - "byte_slice_in_packed_struct_with_derive", "cenum_impl_drop_cast", "coherence_leak_check", "conflicting_repr_hints", - "const_eval_mutable_ptr_in_final_value", "const_evaluatable_unchecked", "dependency_on_unit_never_type_fallback", - "deprecated_cfg_attr_crate_type_name", "elided_lifetimes_in_associated_constant", "forbidden_lint_groups", "ill_formed_attribute_input", @@ -822,6 +1657,7 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ "out_of_scope_macro_calls", "patterns_in_fns_without_body", "proc_macro_derive_resolution_fallback", + "ptr_cast_add_auto_to_object", "pub_use_of_private_extern_crate", "repr_transparent_external_private_fields", "self_constructor_from_outer_item", @@ -832,14 +1668,17 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ "unstable_name_collisions", "unstable_syntax_pre_expansion", "unsupported_calling_conventions", + "unsupported_fn_ptr_calling_conventions", "wasm_c_abi", - "writes_through_immutable_pointer", ], }, LintGroup { lint: Lint { label: "keyword_idents", description: r##"lint group for: keyword-idents-2018, keyword-idents-2024"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &["keyword_idents_2018", "keyword_idents_2024"], }, @@ -847,6 +1686,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "let_underscore", description: r##"lint group for: let-underscore-drop, let-underscore-lock"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &["let_underscore_drop", "let_underscore_lock"], }, @@ -854,6 +1696,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "nonstandard_style", description: r##"lint group for: non-camel-case-types, non-snake-case, non-upper-case-globals"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &["non_camel_case_types", "non_snake_case", "non_upper_case_globals"], }, @@ -861,6 +1706,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "refining_impl_trait", description: r##"lint group for: refining-impl-trait-reachable, refining-impl-trait-internal"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &["refining_impl_trait_reachable", "refining_impl_trait_internal"], }, @@ -868,6 +1716,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "rust_2018_compatibility", description: r##"lint group for: keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "keyword_idents_2018", @@ -880,6 +1731,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "rust_2018_idioms", description: r##"lint group for: bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "bare_trait_objects", @@ -893,6 +1747,9 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "rust_2021_compatibility", description: r##"lint group for: ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "ellipsis_inclusive_range_patterns", @@ -908,22 +1765,35 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ LintGroup { lint: Lint { label: "rust_2024_compatibility", - description: r##"lint group for: keyword-idents-2024, deprecated-safe, missing-unsafe-on-extern, static-mut-refs, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter"##, + description: r##"lint group for: keyword-idents-2024, edition-2024-expr-fragment-specifier, deprecated-safe-2024, missing-unsafe-on-extern, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter, impl-trait-overcaptures, tail-expr-drop-order, if-let-rescope, static-mut-refs"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "keyword_idents_2024", - "deprecated_safe", + "edition_2024_expr_fragment_specifier", + "deprecated_safe_2024", "missing_unsafe_on_extern", - "static_mut_refs", + "rust_2024_guarded_string_incompatible_syntax", + "rust_2024_incompatible_pat", + "rust_2024_prelude_collisions", "unsafe_attr_outside_unsafe", "unsafe_op_in_unsafe_fn", "boxed_slice_into_iter", + "impl_trait_overcaptures", + "tail_expr_drop_order", + "if_let_rescope", + "static_mut_refs", ], }, LintGroup { lint: Lint { label: "unused", description: r##"lint group for: unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "unused_imports", @@ -950,64 +1820,99 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[ "map_unit_fn", ], }, - LintGroup { - lint: Lint { - label: "warnings", - description: r##"lint group for: all lints that are set to issue warnings"##, - }, - children: &[], - }, ]; pub const RUSTDOC_LINTS: &[Lint] = &[ Lint { - label: "rustdoc::all", - description: r##"lint group for: rustdoc::broken-intra-doc-links, rustdoc::private-intra-doc-links, rustdoc::private-doc-tests, rustdoc::invalid-codeblock-attributes, rustdoc::invalid-rust-codeblocks, rustdoc::invalid-html-tags, rustdoc::bare-urls, rustdoc::missing-crate-level-docs, rustdoc::unescaped-backticks, rustdoc::redundant-explicit-links, rustdoc::unportable-markdown"##, + label: "rustdoc::bare_urls", + description: r##"detects URLs that are not hyperlinks"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, - Lint { label: "rustdoc::bare_urls", description: r##"detects URLs that are not hyperlinks"## }, Lint { label: "rustdoc::broken_intra_doc_links", description: r##"failures in resolving intra-doc link targets"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::invalid_codeblock_attributes", description: r##"codeblock attribute looks a lot like a known one"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::invalid_html_tags", description: r##"detects invalid HTML tags in doc comments"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::invalid_rust_codeblocks", description: r##"codeblock could not be parsed as valid Rust or is empty"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::missing_crate_level_docs", description: r##"detects crates with no crate-level documentation"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::missing_doc_code_examples", description: r##"detects publicly-exported items without code samples in their documentation"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::private_doc_tests", description: r##"detects code samples in docs of private items not documented by rustdoc"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::private_intra_doc_links", description: r##"linking from a public item to a private one"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::redundant_explicit_links", description: r##"detects redundant explicit links in doc comments"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::unescaped_backticks", description: r##"detects unescaped backticks in doc comments"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc::unportable_markdown", description: r##"detects markdown that is interpreted differently in different parser"##, + default_severity: Severity::Warning, + warn_since: None, + deny_since: None, + }, + Lint { + label: "rustdoc::all", + description: r##"lint group for: rustdoc::broken-intra-doc-links, rustdoc::private-intra-doc-links, rustdoc::private-doc-tests, rustdoc::invalid-codeblock-attributes, rustdoc::invalid-rust-codeblocks, rustdoc::invalid-html-tags, rustdoc::bare-urls, rustdoc::missing-crate-level-docs, rustdoc::unescaped-backticks, rustdoc::redundant-explicit-links, rustdoc::unportable-markdown"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, ]; @@ -1015,6 +1920,9 @@ pub const RUSTDOC_LINT_GROUPS: &[LintGroup] = &[LintGroup { lint: Lint { label: "rustdoc::all", description: r##"lint group for: rustdoc::broken-intra-doc-links, rustdoc::private-intra-doc-links, rustdoc::private-doc-tests, rustdoc::invalid-codeblock-attributes, rustdoc::invalid-rust-codeblocks, rustdoc::invalid-html-tags, rustdoc::bare-urls, rustdoc::missing-crate-level-docs, rustdoc::unescaped-backticks, rustdoc::redundant-explicit-links, rustdoc::unportable-markdown"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "rustdoc::broken_intra_doc_links", @@ -1032,6 +1940,20 @@ pub const RUSTDOC_LINT_GROUPS: &[LintGroup] = &[LintGroup { }]; pub const FEATURES: &[Lint] = &[ + Lint { + label: "aarch64_unstable_target_feature", + description: r##"# `aarch64_unstable_target_feature` + +The tracking issue for this feature is: [#44839] + +[#44839]: https://github.com/rust-lang/rust/issues/44839 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, Lint { label: "aarch64_ver_target_feature", description: r##"# `aarch64_ver_target_feature` @@ -1042,6 +1964,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_avr_interrupt", @@ -1053,6 +1978,9 @@ The tracking issue for this feature is: [#69664] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_c_cmse_nonsecure_call", @@ -1145,6 +2073,9 @@ call_nonsecure_function: pop {r7, pc} ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_msp430_interrupt", @@ -1191,6 +2122,9 @@ Disassembly of section .text: c000: 00 13 reti ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_ptx", @@ -1255,6 +2189,9 @@ $ cat $(find -name '*.s') } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_riscv_interrupt", @@ -1266,6 +2203,9 @@ The tracking issue for this feature is: [#111889] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_unadjusted", @@ -1275,6 +2215,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_vectorcall", @@ -1298,6 +2241,9 @@ fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "abi_x86_interrupt", @@ -1309,6 +2255,23 @@ The tracking issue for this feature is: [#40180] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "abort_unwind", + description: r##"# `abort_unwind` + +The tracking issue for this feature is: [#130338] + +[#130338]: https://github.com/rust-lang/rust/issues/130338 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "acceptfilter", @@ -1320,6 +2283,9 @@ The tracking issue for this feature is: [#121891] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "addr_parse_ascii", @@ -1331,6 +2297,9 @@ The tracking issue for this feature is: [#101035] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "adt_const_params", @@ -1370,6 +2339,9 @@ fn is_foo_a_and_bar_true() -> bool { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "alloc_error_handler", @@ -1381,6 +2353,9 @@ The tracking issue for this feature is: [#51540] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "alloc_error_hook", @@ -1392,6 +2367,9 @@ The tracking issue for this feature is: [#51245] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "alloc_internals", @@ -1401,6 +2379,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "alloc_layout_extra", @@ -1412,6 +2393,9 @@ The tracking issue for this feature is: [#55724] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "allocator_api", @@ -1431,6 +2415,9 @@ for which you want a custom allocator. TBD "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "allocator_internals", @@ -1442,6 +2429,9 @@ compiler. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "allow_internal_unsafe", @@ -1451,6 +2441,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "allow_internal_unstable", @@ -1460,6 +2453,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "anonymous_lifetime_in_impl_trait", @@ -1469,6 +2465,23 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "anonymous_pipe", + description: r##"# `anonymous_pipe` + +The tracking issue for this feature is: [#127154] + +[#127154]: https://github.com/rust-lang/rust/issues/127154 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "arbitrary_self_types", @@ -1480,6 +2493,23 @@ The tracking issue for this feature is: [#44874] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "arbitrary_self_types_pointers", + description: r##"# `arbitrary_self_types_pointers` + +The tracking issue for this feature is: [#44874] + +[#44874]: https://github.com/rust-lang/rust/issues/44874 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "arm_target_feature", @@ -1491,6 +2521,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_chunks", @@ -1502,6 +2535,9 @@ The tracking issue for this feature is: [#74985] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_into_iter_constructors", @@ -1513,6 +2549,9 @@ The tracking issue for this feature is: [#91583] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_ptr_get", @@ -1524,6 +2563,9 @@ The tracking issue for this feature is: [#119834] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_repeat", @@ -1535,6 +2577,9 @@ The tracking issue for this feature is: [#126695] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_try_from_fn", @@ -1546,6 +2591,9 @@ The tracking issue for this feature is: [#89379] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_try_map", @@ -1557,6 +2605,9 @@ The tracking issue for this feature is: [#79711] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "array_windows", @@ -1568,6 +2619,9 @@ The tracking issue for this feature is: [#75027] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "as_array_of_cells", @@ -1579,6 +2633,9 @@ The tracking issue for this feature is: [#88248] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ascii_char", @@ -1590,6 +2647,9 @@ The tracking issue for this feature is: [#110998] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ascii_char_variants", @@ -1601,21 +2661,9 @@ The tracking issue for this feature is: [#110998] ------------------------ "##, - }, - Lint { - label: "asm_const", - description: r##"# `asm_const` - -The tracking issue for this feature is: [#93332] - -[#93332]: https://github.com/rust-lang/rust/issues/93332 - ------------------------- - -This feature adds a `const ` operand type to `asm!` and `global_asm!`. -- `` must be an integer constant expression. -- The value of the expression is formatted as a string and substituted directly into the asm template string. -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "asm_experimental_arch", @@ -1672,7 +2720,10 @@ This feature tracks `asm!` and `global_asm!` support for the following architect | CSKY | `reg` | `r[0-31]` | `r` | | CSKY | `freg` | `f[0-31]` | `f` | | s390x | `reg` | `r[0-10]`, `r[12-14]` | `r` | +| s390x | `reg_addr` | `r[1-10]`, `r[12-14]` | `a` | | s390x | `freg` | `f[0-15]` | `f` | +| s390x | `vreg` | `v[0-31]` | Only clobbers | +| s390x | `areg` | `a[2-15]` | Only clobbers | | Arm64EC | `reg` | `x[0-12]`, `x[15-22]`, `x[25-27]`, `x30` | `r` | | Arm64EC | `vreg` | `v[0-15]` | `w` | | Arm64EC | `vreg_low16` | `v[0-15]` | `x` | @@ -1711,6 +2762,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect | CSKY | `freg` | None | `f32`, | | s390x | `reg`, `reg_addr` | None | `i8`, `i16`, `i32`, `i64` | | s390x | `freg` | None | `f32`, `f64` | +| s390x | `vreg` | N/A | Only clobbers | +| s390x | `areg` | N/A | Only clobbers | | Arm64EC | `reg` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64` | | Arm64EC | `vreg` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64`,
`i8x8`, `i16x4`, `i32x2`, `i64x1`, `f32x2`, `f64x1`,
`i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` | @@ -1778,6 +2831,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect | CSKY | `r15` | This is the link register. | | CSKY | `r[26-30]` | Reserved by its ABI. | | CSKY | `r31` | This is the TLS register. | +| s390x | `c[0-15]` | Reserved by the kernel. | +| s390x | `a[0-1]` | Reserved for system use. | | Arm64EC | `xzr` | This is a constant zero register which can't be modified. | | Arm64EC | `x18` | This is an OS-reserved register. | | Arm64EC | `x13`, `x14`, `x23`, `x24`, `x28`, `v[16-31]` | These are AArch64 registers that are not supported for Arm64EC. | @@ -1827,6 +2882,9 @@ These flags registers must be restored upon exiting the asm block if the `preser - Condition flags (`NZCV` register). - Floating-point status (`FPSR` register). "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "asm_goto", @@ -1861,6 +2919,9 @@ assembly. In this case, the entire `asm!` expression will have an unit type as opposed to diverging, if not all label blocks diverge. The `asm!` expression still diverges if `noreturn` option is used and all label blocks diverge. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "asm_unwind", @@ -1874,6 +2935,9 @@ The tracking issue for this feature is: [#93334] This feature adds a `may_unwind` option to `asm!` which allows an `asm` block to unwind stack and be part of the stack unwinding process. This option is only supported by the LLVM backend right now. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "assert_matches", @@ -1885,6 +2949,9 @@ The tracking issue for this feature is: [#82775] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "associated_const_equality", @@ -1896,6 +2963,9 @@ The tracking issue for this feature is: [#92827] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "associated_type_defaults", @@ -1907,6 +2977,9 @@ The tracking issue for this feature is: [#29661] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_closure", @@ -1918,6 +2991,9 @@ The tracking issue for this feature is: [#62290] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_drop", @@ -1929,6 +3005,9 @@ The tracking issue for this feature is: [#126482] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_fn_track_caller", @@ -1940,6 +3019,9 @@ The tracking issue for this feature is: [#110011] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_fn_traits", @@ -1957,6 +3039,9 @@ for creating custom closure-like types that return futures. The main difference to the `Fn*` family of traits is that `AsyncFn` can return a future that borrows from itself (`FnOnce::Output` has no lifetime parameters, while `AsyncFnMut::CallRefFuture` does). "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_for_loop", @@ -1968,6 +3053,9 @@ The tracking issue for this feature is: [#118898] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_gen_internals", @@ -1977,6 +3065,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_iter_from_iter", @@ -1988,6 +3079,9 @@ The tracking issue for this feature is: [#81798] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "async_iterator", @@ -1999,6 +3093,9 @@ The tracking issue for this feature is: [#79024] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "atomic_from_mut", @@ -2010,6 +3107,9 @@ The tracking issue for this feature is: [#76314] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "auto_traits", @@ -2120,6 +3220,23 @@ Auto traits cannot have any trait items, such as methods or associated types. Th Auto traits cannot have supertraits. This is for soundness reasons, as the interaction of coinduction with implied bounds is difficult to reconcile. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "autodiff", + description: r##"# `autodiff` + +The tracking issue for this feature is: [#124509] + +[#124509]: https://github.com/rust-lang/rust/issues/124509 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "avx512_target_feature", @@ -2131,6 +3248,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "backtrace_frames", @@ -2142,6 +3262,9 @@ The tracking issue for this feature is: [#79676] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "bigint_helper_methods", @@ -2153,6 +3276,9 @@ The tracking issue for this feature is: [#85532] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "binary_heap_drain_sorted", @@ -2164,6 +3290,9 @@ The tracking issue for this feature is: [#59278] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "binary_heap_into_iter_sorted", @@ -2175,6 +3304,9 @@ The tracking issue for this feature is: [#59278] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "bound_as_ref", @@ -2186,6 +3318,23 @@ The tracking issue for this feature is: [#80996] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "box_as_ptr", + description: r##"# `box_as_ptr` + +The tracking issue for this feature is: [#129090] + +[#129090]: https://github.com/rust-lang/rust/issues/129090 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "box_into_boxed_slice", @@ -2197,6 +3346,9 @@ The tracking issue for this feature is: [#71582] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "box_into_inner", @@ -2208,6 +3360,9 @@ The tracking issue for this feature is: [#80437] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "box_patterns", @@ -2242,6 +3397,37 @@ fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "box_uninit_write", + description: r##"# `box_uninit_write` + +The tracking issue for this feature is: [#129397] + +[#129397]: https://github.com/rust-lang/rust/issues/129397 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "box_vec_non_null", + description: r##"# `box_vec_non_null` + +The tracking issue for this feature is: [#130364] + +[#130364]: https://github.com/rust-lang/rust/issues/130364 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "bpf_target_feature", @@ -2253,6 +3439,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "btree_cursors", @@ -2264,6 +3453,9 @@ The tracking issue for this feature is: [#107540] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "btree_extract_if", @@ -2275,6 +3467,9 @@ The tracking issue for this feature is: [#70530] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "btreemap_alloc", @@ -2286,6 +3481,9 @@ The tracking issue for this feature is: [#32838] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "buf_read_has_data_left", @@ -2297,17 +3495,23 @@ The tracking issue for this feature is: [#86423] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "bufread_skip_until", - description: r##"# `bufread_skip_until` + label: "bufreader_peek", + description: r##"# `bufreader_peek` -The tracking issue for this feature is: [#111735] +The tracking issue for this feature is: [#128405] -[#111735]: https://github.com/rust-lang/rust/issues/111735 +[#128405]: https://github.com/rust-lang/rust/issues/128405 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "build_hasher_default_const_new", @@ -2319,6 +3523,9 @@ The tracking issue for this feature is: [#123197] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "builtin_syntax", @@ -2330,6 +3537,9 @@ The tracking issue for this feature is: [#110680] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "c_size_t", @@ -2341,6 +3551,9 @@ The tracking issue for this feature is: [#88345] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "c_str_module", @@ -2352,6 +3565,9 @@ The tracking issue for this feature is: [#112134] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "c_variadic", @@ -2380,6 +3596,9 @@ pub unsafe extern "C" fn add(n: usize, mut args: ...) -> usize { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "c_variadic", @@ -2410,6 +3629,9 @@ pub unsafe extern "C" fn vadd(n: usize, mut args: VaList) -> usize { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "c_void_variant", @@ -2419,6 +3641,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "can_vector", @@ -2430,6 +3655,9 @@ The tracking issue for this feature is: [#69941] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cell_leak", @@ -2441,6 +3669,9 @@ The tracking issue for this feature is: [#69099] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cell_update", @@ -2452,6 +3683,9 @@ The tracking issue for this feature is: [#50186] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_accessible", @@ -2463,6 +3697,38 @@ The tracking issue for this feature is: [#64797] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "cfg_boolean_literals", + description: r##"# `cfg_boolean_literals` + +The tracking issue for this feature is: [#131204] + +[#131204]: https://github.com/rust-lang/rust/issues/131204 + +------------------------ + +The `cfg_boolean_literals` feature makes it possible to use the `true`/`false` +literal as cfg predicate. They always evaluate to true/false respectively. + +## Examples + +```rust +#![feature(cfg_boolean_literals)] + +#[cfg(true)] +const A: i32 = 5; + +#[cfg(all(false))] +const A: i32 = 58 * 89; +``` +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_eval", @@ -2474,6 +3740,9 @@ The tracking issue for this feature is: [#82679] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_match", @@ -2485,6 +3754,9 @@ The tracking issue for this feature is: [#115585] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_overflow_checks", @@ -2496,6 +3768,9 @@ The tracking issue for this feature is: [#111466] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_relocation_model", @@ -2507,6 +3782,9 @@ The tracking issue for this feature is: [#114929] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_sanitize", @@ -2545,6 +3823,9 @@ fn b() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_sanitizer_cfi", @@ -2556,6 +3837,9 @@ The tracking issue for this feature is: [#89653] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_target_compact", @@ -2567,6 +3851,9 @@ The tracking issue for this feature is: [#96901] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_target_has_atomic", @@ -2578,6 +3865,9 @@ The tracking issue for this feature is: [#94039] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_target_has_atomic_equal_alignment", @@ -2589,6 +3879,9 @@ The tracking issue for this feature is: [#93822] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_target_thread_local", @@ -2600,6 +3893,9 @@ The tracking issue for this feature is: [#29594] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_ub_checks", @@ -2611,6 +3907,9 @@ The tracking issue for this feature is: [#123499] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfg_version", @@ -2650,6 +3949,9 @@ fn b() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cfi_encoding", @@ -2679,17 +3981,9 @@ extern { } ``` "##, - }, - Lint { - label: "char_indices_offset", - description: r##"# `char_indices_offset` - -The tracking issue for this feature is: [#83871] - -[#83871]: https://github.com/rust-lang/rust/issues/83871 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "char_internals", @@ -2699,17 +3993,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "char_min", - description: r##"# `char_min` - -The tracking issue for this feature is: [#114298] - -[#114298]: https://github.com/rust-lang/rust/issues/114298 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clone_to_uninit", @@ -2721,6 +4007,9 @@ The tracking issue for this feature is: [#126799] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "closure_lifetime_binder", @@ -2732,6 +4021,9 @@ The tracking issue for this feature is: [#97362] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "closure_track_caller", @@ -2748,6 +4040,9 @@ Calls made to the closure or coroutine will have caller information available through `std::panic::Location::caller()`, just like using `#[track_caller]` on a function. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cmp_minmax", @@ -2759,6 +4054,9 @@ The tracking issue for this feature is: [#115939] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cmse_nonsecure_entry", @@ -2779,10 +4077,10 @@ LLVM, the Rust compiler and the linker are providing TrustZone-M feature. One of the things provided, with this unstable feature, is the -`cmse_nonsecure_entry` attribute. This attribute marks a Secure function as an +`C-cmse-nonsecure-entry` ABI. This ABI marks a Secure function as an entry function (see [section 5.4](https://developer.arm.com/documentation/ecm0359818/latest/) for details). -With this attribute, the compiler will do the following: +With this ABI, the compiler will do the following: * add a special symbol on the function which is the `__acle_se_` prefix and the standard function name * constrain the number of parameters to avoid using the Non-Secure stack @@ -2802,11 +4100,11 @@ gateway veneer. ``` rust,ignore +#![no_std] #![feature(cmse_nonsecure_entry)] #[no_mangle] -#[cmse_nonsecure_entry] -pub extern "C" fn entry_function(input: u32) -> u32 { +pub extern "C-cmse-nonsecure-entry" fn entry_function(input: u32) -> u32 { input + 6 } ``` @@ -2844,6 +4142,9 @@ $ arm-none-eabi-objdump -D function.o 40: defe udf #254 ; 0xfe ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coerce_unsized", @@ -2855,6 +4156,9 @@ The tracking issue for this feature is: [#18598] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "compiler_builtins", @@ -2864,6 +4168,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "concat_bytes", @@ -2875,6 +4182,9 @@ The tracking issue for this feature is: [#87555] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "concat_idents", @@ -2901,6 +4211,9 @@ fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_align_of_val", @@ -2912,6 +4225,9 @@ The tracking issue for this feature is: [#46571] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_align_of_val_raw", @@ -2923,6 +4239,9 @@ The tracking issue for this feature is: [#46571] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_align_offset", @@ -2934,6 +4253,9 @@ The tracking issue for this feature is: [#90962] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_alloc_error", @@ -2945,6 +4267,9 @@ The tracking issue for this feature is: [#92523] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_alloc_layout", @@ -2956,6 +4281,9 @@ The tracking issue for this feature is: [#67521] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_arguments_as_str", @@ -2967,17 +4295,9 @@ The tracking issue for this feature is: [#103900] ------------------------ "##, - }, - Lint { - label: "const_array_from_ref", - description: r##"# `const_array_from_ref` - -The tracking issue for this feature is: [#90206] - -[#90206]: https://github.com/rust-lang/rust/issues/90206 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_array_into_iter_constructors", @@ -2989,6 +4309,9 @@ The tracking issue for this feature is: [#91583] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_async_blocks", @@ -3000,6 +4323,9 @@ The tracking issue for this feature is: [#85368] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_atomic_from_ptr", @@ -3011,6 +4337,9 @@ The tracking issue for this feature is: [#108652] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_bigint_helper_methods", @@ -3022,17 +4351,23 @@ The tracking issue for this feature is: [#85532] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_binary_heap_new_in", description: r##"# `const_binary_heap_new_in` -The tracking issue for this feature is: [#112353] +The tracking issue for this feature is: [#125961] -[#112353]: https://github.com/rust-lang/rust/issues/112353 +[#125961]: https://github.com/rust-lang/rust/issues/125961 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_black_box", @@ -3042,6 +4377,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_box", @@ -3053,6 +4391,9 @@ The tracking issue for this feature is: [#92521] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_btree_len", @@ -3062,17 +4403,51 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "const_cell", + description: r##"# `const_cell` + +The tracking issue for this feature is: [#131283] + +[#131283]: https://github.com/rust-lang/rust/issues/131283 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "const_char_encode_utf16", + description: r##"# `const_char_encode_utf16` + +The tracking issue for this feature is: [#130660] + +[#130660]: https://github.com/rust-lang/rust/issues/130660 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_cell_into_inner", - description: r##"# `const_cell_into_inner` + label: "const_char_is_digit", + description: r##"# `const_char_is_digit` -The tracking issue for this feature is: [#78729] +The tracking issue for this feature is: [#132241] -[#78729]: https://github.com/rust-lang/rust/issues/78729 +[#132241]: https://github.com/rust-lang/rust/issues/132241 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_closures", @@ -3084,6 +4459,9 @@ The tracking issue for this feature is: [#106003] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_collections_with_hasher", @@ -3095,17 +4473,9 @@ The tracking issue for this feature is: [#102575] ------------------------ "##, - }, - Lint { - label: "const_cow_is_borrowed", - description: r##"# `const_cow_is_borrowed` - -The tracking issue for this feature is: [#65143] - -[#65143]: https://github.com/rust-lang/rust/issues/65143 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_eval_select", @@ -3117,6 +4487,9 @@ The tracking issue for this feature is: [#124625] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_exact_div", @@ -3126,39 +4499,23 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_extern_fn", - description: r##"# `const_extern_fn` - -The tracking issue for this feature is: [#64926] - -[#64926]: https://github.com/rust-lang/rust/issues/64926 - ------------------------- -"##, - }, - Lint { - label: "const_float_bits_conv", - description: r##"# `const_float_bits_conv` - -The tracking issue for this feature is: [#72447] - -[#72447]: https://github.com/rust-lang/rust/issues/72447 - ------------------------- -"##, - }, - Lint { - label: "const_float_classify", - description: r##"# `const_float_classify` + label: "const_float_methods", + description: r##"# `const_float_methods` -The tracking issue for this feature is: [#72505] +The tracking issue for this feature is: [#130843] -[#72505]: https://github.com/rust-lang/rust/issues/72505 +[#130843]: https://github.com/rust-lang/rust/issues/130843 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_fmt_arguments_new", @@ -3168,17 +4525,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "const_fn_floating_point_arithmetic", - description: r##"# `const_fn_floating_point_arithmetic` - -The tracking issue for this feature is: [#57241] - -[#57241]: https://github.com/rust-lang/rust/issues/57241 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_for", @@ -3190,6 +4539,9 @@ The tracking issue for this feature is: [#87575] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_format_args", @@ -3199,6 +4551,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_hash", @@ -3210,6 +4565,9 @@ The tracking issue for this feature is: [#104061] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_heap", @@ -3221,37 +4579,9 @@ The tracking issue for this feature is: [#79597] ------------------------ "##, - }, - Lint { - label: "const_index_range_slice_index", - description: r##"# `const_index_range_slice_index` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. - ------------------------- -"##, - }, - Lint { - label: "const_int_from_str", - description: r##"# `const_int_from_str` - -The tracking issue for this feature is: [#59133] - -[#59133]: https://github.com/rust-lang/rust/issues/59133 - ------------------------- -"##, - }, - Lint { - label: "const_intoiterator_identity", - description: r##"# `const_intoiterator_identity` - -The tracking issue for this feature is: [#90603] - -[#90603]: https://github.com/rust-lang/rust/issues/90603 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_intrinsic_compare_bytes", @@ -3261,26 +4591,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "const_intrinsic_copy", - description: r##"# `const_intrinsic_copy` - -The tracking issue for this feature is: [#80697] - -[#80697]: https://github.com/rust-lang/rust/issues/80697 - ------------------------- -"##, - }, - Lint { - label: "const_intrinsic_forget", - description: r##"# `const_intrinsic_forget` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_intrinsic_raw_eq", @@ -3290,17 +4603,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "const_ip", - description: r##"# `const_ip` - -The tracking issue for this feature is: [#76205] - -[#76205]: https://github.com/rust-lang/rust/issues/76205 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_ipv4", @@ -3312,26 +4617,23 @@ The tracking issue for this feature is: [#76205] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_ipv6", - description: r##"# `const_ipv6` + label: "const_is_char_boundary", + description: r##"# `const_is_char_boundary` -The tracking issue for this feature is: [#76205] +The tracking issue for this feature is: [#131516] -[#76205]: https://github.com/rust-lang/rust/issues/76205 - ------------------------- -"##, - }, - Lint { - label: "const_likely", - description: r##"# `const_likely` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +[#131516]: https://github.com/rust-lang/rust/issues/131516 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_maybe_uninit_array_assume_init", @@ -3343,26 +4645,9 @@ The tracking issue for this feature is: [#96097] ------------------------ "##, - }, - Lint { - label: "const_maybe_uninit_as_mut_ptr", - description: r##"# `const_maybe_uninit_as_mut_ptr` - -The tracking issue for this feature is: [#75251] - -[#75251]: https://github.com/rust-lang/rust/issues/75251 - ------------------------- -"##, - }, - Lint { - label: "const_maybe_uninit_assume_init", - description: r##"# `const_maybe_uninit_assume_init` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_maybe_uninit_uninit_array", @@ -3374,6 +4659,9 @@ The tracking issue for this feature is: [#96097] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_maybe_uninit_write", @@ -3385,17 +4673,9 @@ The tracking issue for this feature is: [#63567] ------------------------ "##, - }, - Lint { - label: "const_mut_refs", - description: r##"# `const_mut_refs` - -The tracking issue for this feature is: [#57349] - -[#57349]: https://github.com/rust-lang/rust/issues/57349 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_nonnull_new", @@ -3407,6 +4687,9 @@ The tracking issue for this feature is: [#93235] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_num_midpoint", @@ -3418,17 +4701,9 @@ The tracking issue for this feature is: [#110840] ------------------------ "##, - }, - Lint { - label: "const_option", - description: r##"# `const_option` - -The tracking issue for this feature is: [#67441] - -[#67441]: https://github.com/rust-lang/rust/issues/67441 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_option_ext", @@ -3440,10 +4715,13 @@ The tracking issue for this feature is: [#91930] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_pin", - description: r##"# `const_pin` + label: "const_pin_2", + description: r##"# `const_pin_2` The tracking issue for this feature is: [#76654] @@ -3451,6 +4729,9 @@ The tracking issue for this feature is: [#76654] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_pointer_is_aligned", @@ -3462,6 +4743,9 @@ The tracking issue for this feature is: [#104203] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_precise_live_drops", @@ -3473,6 +4757,9 @@ The tracking issue for this feature is: [#73255] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_pref_align_of", @@ -3484,17 +4771,9 @@ The tracking issue for this feature is: [#91971] ------------------------ "##, - }, - Lint { - label: "const_ptr_as_ref", - description: r##"# `const_ptr_as_ref` - -The tracking issue for this feature is: [#91822] - -[#91822]: https://github.com/rust-lang/rust/issues/91822 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_ptr_is_null", @@ -3506,6 +4785,9 @@ The tracking issue for this feature is: [#74939] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_ptr_sub_ptr", @@ -3517,17 +4799,9 @@ The tracking issue for this feature is: [#95892] ------------------------ "##, - }, - Lint { - label: "const_ptr_write", - description: r##"# `const_ptr_write` - -The tracking issue for this feature is: [#86302] - -[#86302]: https://github.com/rust-lang/rust/issues/86302 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_range_bounds", @@ -3539,6 +4813,9 @@ The tracking issue for this feature is: [#108082] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_raw_ptr_comparison", @@ -3550,50 +4827,9 @@ The tracking issue for this feature is: [#53020] ------------------------ "##, - }, - Lint { - label: "const_refs_to_cell", - description: r##"# `const_refs_to_cell` - -The tracking issue for this feature is: [#80384] - -[#80384]: https://github.com/rust-lang/rust/issues/80384 - ------------------------- -"##, - }, - Lint { - label: "const_refs_to_static", - description: r##"# `const_refs_to_static` - -The tracking issue for this feature is: [#119618] - -[#119618]: https://github.com/rust-lang/rust/issues/119618 - ------------------------- -"##, - }, - Lint { - label: "const_replace", - description: r##"# `const_replace` - -The tracking issue for this feature is: [#83164] - -[#83164]: https://github.com/rust-lang/rust/issues/83164 - ------------------------- -"##, - }, - Lint { - label: "const_result", - description: r##"# `const_result` - -The tracking issue for this feature is: [#82814] - -[#82814]: https://github.com/rust-lang/rust/issues/82814 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_size_of_val", @@ -3605,6 +4841,9 @@ The tracking issue for this feature is: [#46571] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_size_of_val_raw", @@ -3616,28 +4855,9 @@ The tracking issue for this feature is: [#46571] ------------------------ "##, - }, - Lint { - label: "const_slice_first_last", - description: r##"# `const_slice_first_last` - -The tracking issue for this feature is: [#83570] - -[#83570]: https://github.com/rust-lang/rust/issues/83570 - ------------------------- -"##, - }, - Lint { - label: "const_slice_first_last_chunk", - description: r##"# `const_slice_first_last_chunk` - -The tracking issue for this feature is: [#111774] - -[#111774]: https://github.com/rust-lang/rust/issues/111774 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_slice_flatten", @@ -3649,6 +4869,9 @@ The tracking issue for this feature is: [#95629] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_slice_from_mut_ptr_range", @@ -3660,6 +4883,9 @@ The tracking issue for this feature is: [#89792] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_slice_from_ptr_range", @@ -3671,48 +4897,23 @@ The tracking issue for this feature is: [#89792] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_slice_from_raw_parts_mut", - description: r##"# `const_slice_from_raw_parts_mut` - -The tracking issue for this feature is: [#67456] - -[#67456]: https://github.com/rust-lang/rust/issues/67456 - ------------------------- -"##, - }, - Lint { - label: "const_slice_from_ref", - description: r##"# `const_slice_from_ref` - -The tracking issue for this feature is: [#90206] - -[#90206]: https://github.com/rust-lang/rust/issues/90206 - ------------------------- -"##, - }, - Lint { - label: "const_slice_index", - description: r##"# `const_slice_index` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. - ------------------------- -"##, - }, - Lint { - label: "const_slice_split_at_mut", - description: r##"# `const_slice_split_at_mut` + label: "const_sockaddr_setters", + description: r##"# `const_sockaddr_setters` -The tracking issue for this feature is: [#101804] +The tracking issue for this feature is: [#131714] -[#101804]: https://github.com/rust-lang/rust/issues/101804 +[#131714]: https://github.com/rust-lang/rust/issues/131714 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_str_from_raw_parts_mut", @@ -3724,6 +4925,9 @@ The tracking issue for this feature is: [#119206] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_str_from_utf8", @@ -3735,17 +4939,23 @@ The tracking issue for this feature is: [#91006] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_str_from_utf8_unchecked_mut", - description: r##"# `const_str_from_utf8_unchecked_mut` + label: "const_str_split_at", + description: r##"# `const_str_split_at` -The tracking issue for this feature is: [#91005] +The tracking issue for this feature is: [#131518] -[#91005]: https://github.com/rust-lang/rust/issues/91005 +[#131518]: https://github.com/rust-lang/rust/issues/131518 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_strict_overflow_ops", @@ -3757,6 +4967,9 @@ The tracking issue for this feature is: [#118260] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_swap", @@ -3768,6 +4981,9 @@ The tracking issue for this feature is: [#83163] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_three_way_compare", @@ -3777,6 +4993,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_trait_impl", @@ -3788,6 +5007,9 @@ The tracking issue for this feature is: [#67792] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_try", @@ -3799,6 +5021,9 @@ The tracking issue for this feature is: [#74935] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_type_id", @@ -3810,6 +5035,9 @@ The tracking issue for this feature is: [#77125] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_type_name", @@ -3821,6 +5049,9 @@ The tracking issue for this feature is: [#63084] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_typed_swap", @@ -3830,6 +5061,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "const_ub_checks", @@ -3839,39 +5073,51 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_unicode_case_lookup", - description: r##"# `const_unicode_case_lookup` + label: "const_unbounded_shifts", + description: r##"# `const_unbounded_shifts` -The tracking issue for this feature is: [#101400] +The tracking issue for this feature is: [#129375] -[#101400]: https://github.com/rust-lang/rust/issues/101400 +[#129375]: https://github.com/rust-lang/rust/issues/129375 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_unsafecell_get_mut", - description: r##"# `const_unsafecell_get_mut` + label: "const_unicode_case_lookup", + description: r##"# `const_unicode_case_lookup` -The tracking issue for this feature is: [#88836] +The tracking issue for this feature is: [#101400] -[#88836]: https://github.com/rust-lang/rust/issues/88836 +[#101400]: https://github.com/rust-lang/rust/issues/101400 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "const_waker", - description: r##"# `const_waker` + label: "const_vec_string_slice", + description: r##"# `const_vec_string_slice` -The tracking issue for this feature is: [#102012] +The tracking issue for this feature is: [#129041] -[#102012]: https://github.com/rust-lang/rust/issues/102012 +[#129041]: https://github.com/rust-lang/rust/issues/129041 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "container_error_extra", @@ -3881,6 +5127,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "context_ext", @@ -3892,17 +5141,9 @@ The tracking issue for this feature is: [#123392] ------------------------ "##, - }, - Lint { - label: "control_flow_enum", - description: r##"# `control_flow_enum` - -The tracking issue for this feature is: [#75744] - -[#75744]: https://github.com/rust-lang/rust/issues/75744 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "convert_float_to_int", @@ -3914,6 +5155,9 @@ The tracking issue for this feature is: [#67057] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_intrinsics", @@ -3923,6 +5167,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_io_borrowed_buf", @@ -3934,24 +5181,37 @@ The tracking issue for this feature is: [#117693] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_pattern_type", description: r##"# `core_pattern_type` -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +The tracking issue for this feature is: [#123646] + +[#123646]: https://github.com/rust-lang/rust/issues/123646 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_pattern_types", description: r##"# `core_pattern_types` -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +The tracking issue for this feature is: [#123646] + +[#123646]: https://github.com/rust-lang/rust/issues/123646 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_private_bignum", @@ -3961,6 +5221,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "core_private_diy_float", @@ -3970,6 +5233,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coroutine_clone", @@ -3981,6 +5247,9 @@ The tracking issue for this feature is: [#95360] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coroutine_trait", @@ -3992,6 +5261,9 @@ The tracking issue for this feature is: [#43122] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coroutines", @@ -4243,6 +5515,9 @@ it's invalid to resume a completed coroutine. It's also worth noting that this is just a rough desugaring, not a normative specification for what the compiler does. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "coverage_attribute", @@ -4277,6 +5552,9 @@ fn bar() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cow_is_borrowed", @@ -4288,6 +5566,9 @@ The tracking issue for this feature is: [#65143] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "csky_target_feature", @@ -4299,6 +5580,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cstr_bytes", @@ -4310,6 +5594,9 @@ The tracking issue for this feature is: [#112115] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "cstr_internals", @@ -4319,10 +5606,13 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "cursor_remaining", - description: r##"# `cursor_remaining` + label: "cursor_split", + description: r##"# `cursor_split` The tracking issue for this feature is: [#86369] @@ -4330,6 +5620,9 @@ The tracking issue for this feature is: [#86369] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "custom_inner_attributes", @@ -4341,6 +5634,9 @@ The tracking issue for this feature is: [#54726] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "custom_mir", @@ -4350,6 +5646,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "custom_test_frameworks", @@ -4386,6 +5685,9 @@ const WILL_PASS: i32 = 0; const WILL_FAIL: i32 = 4; ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deadline_api", @@ -4397,6 +5699,9 @@ The tracking issue for this feature is: [#46316] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "debug_closure_helpers", @@ -4408,6 +5713,9 @@ The tracking issue for this feature is: [#117729] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "dec2flt", @@ -4417,6 +5725,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "decl_macro", @@ -4428,17 +5739,9 @@ The tracking issue for this feature is: [#39412] ------------------------ "##, - }, - Lint { - label: "default_type_parameter_fallback", - description: r##"# `default_type_parameter_fallback` - -The tracking issue for this feature is: [#27336] - -[#27336]: https://github.com/rust-lang/rust/issues/27336 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deprecated_safe", @@ -4450,6 +5753,9 @@ The tracking issue for this feature is: [#94978] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deprecated_suggestion", @@ -4461,6 +5767,9 @@ The tracking issue for this feature is: [#94785] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deref_patterns", @@ -4472,6 +5781,9 @@ The tracking issue for this feature is: [#87121] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "deref_pure_trait", @@ -4483,6 +5795,9 @@ The tracking issue for this feature is: [#87121] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "derive_clone_copy", @@ -4492,35 +5807,47 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "derive_const", - description: r##"# `derive_const` + label: "derive_coerce_pointee", + description: r##"# `derive_coerce_pointee` -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +The tracking issue for this feature is: [#123430] + +[#123430]: https://github.com/rust-lang/rust/issues/123430 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "derive_eq", - description: r##"# `derive_eq` + label: "derive_const", + description: r##"# `derive_const` -This feature is internal to the Rust compiler and is not intended for general use. +This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "derive_smart_pointer", - description: r##"# `derive_smart_pointer` - -The tracking issue for this feature is: [#123430] + label: "derive_eq", + description: r##"# `derive_eq` -[#123430]: https://github.com/rust-lang/rust/issues/123430 +This feature is internal to the Rust compiler and is not intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "dir_entry_ext2", @@ -4532,6 +5859,9 @@ The tracking issue for this feature is: [#85573] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "discriminant_kind", @@ -4541,6 +5871,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "dispatch_from_dyn", @@ -4550,6 +5883,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "do_not_recommend", @@ -4561,6 +5897,9 @@ The tracking issue for this feature is: [#51992] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "doc_auto_cfg", @@ -4572,6 +5911,9 @@ The tracking issue for this feature is: [#43781] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "doc_cfg", @@ -4622,6 +5964,9 @@ pub struct Icon { [#43781]: https://github.com/rust-lang/rust/issues/43781 [#43348]: https://github.com/rust-lang/rust/issues/43348 "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "doc_cfg_hide", @@ -4633,6 +5978,9 @@ The tracking issue for this feature is: [#43781] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "doc_masked", @@ -4661,6 +6009,9 @@ Such types would introduce broken links into the documentation. [#44026]: https://github.com/rust-lang/rust/pull/44026 [#44027]: https://github.com/rust-lang/rust/pull/44027 "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "doc_notable_trait", @@ -4698,6 +6049,9 @@ See also its documentation in [the rustdoc book][rustdoc-book-notable_trait]. [#45039]: https://github.com/rust-lang/rust/pull/45039 [rustdoc-book-notable_trait]: ../../rustdoc/unstable-features.html#adding-your-trait-to-the-notable-traits-dialog "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "downcast_unchecked", @@ -4709,6 +6063,9 @@ The tracking issue for this feature is: [#90850] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "drain_keep_rest", @@ -4720,6 +6077,9 @@ The tracking issue for this feature is: [#101122] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "dropck_eyepatch", @@ -4731,6 +6091,9 @@ The tracking issue for this feature is: [#34761] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "duration_constants", @@ -4742,6 +6105,9 @@ The tracking issue for this feature is: [#57391] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "duration_constructors", @@ -4755,17 +6121,9 @@ The tracking issue for this feature is: [#120301] Add the methods `from_mins`, `from_hours` and `from_days` to `Duration`. "##, - }, - Lint { - label: "duration_consts_float", - description: r##"# `duration_consts_float` - -The tracking issue for this feature is: [#72440] - -[#72440]: https://github.com/rust-lang/rust/issues/72440 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "duration_millis_float", @@ -4777,6 +6135,9 @@ The tracking issue for this feature is: [#122451] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "duration_units", @@ -4788,35 +6149,49 @@ The tracking issue for this feature is: [#120301] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "dyn_star", - description: r##"# `dyn_star` + label: "dyn_compatible_for_dispatch", + description: r##"# `dyn_compatible_for_dispatch` -The tracking issue for this feature is: [#102425] +The tracking issue for this feature is: [#43561] -[#102425]: https://github.com/rust-lang/rust/issues/102425 +[#43561]: https://github.com/rust-lang/rust/issues/43561 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "edition_panic", - description: r##"# `edition_panic` + label: "dyn_star", + description: r##"# `dyn_star` -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +The tracking issue for this feature is: [#102425] + +[#102425]: https://github.com/rust-lang/rust/issues/102425 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "effect_types", - description: r##"# `effect_types` + label: "edition_panic", + description: r##"# `edition_panic` This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "effects", @@ -4828,17 +6203,9 @@ The tracking issue for this feature is: [#102090] ------------------------ "##, - }, - Lint { - label: "entry_insert", - description: r##"# `entry_insert` - -The tracking issue for this feature is: [#65225] - -[#65225]: https://github.com/rust-lang/rust/issues/65225 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ermsb_target_feature", @@ -4850,6 +6217,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "error_generic_member_access", @@ -4861,6 +6231,9 @@ The tracking issue for this feature is: [#99301] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "error_iter", @@ -4872,6 +6245,9 @@ The tracking issue for this feature is: [#58520] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "error_reporter", @@ -4883,6 +6259,9 @@ The tracking issue for this feature is: [#90172] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "error_type_id", @@ -4894,6 +6273,9 @@ The tracking issue for this feature is: [#60784] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exact_size_is_empty", @@ -4905,6 +6287,9 @@ The tracking issue for this feature is: [#35428] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exclusive_wrapper", @@ -4916,6 +6301,9 @@ The tracking issue for this feature is: [#98407] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exhaustive_patterns", @@ -4927,6 +6315,9 @@ The tracking issue for this feature is: [#51085] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exit_status_error", @@ -4938,6 +6329,9 @@ The tracking issue for this feature is: [#84908] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "exitcode_exit_method", @@ -4949,6 +6343,9 @@ The tracking issue for this feature is: [#97100] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "explicit_tail_calls", @@ -4960,28 +6357,9 @@ The tracking issue for this feature is: [#112788] ------------------------ "##, - }, - Lint { - label: "exposed_provenance", - description: r##"# `exposed_provenance` - -The tracking issue for this feature is: [#95228] - -[#95228]: https://github.com/rust-lang/rust/issues/95228 - ------------------------- -"##, - }, - Lint { - label: "expr_fragment_specifier_2024", - description: r##"# `expr_fragment_specifier_2024` - -The tracking issue for this feature is: [#123742] - -[#123742]: https://github.com/rust-lang/rust/issues/123742 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "extend_one", @@ -4993,6 +6371,9 @@ The tracking issue for this feature is: [#72631] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "extend_one_unchecked", @@ -5002,6 +6383,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "extended_varargs_abi_support", @@ -5016,6 +6400,9 @@ The tracking issue for this feature is: [#100189] This feature adds the possibility of using `sysv64`, `win64` or `efiapi` calling conventions on functions with varargs. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "extern_types", @@ -5027,6 +6414,9 @@ The tracking issue for this feature is: [#43467] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "extract_if", @@ -5038,6 +6428,9 @@ The tracking issue for this feature is: [#43244] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "f128", @@ -5051,6 +6444,9 @@ The tracking issue for this feature is: [#116909] Enable the `f128` type for IEEE 128-bit floating numbers (quad precision). "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "f16", @@ -5064,6 +6460,9 @@ The tracking issue for this feature is: [#116909] Enable the `f16` type for IEEE 16-bit floating numbers (half precision). "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fd", @@ -5073,6 +6472,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fd_read", @@ -5082,6 +6484,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ffi_const", @@ -5138,6 +6543,9 @@ against are compatible with those of the `#[ffi_const]`. [GCC]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-function-attribute [IBM ILE C/C++]: https://www.ibm.com/support/knowledgecenter/fr/ssw_ibm_i_71/rzarg/fn_attrib_const.htm "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ffi_pure", @@ -5198,6 +6606,23 @@ against are compatible with those of the `#[ffi_pure]`. [GCC]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-pure-function-attribute [IBM ILE C/C++]: https://www.ibm.com/support/knowledgecenter/fr/ssw_ibm_i_71/rzarg/fn_attrib_pure.htm "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "file_buffered", + description: r##"# `file_buffered` + +The tracking issue for this feature is: [#130804] + +[#130804]: https://github.com/rust-lang/rust/issues/130804 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "float_gamma", @@ -5209,6 +6634,9 @@ The tracking issue for this feature is: [#99842] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "float_minimum_maximum", @@ -5220,6 +6648,9 @@ The tracking issue for this feature is: [#91079] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "float_next_up_down", @@ -5231,6 +6662,9 @@ The tracking issue for this feature is: [#91399] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "flt2dec", @@ -5240,6 +6674,23 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "fmt_debug", + description: r##"# `fmt_debug` + +The tracking issue for this feature is: [#129709] + +[#129709]: https://github.com/rust-lang/rust/issues/129709 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fmt_helpers_for_derive", @@ -5249,6 +6700,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fmt_internals", @@ -5258,6 +6712,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fn_align", @@ -5269,6 +6726,9 @@ The tracking issue for this feature is: [#82232] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fn_delegation", @@ -5280,6 +6740,9 @@ The tracking issue for this feature is: [#118212] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fn_ptr_trait", @@ -5289,6 +6752,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fn_traits", @@ -5328,6 +6794,9 @@ fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "forget_unsized", @@ -5337,6 +6806,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "format_args_nl", @@ -5346,6 +6818,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "freeze", @@ -5357,6 +6832,9 @@ The tracking issue for this feature is: [#121675] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "freeze_impls", @@ -5368,6 +6846,9 @@ The tracking issue for this feature is: [#121675] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "fundamental", @@ -5379,6 +6860,9 @@ The tracking issue for this feature is: [#29635] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "future_join", @@ -5390,6 +6874,9 @@ The tracking issue for this feature is: [#91642] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "gen_blocks", @@ -5401,6 +6888,9 @@ The tracking issue for this feature is: [#117078] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "gen_future", @@ -5412,6 +6902,9 @@ The tracking issue for this feature is: [#50547] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_arg_infer", @@ -5423,6 +6916,9 @@ The tracking issue for this feature is: [#85077] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_assert", @@ -5432,6 +6928,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_assert_internals", @@ -5443,6 +6942,9 @@ The tracking issue for this feature is: [#44838] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_associated_types_extended", @@ -5454,6 +6956,9 @@ The tracking issue for this feature is: [#95451] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_const_exprs", @@ -5465,6 +6970,9 @@ The tracking issue for this feature is: [#76560] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "generic_const_items", @@ -5476,6 +6984,9 @@ The tracking issue for this feature is: [#113521] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "get_many_mut", @@ -5487,6 +6998,9 @@ The tracking issue for this feature is: [#104642] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "get_mut_unchecked", @@ -5498,6 +7012,9 @@ The tracking issue for this feature is: [#63292] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "global_registration", @@ -5509,6 +7026,9 @@ The tracking issue for this feature is: [#125119] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "half_open_range_patterns_in_slices", @@ -5542,6 +7062,9 @@ fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hash_extract_if", @@ -5553,6 +7076,9 @@ The tracking issue for this feature is: [#59618] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hash_raw_entry", @@ -5564,6 +7090,9 @@ The tracking issue for this feature is: [#56167] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hash_set_entry", @@ -5575,6 +7104,9 @@ The tracking issue for this feature is: [#60896] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hasher_prefixfree_extras", @@ -5586,6 +7118,9 @@ The tracking issue for this feature is: [#96762] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hashmap_internals", @@ -5595,6 +7130,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hexagon_target_feature", @@ -5606,6 +7144,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "hint_must_use", @@ -5617,6 +7158,9 @@ The tracking issue for this feature is: [#94745] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "if_let_guard", @@ -5628,6 +7172,9 @@ The tracking issue for this feature is: [#51114] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "impl_trait_in_assoc_type", @@ -5639,6 +7186,9 @@ The tracking issue for this feature is: [#63063] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "impl_trait_in_fn_trait_return", @@ -5650,6 +7200,9 @@ The tracking issue for this feature is: [#99697] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "inherent_associated_types", @@ -5661,6 +7214,9 @@ The tracking issue for this feature is: [#8995] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "inline_const_pat", @@ -5687,6 +7243,9 @@ match some_int { [#76001]: https://github.com/rust-lang/rust/issues/76001 "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "inplace_iteration", @@ -5696,6 +7255,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "int_roundings", @@ -5707,6 +7269,9 @@ The tracking issue for this feature is: [#88581] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "integer_atomics", @@ -5718,6 +7283,9 @@ The tracking issue for this feature is: [#99069] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "integer_sign_cast", @@ -5729,6 +7297,9 @@ The tracking issue for this feature is: [#125882] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "internal_impls_macro", @@ -5738,6 +7309,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "internal_output_capture", @@ -5747,6 +7321,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "intra_doc_pointers", @@ -5766,6 +7343,9 @@ raw pointers in intra-doc links are unstable until it does. //! [pointer::add] ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "intrinsics", @@ -5861,6 +7441,23 @@ extern "rust-intrinsic" { As with any other FFI functions, these are by default always `unsafe` to call. You can add `#[rustc_safe_intrinsic]` to the intrinsic to make it safe to call. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "io_error_inprogress", + description: r##"# `io_error_inprogress` + +The tracking issue for this feature is: [#130840] + +[#130840]: https://github.com/rust-lang/rust/issues/130840 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "io_error_more", @@ -5872,6 +7469,9 @@ The tracking issue for this feature is: [#86442] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "io_error_uncategorized", @@ -5881,6 +7481,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ip", @@ -5892,28 +7495,37 @@ The tracking issue for this feature is: [#27709] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "is_ascii_octdigit", - description: r##"# `is_ascii_octdigit` + label: "ip_from", + description: r##"# `ip_from` -The tracking issue for this feature is: [#101288] +The tracking issue for this feature is: [#131360] -[#101288]: https://github.com/rust-lang/rust/issues/101288 +[#131360]: https://github.com/rust-lang/rust/issues/131360 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "is_none_or", - description: r##"# `is_none_or` + label: "is_ascii_octdigit", + description: r##"# `is_ascii_octdigit` -The tracking issue for this feature is: [#126383] +The tracking issue for this feature is: [#101288] -[#126383]: https://github.com/rust-lang/rust/issues/126383 +[#101288]: https://github.com/rust-lang/rust/issues/101288 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "is_riscv_feature_detected", @@ -5925,21 +7537,9 @@ The tracking issue for this feature is: [#111192] ------------------------ "##, - }, - Lint { - label: "is_sorted", - description: r##"# `is_sorted` - -The tracking issue for this feature is: [#53485] - -[#53485]: https://github.com/rust-lang/rust/issues/53485 - ------------------------- - -Add the methods `is_sorted`, `is_sorted_by` and `is_sorted_by_key` to `[T]`; -add the methods `is_sorted`, `is_sorted_by` and `is_sorted_by_key` to -`Iterator`. -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "is_val_statically_known", @@ -5949,17 +7549,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "isqrt", - description: r##"# `isqrt` - -The tracking issue for this feature is: [#116226] - -[#116226]: https://github.com/rust-lang/rust/issues/116226 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_advance_by", @@ -5971,6 +7563,9 @@ The tracking issue for this feature is: [#77404] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_array_chunks", @@ -5982,6 +7577,9 @@ The tracking issue for this feature is: [#100450] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_chain", @@ -5993,6 +7591,9 @@ The tracking issue for this feature is: [#125964] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_collect_into", @@ -6004,6 +7605,9 @@ The tracking issue for this feature is: [#94780] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_from_coroutine", @@ -6015,6 +7619,9 @@ The tracking issue for this feature is: [#43122] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_intersperse", @@ -6026,6 +7633,9 @@ The tracking issue for this feature is: [#79524] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_is_partitioned", @@ -6037,6 +7647,9 @@ The tracking issue for this feature is: [#62544] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_map_windows", @@ -6048,6 +7661,9 @@ The tracking issue for this feature is: [#87155] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_next_chunk", @@ -6059,6 +7675,9 @@ The tracking issue for this feature is: [#98326] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_order_by", @@ -6070,6 +7689,9 @@ The tracking issue for this feature is: [#64295] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iter_partition_in_place", @@ -6081,17 +7703,9 @@ The tracking issue for this feature is: [#62543] ------------------------ "##, - }, - Lint { - label: "iter_repeat_n", - description: r##"# `iter_repeat_n` - -The tracking issue for this feature is: [#104434] - -[#104434]: https://github.com/rust-lang/rust/issues/104434 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iterator_try_collect", @@ -6103,6 +7717,9 @@ The tracking issue for this feature is: [#94047] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "iterator_try_reduce", @@ -6114,6 +7731,9 @@ The tracking issue for this feature is: [#87053] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "junction_point", @@ -6125,6 +7745,9 @@ The tracking issue for this feature is: [#121709] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "lahfsahf_target_feature", @@ -6136,6 +7759,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "lang_items", @@ -6255,6 +7881,9 @@ An up-to-date list of all language items can be found [here] in the compiler cod [here]: https://github.com/rust-lang/rust/blob/master/compiler/rustc_hir/src/lang_items.rs "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "large_assignments", @@ -6266,6 +7895,9 @@ The tracking issue for this feature is: [#83518] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "layout_for_ptr", @@ -6277,6 +7909,9 @@ The tracking issue for this feature is: [#69835] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "lazy_cell_into_inner", @@ -6288,6 +7923,23 @@ The tracking issue for this feature is: [#125623] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "lazy_get", + description: r##"# `lazy_get` + +The tracking issue for this feature is: [#129333] + +[#129333]: https://github.com/rust-lang/rust/issues/129333 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "lazy_type_alias", @@ -6299,6 +7951,21 @@ The tracking issue for this feature is: [#112792] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "legacy_receiver_trait", + description: r##"# `legacy_receiver_trait` + +This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "let_chains", @@ -6310,6 +7977,9 @@ The tracking issue for this feature is: [#53667] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "liballoc_internals", @@ -6319,6 +7989,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "libstd_sys_internals", @@ -6328,6 +8001,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "lifetime_capture_rules_2024", @@ -6337,6 +8013,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "link_arg_attribute", @@ -6362,6 +8041,9 @@ extern "C" {} [#99427]: https://github.com/rust-lang/rust/issues/99427 "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "link_cfg", @@ -6371,6 +8053,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "link_llvm_intrinsics", @@ -6382,6 +8067,9 @@ The tracking issue for this feature is: [#29602] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "linkage", @@ -6393,6 +8081,9 @@ The tracking issue for this feature is: [#29603] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "linked_list_cursors", @@ -6404,6 +8095,9 @@ The tracking issue for this feature is: [#58533] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "linked_list_remove", @@ -6415,6 +8109,9 @@ The tracking issue for this feature is: [#69210] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "linked_list_retain", @@ -6426,6 +8123,9 @@ The tracking issue for this feature is: [#114135] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "linux_pidfd", @@ -6437,6 +8137,9 @@ The tracking issue for this feature is: [#82971] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "local_waker", @@ -6448,6 +8151,9 @@ The tracking issue for this feature is: [#118959] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "log_syntax", @@ -6459,6 +8165,9 @@ The tracking issue for this feature is: [#29598] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "loongarch_target_feature", @@ -6470,6 +8179,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "macro_metavar_expr", @@ -6481,6 +8193,9 @@ The tracking issue for this feature is: [#83527] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "macro_metavar_expr_concat", @@ -6492,17 +8207,9 @@ The tracking issue for this feature is: [#124225] ------------------------ "##, - }, - Lint { - label: "map_entry_replace", - description: r##"# `map_entry_replace` - -The tracking issue for this feature is: [#44286] - -[#44286]: https://github.com/rust-lang/rust/issues/44286 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "map_many_mut", @@ -6514,6 +8221,9 @@ The tracking issue for this feature is: [#97601] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "map_try_insert", @@ -6525,6 +8235,9 @@ The tracking issue for this feature is: [#82766] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mapped_lock_guards", @@ -6536,6 +8249,9 @@ The tracking issue for this feature is: [#117108] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "marker_trait_attr", @@ -6575,6 +8291,9 @@ fn cheap_clone(t: T) -> T { This is expected to replace the unstable `overlapping_marker_traits` feature, which applied to all empty traits (without needing an opt-in). "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_array_assume_init", @@ -6586,6 +8305,9 @@ The tracking issue for this feature is: [#96097] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_as_bytes", @@ -6597,6 +8319,9 @@ The tracking issue for this feature is: [#93092] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_fill", @@ -6608,6 +8333,9 @@ The tracking issue for this feature is: [#117428] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_slice", @@ -6619,6 +8347,9 @@ The tracking issue for this feature is: [#63569] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_uninit_array", @@ -6630,6 +8361,9 @@ The tracking issue for this feature is: [#96097] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_uninit_array_transpose", @@ -6641,6 +8375,9 @@ The tracking issue for this feature is: [#96097] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "maybe_uninit_write_slice", @@ -6652,6 +8389,9 @@ The tracking issue for this feature is: [#79995] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mem_copy_fn", @@ -6663,17 +8403,9 @@ The tracking issue for this feature is: [#98262] ------------------------ "##, - }, - Lint { - label: "min_exhaustive_patterns", - description: r##"# `min_exhaustive_patterns` - -The tracking issue for this feature is: [#119612] - -[#119612]: https://github.com/rust-lang/rust/issues/119612 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "min_specialization", @@ -6685,6 +8417,9 @@ The tracking issue for this feature is: [#31844] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mips_target_feature", @@ -6696,6 +8431,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "more_float_constants", @@ -6703,10 +8441,25 @@ The tracking issue for this feature is: [#44839] The tracking issue for this feature is: [#103883] -[#103883]: https://github.com/rust-lang/rust/issues/103883 +[#103883]: https://github.com/rust-lang/rust/issues/103883 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "more_maybe_bounds", + description: r##"# `more_maybe_bounds` + +This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "more_qualified_paths", @@ -6715,6 +8468,10 @@ The tracking issue for this feature is: [#103883] The `more_qualified_paths` feature can be used in order to enable the use of qualified paths in patterns. +The tracking issue for this feature is: [#86935](https://github.com/rust-lang/rust/issues/86935). + +------------------------ + ## Example ```rust @@ -6740,6 +8497,23 @@ impl A for Foo { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "mpmc_channel", + description: r##"# `mpmc_channel` + +The tracking issue for this feature is: [#126840] + +[#126840]: https://github.com/rust-lang/rust/issues/126840 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "multiple_supertrait_upcastable", @@ -6749,6 +8523,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "must_not_suspend", @@ -6760,6 +8537,9 @@ The tracking issue for this feature is: [#83310] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "mut_ref", @@ -6771,6 +8551,9 @@ The tracking issue for this feature is: [#123076] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "naked_functions", @@ -6782,6 +8565,9 @@ The tracking issue for this feature is: [#90957] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "native_link_modifiers_as_needed", @@ -6804,6 +8590,9 @@ The modifier does nothing for linkers that don't support it (e.g. `link.exe`). The default for this modifier is unclear, some targets currently specify it as `+as-needed`, some do not. We may want to try making `+as-needed` a default for all targets. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "needs_panic_runtime", @@ -6815,6 +8604,9 @@ The tracking issue for this feature is: [#32837] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "negative_bounds", @@ -6824,6 +8616,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "negative_impls", @@ -6885,6 +8680,9 @@ This serves two purposes: * For proving the correctness of unsafe code, we can use that impl as evidence that no `DerefMut` or `Clone` impl exists. * It prevents downstream crates from creating such impls. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "never_patterns", @@ -6896,6 +8694,9 @@ The tracking issue for this feature is: [#118155] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "never_type", @@ -6907,6 +8708,9 @@ The tracking issue for this feature is: [#35121] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "never_type_fallback", @@ -6918,6 +8722,9 @@ The tracking issue for this feature is: [#65992] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "new_range_api", @@ -6929,17 +8736,23 @@ The tracking issue for this feature is: [#125687] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "new_uninit", - description: r##"# `new_uninit` + label: "new_zeroed_alloc", + description: r##"# `new_zeroed_alloc` -The tracking issue for this feature is: [#63291] +The tracking issue for this feature is: [#129396] -[#63291]: https://github.com/rust-lang/rust/issues/63291 +[#129396]: https://github.com/rust-lang/rust/issues/129396 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "no_core", @@ -6951,6 +8764,9 @@ The tracking issue for this feature is: [#29639] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "no_sanitize", @@ -6984,6 +8800,9 @@ fn foo() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "non_exhaustive_omitted_patterns_lint", @@ -6995,6 +8814,9 @@ The tracking issue for this feature is: [#89554] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "non_lifetime_binders", @@ -7006,6 +8828,23 @@ The tracking issue for this feature is: [#108185] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "non_null_from_ref", + description: r##"# `non_null_from_ref` + +The tracking issue for this feature is: [#130823] + +[#130823]: https://github.com/rust-lang/rust/issues/130823 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "non_zero_count_ones", @@ -7017,6 +8856,23 @@ The tracking issue for this feature is: [#120287] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "nonzero_bitwise", + description: r##"# `nonzero_bitwise` + +The tracking issue for this feature is: [#128281] + +[#128281]: https://github.com/rust-lang/rust/issues/128281 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "nonzero_from_mut", @@ -7028,6 +8884,9 @@ The tracking issue for this feature is: [#106290] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "nonzero_internals", @@ -7037,6 +8896,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "nonzero_ops", @@ -7048,6 +8910,9 @@ The tracking issue for this feature is: [#84186] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "noop_waker", @@ -7059,6 +8924,9 @@ The tracking issue for this feature is: [#98286] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "num_midpoint", @@ -7070,6 +8938,9 @@ The tracking issue for this feature is: [#110840] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "numfmt", @@ -7079,17 +8950,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "dyn_compatible_for_dispatch", - description: r##"# `dyn_compatible_for_dispatch` - -The tracking issue for this feature is: [#43561] - -[#43561]: https://github.com/rust-lang/rust/issues/43561 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "offset_of_enum", @@ -7101,17 +8964,9 @@ The tracking issue for this feature is: [#120141] ------------------------ "##, - }, - Lint { - label: "offset_of_nested", - description: r##"# `offset_of_nested` - -The tracking issue for this feature is: [#120140] - -[#120140]: https://github.com/rust-lang/rust/issues/120140 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "offset_of_slice", @@ -7123,6 +8978,9 @@ The tracking issue for this feature is: [#126151] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "omit_gdb_pretty_printer_section", @@ -7132,6 +8990,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "once_cell_get_mut", @@ -7143,6 +9004,9 @@ The tracking issue for this feature is: [#121641] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "once_cell_try", @@ -7154,6 +9018,9 @@ The tracking issue for this feature is: [#109737] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "once_cell_try_insert", @@ -7165,6 +9032,23 @@ The tracking issue for this feature is: [#116693] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "once_wait", + description: r##"# `once_wait` + +The tracking issue for this feature is: [#127527] + +[#127527]: https://github.com/rust-lang/rust/issues/127527 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "one_sided_range", @@ -7176,6 +9060,9 @@ The tracking issue for this feature is: [#69780] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "optimize_attribute", @@ -7187,17 +9074,23 @@ The tracking issue for this feature is: [#54882] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "option_get_or_insert_default", - description: r##"# `option_get_or_insert_default` + label: "option_array_transpose", + description: r##"# `option_array_transpose` -The tracking issue for this feature is: [#82901] +The tracking issue for this feature is: [#130828] -[#82901]: https://github.com/rust-lang/rust/issues/82901 +[#130828]: https://github.com/rust-lang/rust/issues/130828 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "option_zip", @@ -7209,6 +9102,9 @@ The tracking issue for this feature is: [#70086] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "os_str_display", @@ -7220,6 +9116,9 @@ The tracking issue for this feature is: [#120048] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "os_str_slice", @@ -7231,6 +9130,9 @@ The tracking issue for this feature is: [#118485] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "os_string_pathbuf_leak", @@ -7242,6 +9144,9 @@ The tracking issue for this feature is: [#125965] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_abort", @@ -7253,6 +9158,9 @@ The tracking issue for this feature is: [#32837] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_always_abort", @@ -7264,6 +9172,9 @@ The tracking issue for this feature is: [#84438] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_backtrace_config", @@ -7275,6 +9186,9 @@ The tracking issue for this feature is: [#93346] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_can_unwind", @@ -7286,6 +9200,9 @@ The tracking issue for this feature is: [#92988] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_internals", @@ -7295,6 +9212,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_payload_as_str", @@ -7306,6 +9226,9 @@ The tracking issue for this feature is: [#125175] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_runtime", @@ -7317,6 +9240,9 @@ The tracking issue for this feature is: [#32837] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_unwind", @@ -7328,6 +9254,9 @@ The tracking issue for this feature is: [#32837] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "panic_update_hook", @@ -7339,6 +9268,9 @@ The tracking issue for this feature is: [#92649] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "patchable_function_entry", @@ -7350,6 +9282,9 @@ The tracking issue for this feature is: [#123115] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "path_add_extension", @@ -7361,6 +9296,9 @@ The tracking issue for this feature is: [#127292] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "path_file_prefix", @@ -7372,6 +9310,9 @@ The tracking issue for this feature is: [#86319] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pattern", @@ -7383,6 +9324,9 @@ The tracking issue for this feature is: [#27721] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pattern_complexity", @@ -7392,6 +9336,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pattern_types", @@ -7403,6 +9350,9 @@ The tracking issue for this feature is: [#123646] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "peer_credentials_unix_socket", @@ -7414,17 +9364,37 @@ The tracking issue for this feature is: [#42839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "pin_coerce_unsized_trait", + description: r##"# `pin_coerce_unsized_trait` + +The tracking issue for this feature is: [#123430] + +[#123430]: https://github.com/rust-lang/rust/issues/123430 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "pin_deref_mut", - description: r##"# `pin_deref_mut` + label: "pin_ergonomics", + description: r##"# `pin_ergonomics` -The tracking issue for this feature is: [#86918] +The tracking issue for this feature is: [#130494] -[#86918]: https://github.com/rust-lang/rust/issues/86918 +[#130494]: https://github.com/rust-lang/rust/issues/130494 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pointer_is_aligned_to", @@ -7436,6 +9406,9 @@ The tracking issue for this feature is: [#96284] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pointer_like_trait", @@ -7445,6 +9418,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "portable_simd", @@ -7456,6 +9432,9 @@ The tracking issue for this feature is: [#86656] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "postfix_match", @@ -7464,6 +9443,10 @@ The tracking issue for this feature is: [#86656] `postfix-match` adds the feature for matching upon values postfix the expressions that generate the values. +The tracking issue for this feature is: [#121618](https://github.com/rust-lang/rust/issues/121618). + +------------------------ + ```rust,edition2021 #![feature(postfix_match)] @@ -7482,6 +9465,9 @@ get_foo().match { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "powerpc_target_feature", @@ -7493,17 +9479,23 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "precise_capturing", - description: r##"# `precise_capturing` + label: "precise_capturing_in_traits", + description: r##"# `precise_capturing_in_traits` -The tracking issue for this feature is: [#123432] +The tracking issue for this feature is: [#130044] -[#123432]: https://github.com/rust-lang/rust/issues/123432 +[#130044]: https://github.com/rust-lang/rust/issues/130044 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "prelude_2024", @@ -7515,6 +9507,9 @@ The tracking issue for this feature is: [#121042] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "prelude_import", @@ -7524,6 +9519,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "prfchw_target_feature", @@ -7535,6 +9533,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "print_internals", @@ -7544,6 +9545,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_def_site", @@ -7555,6 +9559,9 @@ The tracking issue for this feature is: [#54724] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_diagnostic", @@ -7566,6 +9573,9 @@ The tracking issue for this feature is: [#54140] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_expand", @@ -7577,6 +9587,9 @@ The tracking issue for this feature is: [#90765] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_hygiene", @@ -7588,6 +9601,9 @@ The tracking issue for this feature is: [#54727] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_internals", @@ -7599,6 +9615,9 @@ The tracking issue for this feature is: [#27812] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_quote", @@ -7610,6 +9629,9 @@ The tracking issue for this feature is: [#54722] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_span", @@ -7621,6 +9643,23 @@ The tracking issue for this feature is: [#54725] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "proc_macro_totokens", + description: r##"# `proc_macro_totokens` + +The tracking issue for this feature is: [#130977] + +[#130977]: https://github.com/rust-lang/rust/issues/130977 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "proc_macro_tracked_env", @@ -7632,6 +9671,9 @@ The tracking issue for this feature is: [#99515] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "process_exitcode_internals", @@ -7641,6 +9683,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "process_internals", @@ -7650,6 +9695,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "profiler_runtime", @@ -7659,6 +9707,9 @@ The tracking issue for this feature is: [#42524](https://github.com/rust-lang/ru ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "profiler_runtime_lib", @@ -7668,6 +9719,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_alignment_type", @@ -7679,6 +9733,9 @@ The tracking issue for this feature is: [#102070] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_as_ref_unchecked", @@ -7690,6 +9747,9 @@ The tracking issue for this feature is: [#122034] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_as_uninit", @@ -7701,6 +9761,23 @@ The tracking issue for this feature is: [#75402] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "ptr_fn_addr_eq", + description: r##"# `ptr_fn_addr_eq` + +The tracking issue for this feature is: [#129322] + +[#129322]: https://github.com/rust-lang/rust/issues/129322 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_internals", @@ -7710,6 +9787,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_mask", @@ -7721,6 +9801,9 @@ The tracking issue for this feature is: [#98290] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_metadata", @@ -7732,6 +9815,9 @@ The tracking issue for this feature is: [#81513] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ptr_sub_ptr", @@ -7743,6 +9829,9 @@ The tracking issue for this feature is: [#95892] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "pub_crate_should_not_need_unstable_attr", @@ -7752,28 +9841,37 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "raw_os_error_ty", - description: r##"# `raw_os_error_ty` + label: "random", + description: r##"# `random` -The tracking issue for this feature is: [#107792] +The tracking issue for this feature is: [#130703] -[#107792]: https://github.com/rust-lang/rust/issues/107792 +[#130703]: https://github.com/rust-lang/rust/issues/130703 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "raw_ref_op", - description: r##"# `raw_ref_op` + label: "raw_os_error_ty", + description: r##"# `raw_os_error_ty` -The tracking issue for this feature is: [#64490] +The tracking issue for this feature is: [#107792] -[#64490]: https://github.com/rust-lang/rust/issues/64490 +[#107792]: https://github.com/rust-lang/rust/issues/107792 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "raw_slice_split", @@ -7785,6 +9883,9 @@ The tracking issue for this feature is: [#95595] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "raw_vec_internals", @@ -7794,6 +9895,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "read_buf", @@ -7805,26 +9909,9 @@ The tracking issue for this feature is: [#78485] ------------------------ "##, - }, - Lint { - label: "ready_into_inner", - description: r##"# `ready_into_inner` - -The tracking issue for this feature is: [#101196] - -[#101196]: https://github.com/rust-lang/rust/issues/101196 - ------------------------- -"##, - }, - Lint { - label: "receiver_trait", - description: r##"# `receiver_trait` - -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "reentrant_lock", @@ -7836,6 +9923,9 @@ The tracking issue for this feature is: [#121440] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ref_pat_eat_one_layer_2024", @@ -7847,6 +9937,9 @@ The tracking issue for this feature is: [#123076] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ref_pat_eat_one_layer_2024_structural", @@ -7858,6 +9951,9 @@ The tracking issue for this feature is: [#123076] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "register_tool", @@ -7869,6 +9965,9 @@ The tracking issue for this feature is: [#66079] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "repr128", @@ -7891,6 +9990,9 @@ enum Foo { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "repr_simd", @@ -7902,6 +10004,9 @@ The tracking issue for this feature is: [#27731] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "restricted_std", @@ -7911,24 +10016,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, - }, - Lint { - label: "result_ffi_guarantees", - description: r##"# `result_ffi_guarantees` - -The tracking issue for this feature is: [#110503] - -[#110503]: https://github.com/rust-lang/rust/issues/110503 - ------------------------- - -This feature adds the possibility of using `Result` in FFI if T's niche -value can be used to describe E or vise-versa. - -See [RFC 3391] for more information. - -[RFC 3391]: https://github.com/rust-lang/rfcs/blob/master/text/3391-result_ffi_guarantees.md -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "result_flattening", @@ -7940,6 +10030,9 @@ The tracking issue for this feature is: [#70142] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "return_type_notation", @@ -7951,6 +10044,9 @@ The tracking issue for this feature is: [#109417] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "riscv_target_feature", @@ -7962,6 +10058,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "round_char_boundary", @@ -7973,6 +10072,9 @@ The tracking issue for this feature is: [#93743] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rt", @@ -7982,6 +10084,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rtm_target_feature", @@ -7993,6 +10098,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rust_cold_cc", @@ -8004,6 +10112,9 @@ The tracking issue for this feature is: [#97544] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustc_allow_const_fn_unstable", @@ -8015,6 +10126,9 @@ The tracking issue for this feature is: [#69399] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustc_attrs", @@ -8072,6 +10186,9 @@ error: size: Size { raw: 16 } error: aborting due to 2 previous errors ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustc_encodable_decodable", @@ -8081,6 +10198,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustc_private", @@ -8091,7 +10211,14 @@ The tracking issue for this feature is: [#27812] [#27812]: https://github.com/rust-lang/rust/issues/27812 ------------------------ + +This feature allows access to unstable internal compiler crates. + +Additionally it changes the linking behavior of crates which have this feature enabled. It will prevent linking to a dylib if there's a static variant of it already statically linked into another dylib dependency. This is required to successfully link to `rustc_driver`. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc_internals", @@ -8103,6 +10230,9 @@ The tracking issue for this feature is: [#90418] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "rustdoc_missing_doc_code_examples", @@ -8114,6 +10244,9 @@ The tracking issue for this feature is: [#101730] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "s390x_target_feature", @@ -8125,6 +10258,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sealed", @@ -8134,6 +10270,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "seek_stream_len", @@ -8145,6 +10284,9 @@ The tracking issue for this feature is: [#59359] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "set_ptr_value", @@ -8156,6 +10298,9 @@ The tracking issue for this feature is: [#75091] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "setgroups", @@ -8167,6 +10312,9 @@ The tracking issue for this feature is: [#90747] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sgx_platform", @@ -8178,17 +10326,23 @@ The tracking issue for this feature is: [#56975] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "shorter_tail_lifetimes", - description: r##"# `shorter_tail_lifetimes` + label: "sha512_sm_x86", + description: r##"# `sha512_sm_x86` -The tracking issue for this feature is: [#123739] +The tracking issue for this feature is: [#126624] -[#123739]: https://github.com/rust-lang/rust/issues/123739 +[#126624]: https://github.com/rust-lang/rust/issues/126624 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "simd_ffi", @@ -8200,6 +10354,9 @@ The tracking issue for this feature is: [#27731] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sized_type_properties", @@ -8209,6 +10366,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_as_chunks", @@ -8220,6 +10380,9 @@ The tracking issue for this feature is: [#74985] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_concat_ext", @@ -8231,6 +10394,9 @@ The tracking issue for this feature is: [#27747] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_concat_trait", @@ -8242,6 +10408,9 @@ The tracking issue for this feature is: [#27747] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_from_ptr_range", @@ -8253,6 +10422,9 @@ The tracking issue for this feature is: [#89792] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_index_methods", @@ -8262,6 +10434,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_internals", @@ -8271,6 +10446,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_iter_mut_as_mut_slice", @@ -8282,6 +10460,9 @@ The tracking issue for this feature is: [#93079] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_partition_dedup", @@ -8293,6 +10474,9 @@ The tracking issue for this feature is: [#54279] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_pattern", @@ -8304,6 +10488,9 @@ The tracking issue for this feature is: [#56345] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_ptr_get", @@ -8315,6 +10502,9 @@ The tracking issue for this feature is: [#74265] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_range", @@ -8326,6 +10516,9 @@ The tracking issue for this feature is: [#76393] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_split_once", @@ -8337,6 +10530,9 @@ The tracking issue for this feature is: [#112811] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_swap_unchecked", @@ -8348,6 +10544,9 @@ The tracking issue for this feature is: [#88539] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "slice_take", @@ -8359,6 +10558,9 @@ The tracking issue for this feature is: [#62280] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "solid_ext", @@ -8368,6 +10570,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sort_floats", @@ -8379,6 +10584,9 @@ The tracking issue for this feature is: [#93396] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "specialization", @@ -8390,6 +10598,9 @@ The tracking issue for this feature is: [#31844] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "split_array", @@ -8401,6 +10612,9 @@ The tracking issue for this feature is: [#90091] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "split_as_slice", @@ -8412,6 +10626,9 @@ The tracking issue for this feature is: [#96137] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sse4a_target_feature", @@ -8423,6 +10640,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "staged_api", @@ -8432,6 +10652,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "start", @@ -8495,6 +10718,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "std_internals", @@ -8504,6 +10730,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "stdarch_arm_feature_detection", @@ -8515,6 +10744,9 @@ The tracking issue for this feature is: [#111190] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "stdarch_mips_feature_detection", @@ -8526,6 +10758,9 @@ The tracking issue for this feature is: [#111188] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "stdarch_powerpc_feature_detection", @@ -8537,6 +10772,9 @@ The tracking issue for this feature is: [#111191] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "stdio_makes_pipe", @@ -8548,6 +10786,9 @@ The tracking issue for this feature is: [#98288] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "step_trait", @@ -8559,6 +10800,9 @@ The tracking issue for this feature is: [#42168] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "stmt_expr_attributes", @@ -8570,6 +10814,23 @@ The tracking issue for this feature is: [#15701] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "str_as_str", + description: r##"# `str_as_str` + +The tracking issue for this feature is: [#130366] + +[#130366]: https://github.com/rust-lang/rust/issues/130366 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_from_raw_parts", @@ -8581,6 +10842,9 @@ The tracking issue for this feature is: [#119206] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_from_utf16_endian", @@ -8592,6 +10856,9 @@ The tracking issue for this feature is: [#116258] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_internals", @@ -8601,6 +10868,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_lines_remainder", @@ -8612,6 +10882,9 @@ The tracking issue for this feature is: [#77998] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_split_inclusive_remainder", @@ -8623,6 +10896,9 @@ The tracking issue for this feature is: [#77998] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_split_remainder", @@ -8634,6 +10910,9 @@ The tracking issue for this feature is: [#77998] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "str_split_whitespace_remainder", @@ -8645,6 +10924,9 @@ The tracking issue for this feature is: [#77998] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "strict_overflow_ops", @@ -8656,24 +10938,40 @@ The tracking issue for this feature is: [#118260] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "strict_provenance_atomic_ptr", + description: r##"# `strict_provenance_atomic_ptr` + +The tracking issue for this feature is: [#99108] + +[#99108]: https://github.com/rust-lang/rust/issues/99108 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "strict_provenance", - description: r##"# `strict_provenance` + label: "strict_provenance_lints", + description: r##"# `strict_provenance_lints` The tracking issue for this feature is: [#95228] [#95228]: https://github.com/rust-lang/rust/issues/95228 ----- -The `strict_provenance` feature allows to enable the `fuzzy_provenance_casts` and `lossy_provenance_casts` lints. +The `strict_provenance_lints` feature allows to enable the `fuzzy_provenance_casts` and `lossy_provenance_casts` lints. These lint on casts between integers and pointers, that are recommended against or invalid in the strict provenance model. -The same feature gate is also used for the experimental strict provenance API in `std` (actually `core`). ## Example ```rust -#![feature(strict_provenance)] +#![feature(strict_provenance_lints)] #![warn(fuzzy_provenance_casts)] fn main() { @@ -8682,17 +10980,9 @@ fn main() { } ``` "##, - }, - Lint { - label: "strict_provenance_atomic_ptr", - description: r##"# `strict_provenance_atomic_ptr` - -The tracking issue for this feature is: [#99108] - -[#99108]: https://github.com/rust-lang/rust/issues/99108 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "string_deref_patterns", @@ -8742,6 +11032,9 @@ pub fn is_it_the_answer(value: Value) -> bool { [its `Deref` implementation]: https://doc.rust-lang.org/std/string/struct.String.html#impl-Deref-for-String "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "string_extend_from_within", @@ -8753,6 +11046,23 @@ The tracking issue for this feature is: [#103806] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "string_from_utf8_lossy_owned", + description: r##"# `string_from_utf8_lossy_owned` + +The tracking issue for this feature is: [#129436] + +[#129436]: https://github.com/rust-lang/rust/issues/129436 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "string_remove_matches", @@ -8764,6 +11074,9 @@ The tracking issue for this feature is: [#72826] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "structural_match", @@ -8775,6 +11088,23 @@ The tracking issue for this feature is: [#31434] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "substr_range", + description: r##"# `substr_range` + +The tracking issue for this feature is: [#126769] + +[#126769]: https://github.com/rust-lang/rust/issues/126769 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "sync_unsafe_cell", @@ -8786,6 +11116,9 @@ The tracking issue for this feature is: [#95439] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "target_feature_11", @@ -8797,6 +11130,9 @@ The tracking issue for this feature is: [#69098] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tbm_target_feature", @@ -8808,6 +11144,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tcp_deferaccept", @@ -8819,6 +11158,9 @@ The tracking issue for this feature is: [#119639] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tcp_linger", @@ -8830,6 +11172,9 @@ The tracking issue for this feature is: [#88494] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tcp_quickack", @@ -8841,6 +11186,9 @@ The tracking issue for this feature is: [#96256] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tcplistener_into_incoming", @@ -8852,6 +11200,9 @@ The tracking issue for this feature is: [#88373] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "test", @@ -9014,6 +11365,9 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured However, the optimizer can still modify a testcase in an undesirable manner even when using either of the above. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "test_unstable_lint", @@ -9023,6 +11377,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "thin_box", @@ -9034,6 +11391,9 @@ The tracking issue for this feature is: [#92791] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "thread_id_value", @@ -9045,6 +11405,9 @@ The tracking issue for this feature is: [#67939] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "thread_local", @@ -9056,6 +11419,9 @@ The tracking issue for this feature is: [#29594] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "thread_local_internals", @@ -9065,28 +11431,37 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "thread_sleep_until", - description: r##"# `thread_sleep_until` + label: "thread_raw", + description: r##"# `thread_raw` -The tracking issue for this feature is: [#113752] +The tracking issue for this feature is: [#97523] -[#113752]: https://github.com/rust-lang/rust/issues/113752 +[#97523]: https://github.com/rust-lang/rust/issues/97523 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "thread_spawn_unchecked", - description: r##"# `thread_spawn_unchecked` + label: "thread_sleep_until", + description: r##"# `thread_sleep_until` -The tracking issue for this feature is: [#55132] +The tracking issue for this feature is: [#113752] -[#55132]: https://github.com/rust-lang/rust/issues/55132 +[#113752]: https://github.com/rust-lang/rust/issues/113752 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trace_macros", @@ -9130,6 +11505,9 @@ note: trace_macro Finished dev [unoptimized + debuginfo] target(s) in 0.60 secs ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "track_path", @@ -9141,6 +11519,9 @@ The tracking issue for this feature is: [#99515] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trait_alias", @@ -9179,6 +11560,9 @@ pub fn main() { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trait_upcasting", @@ -9196,7 +11580,6 @@ so long as `Bar: Foo`. ```rust,edition2018 #![feature(trait_upcasting)] -#![allow(incomplete_features)] trait Foo {} @@ -9210,6 +11593,9 @@ let bar: &dyn Bar = &123; let foo: &dyn Foo = bar; ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "transmutability", @@ -9221,6 +11607,9 @@ The tracking issue for this feature is: [#99571] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "transmute_generic_consts", @@ -9232,6 +11621,9 @@ The tracking issue for this feature is: [#109929] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "transparent_unions", @@ -9319,6 +11711,9 @@ it is transparent). The Rust compiler is free to perform this optimization if possible, but is not required to, and different compiler versions may differ in their application of these optimizations. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trivial_bounds", @@ -9330,6 +11725,9 @@ The tracking issue for this feature is: [#48214] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trusted_fused", @@ -9339,6 +11737,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trusted_len", @@ -9350,6 +11751,9 @@ The tracking issue for this feature is: [#37572] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trusted_len_next_unchecked", @@ -9361,6 +11765,9 @@ The tracking issue for this feature is: [#37572] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trusted_random_access", @@ -9370,6 +11777,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "trusted_step", @@ -9381,6 +11791,9 @@ The tracking issue for this feature is: [#85731] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_blocks", @@ -9415,6 +11828,9 @@ let result: Result = try { assert!(result.is_err()); ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_find", @@ -9426,6 +11842,9 @@ The tracking issue for this feature is: [#63178] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_reserve_kind", @@ -9437,6 +11856,9 @@ The tracking issue for this feature is: [#48043] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_trait_v2", @@ -9448,6 +11870,9 @@ The tracking issue for this feature is: [#84277] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_trait_v2_residual", @@ -9459,6 +11884,9 @@ The tracking issue for this feature is: [#91285] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_trait_v2_yeet", @@ -9470,6 +11898,9 @@ The tracking issue for this feature is: [#96374] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "try_with_capacity", @@ -9481,6 +11912,9 @@ The tracking issue for this feature is: [#91913] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "tuple_trait", @@ -9490,6 +11924,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "type_alias_impl_trait", @@ -9501,6 +11938,9 @@ The tracking issue for this feature is: [#63063] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "type_ascription", @@ -9512,6 +11952,9 @@ The tracking issue for this feature is: [#23416] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "type_changing_struct_update", @@ -9549,6 +11992,9 @@ fn main () { } ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "ub_checks", @@ -9558,6 +12004,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "uefi_std", @@ -9569,6 +12018,23 @@ The tracking issue for this feature is: [#100499] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "unbounded_shifts", + description: r##"# `unbounded_shifts` + +The tracking issue for this feature is: [#129375] + +[#129375]: https://github.com/rust-lang/rust/issues/129375 + +------------------------ +"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unboxed_closures", @@ -9598,6 +12064,9 @@ extern "rust-call" fn add_args(args: (u32, u32)) -> u32 { fn main() {} ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unchecked_neg", @@ -9609,6 +12078,9 @@ The tracking issue for this feature is: [#85122] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unchecked_shifts", @@ -9620,6 +12092,9 @@ The tracking issue for this feature is: [#85122] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unicode_internals", @@ -9629,6 +12104,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unique_rc_arc", @@ -9640,6 +12118,9 @@ The tracking issue for this feature is: [#112566] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unix_file_vectored_at", @@ -9651,6 +12132,9 @@ The tracking issue for this feature is: [#89517] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unix_set_mark", @@ -9662,6 +12146,9 @@ The tracking issue for this feature is: [#96467] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unix_socket_ancillary_data", @@ -9673,6 +12160,9 @@ The tracking issue for this feature is: [#76915] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unix_socket_peek", @@ -9684,59 +12174,75 @@ The tracking issue for this feature is: [#76923] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "unnamed_fields", - description: r##"# `unnamed_fields` - -The tracking issue for this feature is: [#49804] + label: "unqualified_local_imports", + description: r##"# `unqualified_local_imports` -[#49804]: https://github.com/rust-lang/rust/issues/49804 +This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "unsafe_attributes", - description: r##"# `unsafe_attributes` + label: "unsafe_cell_from_mut", + description: r##"# `unsafe_cell_from_mut` -The tracking issue for this feature is: [#123757] +The tracking issue for this feature is: [#111645] -[#123757]: https://github.com/rust-lang/rust/issues/123757 +[#111645]: https://github.com/rust-lang/rust/issues/111645 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "unsafe_cell_from_mut", - description: r##"# `unsafe_cell_from_mut` - -The tracking issue for this feature is: [#111645] + label: "unsafe_pin_internals", + description: r##"# `unsafe_pin_internals` -[#111645]: https://github.com/rust-lang/rust/issues/111645 +This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "unsafe_extern_blocks", - description: r##"# `unsafe_extern_blocks` + label: "unsigned_is_multiple_of", + description: r##"# `unsigned_is_multiple_of` -The tracking issue for this feature is: [#123743] +The tracking issue for this feature is: [#128101] -[#123743]: https://github.com/rust-lang/rust/issues/123743 +[#128101]: https://github.com/rust-lang/rust/issues/128101 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { - label: "unsafe_pin_internals", - description: r##"# `unsafe_pin_internals` + label: "unsigned_signed_diff", + description: r##"# `unsigned_signed_diff` -This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use. +The tracking issue for this feature is: [#126041] + +[#126041]: https://github.com/rust-lang/rust/issues/126041 ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsize", @@ -9748,6 +12254,9 @@ The tracking issue for this feature is: [#18598] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsized_const_params", @@ -9759,6 +12268,9 @@ The tracking issue for this feature is: [#95174] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsized_fn_params", @@ -9770,6 +12282,9 @@ The tracking issue for this feature is: [#48055] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsized_locals", @@ -9949,6 +12464,9 @@ fn main() { will unnecessarily extend the stack frame. "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unsized_tuple_coercion", @@ -9980,6 +12498,9 @@ fn main() { [RFC0401]: https://github.com/rust-lang/rfcs/blob/master/text/0401-coercions.md "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "unwrap_infallible", @@ -9991,6 +12512,9 @@ The tracking issue for this feature is: [#61695] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "update_panic_count", @@ -10000,6 +12524,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "used_with_arg", @@ -10011,6 +12538,9 @@ The tracking issue for this feature is: [#93798] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "utf16_extra", @@ -10022,6 +12552,9 @@ The tracking issue for this feature is: [#94919] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "utf16_extra_const", @@ -10033,6 +12566,9 @@ The tracking issue for this feature is: [#94919] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "variant_count", @@ -10044,6 +12580,9 @@ The tracking issue for this feature is: [#73662] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "vec_into_raw_parts", @@ -10055,6 +12594,9 @@ The tracking issue for this feature is: [#65816] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "vec_pop_if", @@ -10066,6 +12608,9 @@ The tracking issue for this feature is: [#122741] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "vec_push_within_capacity", @@ -10077,6 +12622,9 @@ The tracking issue for this feature is: [#100486] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "vec_split_at_spare", @@ -10088,17 +12636,9 @@ The tracking issue for this feature is: [#81944] ------------------------ "##, - }, - Lint { - label: "waker_getters", - description: r##"# `waker_getters` - -The tracking issue for this feature is: [#96992] - -[#96992]: https://github.com/rust-lang/rust/issues/96992 - ------------------------- -"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "wasi_ext", @@ -10110,6 +12650,9 @@ The tracking issue for this feature is: [#71213] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "wasm_target_feature", @@ -10121,6 +12664,9 @@ The tracking issue for this feature is: [#44839] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_by_handle", @@ -10132,6 +12678,9 @@ The tracking issue for this feature is: [#63010] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_c", @@ -10141,6 +12690,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_change_time", @@ -10152,6 +12704,9 @@ The tracking issue for this feature is: [#121478] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_handle", @@ -10161,6 +12716,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_net", @@ -10170,6 +12728,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_exit_code_from", @@ -10181,6 +12742,9 @@ The tracking issue for this feature is: [#111688] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_extensions_async_pipes", @@ -10192,6 +12756,9 @@ The tracking issue for this feature is: [#98289] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_extensions_force_quotes", @@ -10203,6 +12770,9 @@ The tracking issue for this feature is: [#82227] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_extensions_main_thread_handle", @@ -10214,6 +12784,9 @@ The tracking issue for this feature is: [#96723] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_extensions_raw_attribute", @@ -10225,6 +12798,9 @@ The tracking issue for this feature is: [#114854] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_process_extensions_show_window", @@ -10236,6 +12812,9 @@ The tracking issue for this feature is: [#127544] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "windows_stdio", @@ -10245,6 +12824,9 @@ This feature is internal to the Rust compiler and is not intended for general us ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "with_negative_coherence", @@ -10254,6 +12836,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "wrapping_int_impl", @@ -10265,6 +12850,9 @@ The tracking issue for this feature is: [#32463] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "wrapping_next_power_of_two", @@ -10276,6 +12864,9 @@ The tracking issue for this feature is: [#32463] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "write_all_vectored", @@ -10287,6 +12878,9 @@ The tracking issue for this feature is: [#70436] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "x86_amx_intrinsics", @@ -10298,6 +12892,9 @@ The tracking issue for this feature is: [#126622] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "xop_target_feature", @@ -10309,6 +12906,9 @@ The tracking issue for this feature is: [#127208] ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "yeet_desugar_details", @@ -10318,6 +12918,9 @@ This feature has no tracking issue, and is therefore likely internal to the comp ------------------------ "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "yeet_expr", @@ -10348,6 +12951,9 @@ fn bar() -> Option { assert_eq!(bar(), None); ``` "##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, ]; @@ -10355,6 +12961,9 @@ pub const CLIPPY_LINTS: &[Lint] = &[ Lint { label: "clippy::absolute_paths", description: r##"Checks for usage of items through absolute paths, like `std::env::current_dir`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::absurd_extreme_comparisons", @@ -10362,10 +12971,16 @@ pub const CLIPPY_LINTS: &[Lint] = &[ either the minimum or maximum value for its type and warns if it involves a case that is always true or always false. Only integer and boolean types are checked."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::alloc_instead_of_core", description: r##"Finds items imported through `alloc` when available through `core`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::allow_attributes", @@ -10374,19 +12989,31 @@ the `#[expect]` (See [RFC 2383](https://rust-lang.github.io/rfcs/2383-lint-reaso This lint only warns outer attributes (`#[allow]`), as inner attributes (`#![allow]`) are usually used to enable or disable lints on a global scale."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::allow_attributes_without_reason", description: r##"Checks for attributes that allow lints without a reason."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::almost_complete_range", description: r##"Checks for ranges which almost include the entire range of letters from 'a' to 'z' or digits from '0' to '9', but don't because they're a half open range."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::almost_swapped", description: r##"Checks for `foo = bar; bar = foo` sequences."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::approx_constant", @@ -10396,11 +13023,17 @@ constants which are defined in or [`std::f64::consts`](https://doc.rust-lang.org/stable/std/f64/consts/#constants), respectively, suggesting to use the predefined constant."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::arc_with_non_send_sync", description: r##". This lint warns when you use `Arc` with a type that does not implement `Send` or `Sync`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::arithmetic_side_effects", @@ -10412,6 +13045,9 @@ or can panic (`/`, `%`). Known safe built-in types like `Wrapping` or `Saturating`, floats, operations in constant environments, allowed types and non-constant operations that won't overflow are ignored."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::as_conversions", @@ -10424,54 +13060,90 @@ If you want more precise lints for `as`, please consider using these separate li `fn_to_numeric_cast(_with_truncation)`, `char_lit_as_u8`, `ref_to_mut` and `ptr_as_ptr`. There is a good explanation the reason why this lint should work in this way and how it is useful [in this issue](https://github.com/rust-lang/rust-clippy/issues/5122)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::as_ptr_cast_mut", description: r##"Checks for the result of a `&self`-taking `as_ptr` being cast to a mutable pointer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::as_underscore", description: r##"Checks for the usage of `as _` conversion using inferred type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::assertions_on_constants", description: r##"Checks for `assert!(true)` and `assert!(false)` calls."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::assertions_on_result_states", description: r##"Checks for `assert!(r.is_ok())` or `assert!(r.is_err())` calls."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::assign_op_pattern", description: r##"Checks for `a = a op b` or `a = b commutative_op a` patterns."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::assign_ops", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::assigning_clones", description: r##"Checks for code like `foo = bar.clone();`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::async_yields_async", description: r##"Checks for async blocks that yield values of types that can themselves be awaited."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::await_holding_invalid_type", description: r##"Allows users to configure types which should not be held across await suspension points."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::await_holding_lock", description: r##"Checks for calls to `await` while holding a non-async-aware `MutexGuard`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::await_holding_refcell_ref", description: r##"Checks for calls to `await` while holding a `RefCell`, `Ref`, or `RefMut`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bad_bit_mask", @@ -10490,126 +13162,210 @@ table: |`==` or `!=`| `\\|` |`x \\| 1 == 0`|`false` |`c \\| m != c` | |`<` or `>=`| `\\|` |`x \\| 1 < 1` |`false` |`m >= c` | |`<=` or `>` | `\\|` |`x \\| 1 > 0` |`true` |`m > c` |"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::big_endian_bytes", description: r##"Checks for the usage of the `to_be_bytes` method and/or the function `from_be_bytes`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bind_instead_of_map", description: r##"Checks for usage of `_.and_then(|x| Some(y))`, `_.and_then(|x| Ok(y))` or `_.or_else(|x| Err(y))`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::blanket_clippy_restriction_lints", description: r##"Checks for `warn`/`deny`/`forbid` attributes targeting the whole clippy::restriction category."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::blocks_in_conditions", description: r##"Checks for `if` and `match` conditions that use blocks containing an expression, statements or conditions that use closures with blocks."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bool_assert_comparison", description: r##"This lint warns about boolean comparisons in assert-like macros."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bool_comparison", description: r##"Checks for expressions of the form `x == true`, `x != true` and order comparisons such as `x < true` (or vice versa) and suggest using the variable directly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bool_to_int_with_if", description: r##"Instead of using an if statement to convert a bool to an int, this lint suggests using a `from()` function or an `as` coercion."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::borrow_as_ptr", description: r##"Checks for the usage of `&expr as *const T` or `&mut expr as *mut T`, and suggest using `ptr::addr_of` or `ptr::addr_of_mut` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::borrow_deref_ref", + description: r##"Checks for `&*(&T)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::borrow_deref_ref", description: r##"Checks for `&*(&T)`."## }, Lint { label: "clippy::borrow_interior_mutable_const", description: r##"Checks if `const` items which is interior mutable (e.g., contains a `Cell`, `Mutex`, `AtomicXxxx`, etc.) has been borrowed directly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::borrowed_box", description: r##"Checks for usage of `&Box` anywhere in the code. Check the [Box documentation](https://doc.rust-lang.org/std/boxed/index.html) for more information."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::box_collection", description: r##"Checks for usage of `Box` where T is a collection such as Vec anywhere in the code. Check the [Box documentation](https://doc.rust-lang.org/std/boxed/index.html) for more information."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::box_default", description: r##"checks for `Box::new(Default::default())`, which can be written as `Box::default()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::boxed_local", description: r##"Checks for usage of `Box` where an unboxed `T` would work fine."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::branches_sharing_code", description: r##"Checks if the `if` and `else` block contain shared code that can be moved out of the blocks."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::builtin_type_shadow", description: r##"Warns if a generic shadows a built-in type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::byte_char_slices", description: r##"Checks for hard to read slices of byte characters, that could be more easily expressed as a byte string."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bytes_count_to_len", description: r##"It checks for `str::bytes().count()` and suggests replacing it with `str::len()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::bytes_nth", description: r##"Checks for the use of `.bytes().nth()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cargo_common_metadata", description: r##"Checks to see if all common metadata is defined in `Cargo.toml`. See: https://rust-lang-nursery.github.io/api-guidelines/documentation.html#cargotoml-includes-all-common-metadata-c-metadata"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::case_sensitive_file_extension_comparisons", description: r##"Checks for calls to `ends_with` with possible file extensions and suggests to use a case-insensitive approach instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_abs_to_unsigned", description: r##"Checks for usage of the `abs()` method that cast the result to unsigned."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_enum_constructor", description: r##"Checks for casts from an enum tuple constructor to an integer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_enum_truncation", description: r##"Checks for casts from an enum type to an integral type that will definitely truncate the value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_lossless", description: r##"Checks for casts between numeric types that can be replaced by safe conversion functions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_nan_to_int", description: r##"Checks for a known NaN float being cast to an integer"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_possible_truncation", @@ -10617,6 +13373,9 @@ conversion functions."##, truncate large values. This is expected behavior, so the cast is `Allow` by default. It suggests user either explicitly ignore the lint, or use `try_from()` and handle the truncation, default, or panic explicitly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_possible_wrap", @@ -10627,6 +13386,9 @@ changed at the bit level), and the binary representation of the value is reinterpreted. This can cause wrapping if the value is too big for the target signed type. However, the cast works as defined, so this lint is `Allow` by default."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_precision_loss", @@ -10637,11 +13399,17 @@ rounding errors. This possible rounding is to be expected, so this lint is Basically, this warns on casting any integer with 32 or more bits to `f32` or any 64-bit integer to `f64`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_ptr_alignment", description: r##"Checks for casts, using `as` or `pointer::cast`, from a less strictly aligned pointer to a more strictly aligned pointer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_sign_loss", @@ -10649,79 +13417,130 @@ less strictly aligned pointer to a more strictly aligned pointer."##, type. In this case, negative values wrap around to large positive values, which can be quite surprising in practice. However, since the cast works as defined, this lint is `Allow` by default."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_slice_different_sizes", description: r##"Checks for `as` casts between raw pointers to slices with differently sized elements."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cast_slice_from_raw_parts", description: r##"Checks for a raw slice being cast to a slice pointer"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cfg_not_test", - description: r##"Checks for usage of `cfg` that excludes code from `test` builds. (i.e., `#{cfg(not(test))]`)"##, + description: r##"Checks for usage of `cfg` that excludes code from `test` builds. (i.e., `#[cfg(not(test))]`)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::char_lit_as_u8", description: r##"Checks for expressions where a character literal is cast to `u8` and suggests using a byte literal instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::chars_last_cmp", description: r##"Checks for usage of `_.chars().last()` or `_.chars().next_back()` on a `str` to check if it ends with a given char."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::chars_next_cmp", description: r##"Checks for usage of `.chars().next()` on a `str` to check if it starts with a given char."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::checked_conversions", description: r##"Checks for explicit bounds checking when casting."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::clear_with_drain", description: r##"Checks for usage of `.drain(..)` for the sole purpose of clearing a container."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::clone_on_copy", description: r##"Checks for usage of `.clone()` on a `Copy` type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::clone_on_ref_ptr", description: r##"Checks for usage of `.clone()` on a ref-counted pointer, (`Rc`, `Arc`, `rc::Weak`, or `sync::Weak`), and suggests calling Clone via unified function syntax instead (e.g., `Rc::clone(foo)`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cloned_instead_of_copied", description: r##"Checks for usage of `cloned()` on an `Iterator` or `Option` where `copied()` could be used instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cmp_null", description: r##"This lint checks for equality comparisons with `ptr::null`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cmp_owned", description: r##"Checks for conversions to owned values just for the sake of a comparison."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::cognitive_complexity", description: r##"Checks for methods with high cognitive complexity."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::collapsible_else_if", description: r##"Checks for collapsible `else { if ... }` expressions that can be collapsed to `else if ...`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::collapsible_if", description: r##"Checks for nested `if` statements which can be collapsed by `&&`-combining their conditions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::collapsible_match", @@ -10730,73 +13549,121 @@ without adding any branches. Note that this lint is not intended to find _all_ cases where nested match patterns can be merged, but only cases where merging would most likely make the code more readable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::collapsible_str_replace", description: r##"Checks for consecutive calls to `str::replace` (2 or more) that can be collapsed into a single call."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::collection_is_never_read", description: r##"Checks for collections that are never queried."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::comparison_chain", description: r##"Checks comparison chains written with `if` that can be rewritten with `match` and `cmp`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::comparison_to_empty", description: r##"Checks for comparing to an empty slice such as `` or `[]`, and suggests using `.is_empty()` where applicable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::const_is_empty", description: r##"It identifies calls to `.is_empty()` on constant values."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::copy_iterator", description: r##"Checks for types that implement `Copy` as well as `Iterator`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::crate_in_macro_def", description: r##"Checks for usage of `crate` as opposed to `$crate` in a macro definition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::create_dir", description: r##"Checks usage of `std::fs::create_dir` and suggest using `std::fs::create_dir_all` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::crosspointer_transmute", description: r##"Checks for transmutes between a type `T` and `*T`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::dbg_macro", description: r##"Checks for usage of the [`dbg!`](https://doc.rust-lang.org/std/macro.dbg.html) macro."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::debug_assert_with_mut_call", description: r##"Checks for function/method calls with a mutable parameter in `debug_assert!`, `debug_assert_eq!` and `debug_assert_ne!` macros."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::decimal_literal_representation", description: r##"Warns if there is a better representation for a numeric literal."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::declare_interior_mutable_const", description: r##"Checks for declaration of `const` items which is interior mutable (e.g., contains a `Cell`, `Mutex`, `AtomicXxxx`, etc.)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::default_constructed_unit_structs", description: r##"Checks for construction on unit struct using `default`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::default_instead_of_iter_empty", description: r##"It checks for `std::iter::Empty::default()` and suggests replacing it with `std::iter::empty()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::default_numeric_fallback", @@ -10808,58 +13675,94 @@ types at the end of type inference, then integer type is bound to `i32`, and sim floating type is bound to `f64`. See [RFC0212](https://github.com/rust-lang/rfcs/blob/master/text/0212-restore-int-fallback.md) for more information about the fallback."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::default_trait_access", description: r##"Checks for literal calls to `Default::default()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::default_union_representation", description: r##"Displays a warning when a union is declared with the default representation (without a `#[repr(C)]` attribute)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::deprecated_cfg_attr", description: r##"Checks for `#[cfg_attr(rustfmt, rustfmt_skip)]` and suggests to replace it with `#[rustfmt::skip]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::deprecated_clippy_cfg_attr", description: r##"Checks for `#[cfg_attr(feature = cargo-clippy, ...)]` and for `#[cfg(feature = cargo-clippy)]` and suggests to replace it with `#[cfg_attr(clippy, ...)]` or `#[cfg(clippy)]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::deprecated_semver", description: r##"Checks for `#[deprecated]` annotations with a `since` field that is not a valid semantic version. Also allows TBD to signal future deprecation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::deref_addrof", description: r##"Checks for usage of `*&` and `*&mut` in expressions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::deref_by_slicing", description: r##"Checks for slicing expressions which are equivalent to dereferencing the value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::derivable_impls", description: r##"Detects manual `std::default::Default` implementations that are identical to a derived implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::derive_ord_xor_partial_ord", description: r##"Lints against manual `PartialOrd` and `Ord` implementations for types with a derived `Ord` or `PartialOrd` implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::derive_partial_eq_without_eq", description: r##"Checks for types that derive `PartialEq` and could implement `Eq`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::derived_hash_with_manual_eq", description: r##"Lints against manual `PartialEq` implementations for types with a derived `Hash` implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::disallowed_macros", @@ -10867,6 +13770,9 @@ implementation."##, Note: Even though this lint is warn-by-default, it will only trigger if macros are defined in the clippy.toml file."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::disallowed_methods", @@ -10874,11 +13780,17 @@ macros are defined in the clippy.toml file."##, Note: Even though this lint is warn-by-default, it will only trigger if methods are defined in the clippy.toml file."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::disallowed_names", description: r##"Checks for usage of disallowed names for variables, such as `foo`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::disallowed_script_idents", @@ -10894,6 +13806,9 @@ See also: [`non_ascii_idents`]. [aliases]: http://www.unicode.org/reports/tr24/tr24-31.html#Script_Value_Aliases [supported_scripts]: https://www.unicode.org/iso15924/iso15924-codes.html"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::disallowed_types", @@ -10901,11 +13816,17 @@ See also: [`non_ascii_idents`]. Note: Even though this lint is warn-by-default, it will only trigger if types are defined in the clippy.toml file."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::diverging_sub_expression", description: r##"Checks for diverging calls that are not match arms or statements."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::doc_lazy_continuation", @@ -10913,34 +13834,55 @@ statements."##, paragraph nested within a list or block quote does not need any line after the first one to be indented or marked. The specification calls this a lazy paragraph continuation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::doc_link_with_quotes", description: r##"Detects the syntax `['foo']` in documentation comments (notice quotes instead of backticks) outside of code blocks"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::doc_markdown", description: r##"Checks for the presence of `_`, `::` or camel-case words outside ticks in documentation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::double_comparisons", description: r##"Checks for double comparisons that could be simplified to a single expression."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::double_must_use", description: r##"Checks for a `#[must_use]` attribute without further information on functions and methods that return a type already marked as `#[must_use]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::double_neg", description: r##"Detects expressions of the form `--x`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::double_parens", description: r##"Checks for unnecessary double parentheses."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::drain_collect", @@ -10948,43 +13890,76 @@ marked as `#[must_use]`."##, > Collection in this context refers to any type with a `drain` method: > `Vec`, `VecDeque`, `BinaryHeap`, `HashSet`,`HashMap`, `String`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::drop_non_drop", description: r##"Checks for calls to `std::mem::drop` with a value that does not implement `Drop`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::duplicate_mod", description: r##"Checks for files that are included as modules multiple times."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::duplicate_underscore_argument", description: r##"Checks for function arguments having the similar names differing by an underscore."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::duplicated_attributes", description: r##"Checks for attributes that appear two or more times."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::duration_subsec", description: r##"Checks for calculation of subsecond microseconds or milliseconds from other `Duration` methods."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::eager_transmute", description: r##"Checks for integer validity checks, followed by a transmute that is (incorrectly) evaluated eagerly (e.g. using `bool::then_some`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::else_if_without_else", description: r##"Checks for usage of if expressions with an `else if` branch, but without a final `else` branch."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::empty_docs", + description: r##"Detects documentation that is empty."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::empty_docs", description: r##"Detects documentation that is empty."## }, Lint { label: "clippy::empty_drop", description: r##"Checks for empty `Drop` implementations."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::empty_enum", @@ -10993,271 +13968,458 @@ but without a final `else` branch."##, As of this writing, the `never_type` is still a nightly-only experimental API. Therefore, this lint is only triggered if `#![feature(never_type)]` is enabled."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::empty_enum_variants_with_brackets", description: r##"Finds enum variants without fields that are declared with empty brackets."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::empty_line_after_doc_comments", description: r##"Checks for empty lines after documentation comments."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::empty_line_after_outer_attr", description: r##"Checks for empty lines after outer attributes"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::empty_loop", + description: r##"Checks for empty `loop` expressions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::empty_loop", description: r##"Checks for empty `loop` expressions."## }, Lint { label: "clippy::empty_structs_with_brackets", description: r##"Finds structs without fields (a so-called empty struct) that are declared with brackets."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::enum_clike_unportable_variant", description: r##"Checks for C-like enumerations that are `repr(isize/usize)` and have values that don't fit into an `i32`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::enum_glob_use", + description: r##"Checks for `use Enum::*`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::enum_glob_use", description: r##"Checks for `use Enum::*`."## }, Lint { label: "clippy::enum_variant_names", description: r##"Detects enumeration variants that are prefixed or suffixed by the same characters."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::eq_op", description: r##"Checks for equal operands to comparison, logical and bitwise, difference and division binary operators (`==`, `>`, etc., `&&`, `||`, `&`, `|`, `^`, `-` and `/`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::equatable_if_let", description: r##"Checks for pattern matchings that can be expressed using equality."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::erasing_op", description: r##"Checks for erasing operations, e.g., `x * 0`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::err_expect", description: r##"Checks for `.err().expect()` calls on the `Result` type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::error_impl_error", description: r##"Checks for types named `Error` that implement `Error`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::excessive_nesting", description: r##"Checks for blocks which are nested beyond a certain threshold. Note: Even though this lint is warn-by-default, it will only trigger if a maximum nesting level is defined in the clippy.toml file."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::excessive_precision", description: r##"Checks for float literals with a precision greater than that supported by the underlying type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::exhaustive_enums", description: r##"Warns on any exported `enum`s that are not tagged `#[non_exhaustive]`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::exhaustive_structs", description: r##"Warns on any exported `struct`s that are not tagged `#[non_exhaustive]`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::exit", description: r##"Detects calls to the `exit()` function which terminates the program."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::expect_fun_call", description: r##"Checks for calls to `.expect(&format!(...))`, `.expect(foo(..))`, etc., and suggests to use `unwrap_or_else` instead"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::expect_used", description: r##"Checks for `.expect()` or `.expect_err()` calls on `Result`s and `.expect()` call on `Option`s."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::expl_impl_clone_on_copy", description: r##"Checks for explicit `Clone` implementations for `Copy` types."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_auto_deref", description: r##"Checks for dereferencing expressions which would be covered by auto-deref."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_counter_loop", description: r##"Checks `for` loops over slices with an explicit counter and suggests the use of `.enumerate()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_deref_methods", description: r##"Checks for explicit `deref()` or `deref_mut()` method calls."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_into_iter_loop", description: r##"Checks for loops on `y.into_iter()` where `y` will do, and suggests the latter."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_iter_loop", description: r##"Checks for loops on `x.iter()` where `&x` will do, and suggests the latter."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::explicit_write", description: r##"Checks for usage of `write!()` / `writeln()!` which can be replaced with `(e)print!()` / `(e)println!()`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::extend_from_slice", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::extend_with_drain", description: r##"Checks for occurrences where one vector gets extended instead of append"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::extra_unused_lifetimes", description: r##"Checks for lifetimes in generics that are never used anywhere else."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::extra_unused_type_parameters", description: r##"Checks for type parameters in generics that are never used anywhere else."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fallible_impl_from", description: r##"Checks for impls of `From<..>` that contain `panic!()` or `unwrap()`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::field_reassign_with_default", description: r##"Checks for immediate reassignment of fields initialized with Default::default()."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::field_scoped_visibility_modifiers", description: r##"Checks for usage of scoped visibility modifiers, like `pub(crate)`, on fields. These make a field visible within a scope between public and private."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::filetype_is_file", description: r##"Checks for `FileType::is_file()`."##, - }, - Lint { - label: "clippy::filter_map", - description: r##"Nothing. This lint has been deprecated."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::filter_map_bool_then", description: r##"Checks for usage of `bool::then` in `Iterator::filter_map`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::filter_map_identity", description: r##"Checks for usage of `filter_map(|x| x)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::filter_map_next", description: r##"Checks for usage of `_.filter_map(_).next()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::filter_next", description: r##"Checks for usage of `_.filter(_).next()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::find_map", description: r##"Nothing. This lint has been deprecated."## }, Lint { label: "clippy::flat_map_identity", description: r##"Checks for usage of `flat_map(|x| x)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::flat_map_option", description: r##"Checks for usage of `Iterator::flat_map()` where `filter_map()` could be used instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::float_arithmetic", + description: r##"Checks for float arithmetic."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::float_arithmetic", description: r##"Checks for float arithmetic."## }, Lint { label: "clippy::float_cmp", description: r##"Checks for (in-)equality comparisons on floating-point values (apart from zero), except in functions called `*eq*` (which probably implement equality for a type involving floats)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::float_cmp_const", description: r##"Checks for (in-)equality comparisons on constant floating-point values (apart from zero), except in functions called `*eq*` (which probably implement equality for a type involving floats)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::float_equality_without_abs", description: r##"Checks for statements of the form `(a - b) < f32::EPSILON` or `(a - b) < f64::EPSILON`. Notes the missing `.abs()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fn_address_comparisons", description: r##"Checks for comparisons with an address of a function item."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fn_params_excessive_bools", description: r##"Checks for excessive use of bools in function definitions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fn_to_numeric_cast", description: r##"Checks for casts of function pointers to something other than `usize`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fn_to_numeric_cast_any", description: r##"Checks for casts of a function pointer to any integer type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::fn_to_numeric_cast_with_truncation", description: r##"Checks for casts of a function pointer to a numeric type not wide enough to store an address."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::for_kv_map", description: r##"Checks for iterating a map (`HashMap` or `BTreeMap`) and ignoring either the keys or values."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::forget_non_drop", description: r##"Checks for calls to `std::mem::forget` with a value that does not implement `Drop`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::format_collect", description: r##"Checks for usage of `.map(|_| format!(..)).collect::()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::format_in_format_args", description: r##"Detects `format!` within the arguments of another macro that does formatting such as `format!` itself, `write!` or `println!`. Suggests inlining the `format!` call."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::format_push_string", description: r##"Detects cases where the result of a `format!` call is appended to an existing `String`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::four_forward_slashes", description: r##"Checks for outer doc comments written with 4 forward slashes (`////`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::from_iter_instead_of_collect", description: r##"Checks for `from_iter()` function calls on types that implement the `FromIterator` trait."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::from_over_into", description: r##"Searches for implementations of the `Into<..>` trait and suggests to implement `From<..>` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::from_raw_with_void_ptr", description: r##"Checks if we're passing a `c_void` raw pointer to `{Box,Rc,Arc,Weak}::from_raw(_)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::from_str_radix_10", description: r##"Checks for function invocations of the form `primitive::from_str_radix(s, 10)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::future_not_send", @@ -11265,60 +14427,92 @@ trait."##, functions and methods to implement the `Send` marker trait. It is mostly used by library authors (public and internal) that target an audience where multithreaded executors are likely to be used for running these Futures."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::get_first", description: r##"Checks for usage of `x.get(0)` instead of `x.first()` or `x.front()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::get_last_with_len", description: r##"Checks for usage of `x.get(x.len() - 1)` instead of `x.last()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::get_unwrap", description: r##"Checks for usage of `.get().unwrap()` (or `.get_mut().unwrap`) on a standard library type which implements `Index`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::host_endian_bytes", description: r##"Checks for the usage of the `to_ne_bytes` method and/or the function `from_ne_bytes`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::identity_op", description: r##"Checks for identity operations, e.g., `x + 0`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::if_let_mutex", description: r##"Checks for `Mutex::lock` calls in `if let` expression with lock calls in any of the else blocks."##, - }, - Lint { - label: "clippy::if_let_redundant_pattern_matching", - description: r##"Nothing. This lint has been deprecated."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::if_not_else", description: r##"Checks for usage of `!` or `!=` in an if condition with an else branch."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::if_same_then_else", description: r##"Checks for `if/else` with the same body as the *then* part and the *else* part."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::if_then_some_else_none", description: r##"Checks for if-else that could be written using either `bool::then` or `bool::then_some`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ifs_same_cond", description: r##"Checks for consecutive `if`s with the same condition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ignored_unit_patterns", description: r##"Checks for usage of `_` in patterns of type `()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::impl_hash_borrow_with_str_and_bytes", @@ -11326,32 +14520,53 @@ and the *else* part."##, type that implements all three of `Hash`, `Borrow` and `Borrow<[u8]>` as it is impossible to satisfy the semantics of Borrow and `Hash` for both `Borrow` and `Borrow<[u8]>`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::impl_trait_in_params", description: r##"Lints when `impl Trait` is being used in a function's parameters."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implicit_clone", description: r##"Checks for the usage of `_.to_owned()`, `vec.to_vec()`, or similar when calling `_.clone()` would be clearer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implicit_hasher", description: r##"Checks for public `impl` or `fn` missing generalization over different hashers and implicitly defaulting to the default hashing algorithm (`SipHash`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implicit_return", description: r##"Checks for missing return statements at the end of a block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implicit_saturating_add", description: r##"Checks for implicit saturating addition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implicit_saturating_sub", description: r##"Checks for implicit saturating subtraction."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::implied_bounds_in_impls", @@ -11359,43 +14574,67 @@ algorithm (`SipHash`)."##, This can happen when a trait is specified that another trait already has as a supertrait (e.g. `fn() -> impl Deref + DerefMut` has an unnecessary `Deref` bound, because `Deref` is a supertrait of `DerefMut`)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::impossible_comparisons", description: r##"Checks for double comparisons that can never succeed"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::imprecise_flops", description: r##"Looks for floating-point expressions that can be expressed using built-in methods to improve accuracy at the cost of performance."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::incompatible_msrv", description: r##"This lint checks that no function newer than the defined MSRV (minimum supported rust version) is used in the crate."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inconsistent_digit_grouping", description: r##"Warns if an integral or floating-point constant is grouped inconsistently with underscores."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inconsistent_struct_constructor", description: r##"Checks for struct constructors where all fields are shorthand and the order of the field init shorthand in the constructor is inconsistent with the order in the struct definition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::index_refutable_slice", description: r##"The lint checks for slice bindings in patterns that are only used to access individual slice values."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::indexing_slicing", description: r##"Checks for usage of indexing or slicing. Arrays are special cases, this lint does report on arrays if we can tell that slicing operations are in bounds and does not lint on constant `usize` indexing on arrays because that is handled by rustc's `const_err` lint."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ineffective_bit_mask", @@ -11407,241 +14646,409 @@ following table: |----------|----------|------------|-------| |`>` / `<=`|`\\|` / `^`|`x \\| 2 > 3`|`x > 3`| |`<` / `>=`|`\\|` / `^`|`x ^ 1 < 4` |`x < 4`|"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ineffective_open_options", description: r##"Checks if both `.write(true)` and `.append(true)` methods are called on a same `OpenOptions`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inefficient_to_string", description: r##"Checks for usage of `.to_string()` on an `&&T` where `T` implements `ToString` directly (like `&&str` or `&&String`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::infallible_destructuring_match", description: r##"Checks for matches being used to destructure a single-variant enum or tuple struct where a `let` will suffice."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::infinite_iter", description: r##"Checks for iteration that is guaranteed to be infinite."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::infinite_loop", description: r##"Checks for infinite loops in a function where the return type is not `!` and lint accordingly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inherent_to_string", description: r##"Checks for the definition of inherent methods with a signature of `to_string(&self) -> String`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inherent_to_string_shadow_display", description: r##"Checks for the definition of inherent methods with a signature of `to_string(&self) -> String` and if the type implementing this method also implements the `Display` trait."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::init_numbered_fields", description: r##"Checks for tuple structs initialized with field syntax. It will however not lint if a base initializer is present. The lint will also ignore code in macros."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inline_always", description: r##"Checks for items annotated with `#[inline(always)]`, unless the annotated function is empty or simply panics."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inline_asm_x86_att_syntax", description: r##"Checks for usage of AT&T x86 assembly syntax."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inline_asm_x86_intel_syntax", description: r##"Checks for usage of Intel x86 assembly syntax."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inline_fn_without_body", description: r##"Checks for `#[inline]` on trait methods without bodies"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::inspect_for_each", description: r##"Checks for usage of `inspect().for_each()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::int_plus_one", description: r##"Checks for usage of `x >= y + 1` or `x - 1 >= y` (and `<=`) in a block"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::integer_division", + description: r##"Checks for division of integers"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::integer_division", description: r##"Checks for division of integers"## }, Lint { label: "clippy::integer_division_remainder_used", description: r##"Checks for the usage of division (`/`) and remainder (`%`) operations when performed on any integer types using the default `Div` and `Rem` trait implementations."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::into_iter_on_ref", description: r##"Checks for `into_iter` calls on references which should be replaced by `iter` or `iter_mut`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::into_iter_without_iter", description: r##"This is the opposite of the `iter_without_into_iter` lint. It looks for `IntoIterator for (&|&mut) Type` implementations without an inherent `iter` or `iter_mut` method on the type or on any of the types in its `Deref` chain."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::invalid_null_ptr_usage", description: r##"This lint checks for invalid usages of `ptr::null`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::invalid_regex", description: r##"Checks [regex](https://crates.io/crates/regex) creation (with `Regex::new`, `RegexBuilder::new`, or `RegexSet::new`) for correct regex syntax."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::invalid_upcast_comparisons", description: r##"Checks for comparisons where the relation is always either true or false, but where one side has been upcast so that the comparison is necessary. Only integer types are checked."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::invisible_characters", description: r##"Checks for invisible Unicode characters in the code."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::is_digit_ascii_radix", description: r##"Finds usages of [`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit) that can be replaced with [`is_ascii_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_ascii_digit) or [`is_ascii_hexdigit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_ascii_hexdigit)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::items_after_statements", description: r##"Checks for items declared after some statement in a block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::items_after_test_module", description: r##"Triggers if an item is declared after the testing module marked with `#[cfg(test)]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_cloned_collect", description: r##"Checks for the use of `.cloned().collect()` on slice to create a `Vec`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_count", description: r##"Checks for the use of `.iter().count()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_filter_is_ok", description: r##"Checks for usage of `.filter(Result::is_ok)` that may be replaced with a `.flatten()` call. This lint will require additional changes to the follow-up calls as it affects the type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_filter_is_some", description: r##"Checks for usage of `.filter(Option::is_some)` that may be replaced with a `.flatten()` call. This lint will require additional changes to the follow-up calls as it affects the type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_kv_map", description: r##"Checks for iterating a map (`HashMap` or `BTreeMap`) and ignoring either the keys or values."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::iter_next_loop", + description: r##"Checks for loops on `x.next()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::iter_next_loop", description: r##"Checks for loops on `x.next()`."## }, Lint { label: "clippy::iter_next_slice", description: r##"Checks for usage of `iter().next()` on a Slice or an Array"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_not_returning_iterator", description: r##"Detects methods named `iter` or `iter_mut` that do not have a return type that implements `Iterator`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_nth", description: r##"Checks for usage of `.iter().nth()`/`.iter_mut().nth()` on standard library types that have equivalent `.get()`/`.get_mut()` methods."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_nth_zero", description: r##"Checks for the use of `iter.nth(0)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_on_empty_collections", description: r##"Checks for calls to `iter`, `iter_mut` or `into_iter` on empty collections"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_on_single_items", description: r##"Checks for calls to `iter`, `iter_mut` or `into_iter` on collections containing a single item"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_out_of_bounds", description: r##"Looks for iterator combinator calls such as `.take(x)` or `.skip(x)` where `x` is greater than the amount of items that an iterator will produce."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_over_hash_type", description: r##"This is a restriction lint which prevents the use of hash types (i.e., `HashSet` and `HashMap`) in for loops."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_overeager_cloned", description: r##"Checks for usage of `_.cloned().()` where call to `.cloned()` can be postponed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_skip_next", description: r##"Checks for usage of `.skip(x).next()` on iterators."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_skip_zero", description: r##"Checks for usage of `.skip(0)` on iterators."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_with_drain", description: r##"Checks for usage of `.drain(..)` on `Vec` and `VecDeque` for iteration."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iter_without_into_iter", description: r##"Looks for `iter` and `iter_mut` methods without an associated `IntoIterator for (&|&mut) Type` implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::iterator_step_by_zero", description: r##"Checks for calling `.step_by(0)` on iterators which panics."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::join_absolute_paths", description: r##"Checks for calls to `Path::join` that start with a path separator (`\\\\` or `/`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::just_underscores_and_digits", description: r##"Checks if you have variables whose name consists of just underscores and digits."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_const_arrays", description: r##"Checks for large `const` arrays that should be defined as `static` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_digit_groups", description: r##"Warns if the digits of an integral or floating-point constant are grouped into groups that are too large."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_enum_variant", description: r##"Checks for large size differences between variants on `enum`s."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_futures", description: r##"It checks for the size of a `Future` created by `async fn` or `async {}`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_include_file", description: r##"Checks for the inclusion of large files via `include_bytes!()` or `include_str!()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_stack_arrays", description: r##"Checks for local arrays that may be too large."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_stack_frames", @@ -11652,6 +15059,9 @@ or constructing *many* smaller-but-still-large structs, or copying around a lot This lint is a more general version of [`large_stack_arrays`](https://rust-lang.github.io/rust-clippy/master/#large_stack_arrays) that is intended to look at functions as a whole instead of only individual array expressions inside of a function."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::large_types_passed_by_value", @@ -11660,60 +15070,102 @@ the argument type is `Copy` and large enough to be worth considering passing by reference. Does not trigger if the function is being exported, because that might induce API breakage, if the parameter is declared as mutable, or if the argument is a `self`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::legacy_numeric_constants", description: r##"Checks for usage of `::max_value()`, `std::::MAX`, `std::::EPSILON`, etc."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::len_without_is_empty", description: r##"Checks for items that implement `.len()` but not `.is_empty()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::len_zero", description: r##"Checks for getting the length of something via `.len()` just to compare to zero, and suggests using `.is_empty()` where applicable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::let_and_return", description: r##"Checks for `let`-bindings, which are subsequently returned."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::let_underscore_future", description: r##"Checks for `let _ = ` where the resulting type of expr implements `Future`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::let_underscore_lock", description: r##"Checks for `let _ = sync_lock`. This supports `mutex` and `rwlock` in `parking_lot`. For `std` locks see the `rustc` lint [`let_underscore_lock`](https://doc.rust-lang.org/nightly/rustc/lints/listing/deny-by-default.html#let-underscore-lock)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::let_underscore_must_use", description: r##"Checks for `let _ = ` where expr is `#[must_use]`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::let_underscore_untyped", description: r##"Checks for `let _ = ` without a type annotation, and suggests to either provide one, or remove the `let` keyword altogether."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::let_unit_value", + description: r##"Checks for binding a unit value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::let_unit_value", description: r##"Checks for binding a unit value."## }, Lint { label: "clippy::let_with_type_underscore", description: r##"Detects when a variable is declared with an explicit type of `_`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::lines_filter_map_ok", description: r##"Checks for usage of `lines.filter_map(Result::ok)` or `lines.flat_map(Result::ok)` when `lines` has type `std::io::Lines`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::linkedlist", description: r##"Checks for usage of any `LinkedList`, suggesting to use a `Vec` or a `VecDeque` (formerly called `RingBuf`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::lint_groups_priority", @@ -11722,286 +15174,472 @@ when `lines` has type `std::io::Lines`."##, This lint will be removed once [cargo#12918](https://github.com/rust-lang/cargo/issues/12918) is resolved."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::little_endian_bytes", description: r##"Checks for the usage of the `to_le_bytes` method and/or the function `from_le_bytes`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::lossy_float_literal", description: r##"Checks for whole number float literals that cannot be represented as the underlying type without loss."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::macro_metavars_in_unsafe", description: r##"Looks for macros that expand metavariables in an unsafe block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::macro_use_imports", description: r##"Checks for `#[macro_use] use...`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::main_recursion", description: r##"Checks for recursion using the entrypoint."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_assert", description: r##"Detects `if`-then-`panic!` that can be replaced with `assert!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_async_fn", description: r##"It checks for manual implementations of `async` functions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_bits", description: r##"Checks for usage of `std::mem::size_of::() * 8` when `T::BITS` is available."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_c_str_literals", description: r##"Checks for the manual creation of C strings (a string with a `NUL` byte at the end), either through one of the `CStr` constructor functions, or more plainly by calling `.as_ptr()` on a (byte) string literal with a hardcoded `\\0` byte at the end."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_clamp", description: r##"Identifies good opportunities for a clamp function from std or core, and suggests using it."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_filter", description: r##"Checks for usage of `match` which could be implemented using `filter`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_filter_map", description: r##"Checks for usage of `_.filter(_).map(_)` that can be written more simply as `filter_map(_)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_find", description: r##"Checks for manual implementations of Iterator::find"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_find_map", description: r##"Checks for usage of `_.find(_).map(_)` that can be written more simply as `find_map(_)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_flatten", description: r##"Checks for unnecessary `if let` usage in a for loop where only the `Some` or `Ok` variant of the iterator element is used."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_hash_one", description: r##"Checks for cases where [`BuildHasher::hash_one`] can be used. [`BuildHasher::hash_one`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html#method.hash_one"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_inspect", description: r##"Checks for uses of `map` which return the original item."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_instant_elapsed", description: r##"Lints subtraction between `Instant::now()` and another `Instant`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_is_ascii_check", description: r##"Suggests to use dedicated built-in methods, `is_ascii_(lowercase|uppercase|digit|hexdigit)` for checking on corresponding ascii range"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_is_finite", description: r##"Checks for manual `is_finite` reimplementations (i.e., `x != ::INFINITY && x != ::NEG_INFINITY`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_is_infinite", description: r##"Checks for manual `is_infinite` reimplementations (i.e., `x == ::INFINITY || x == ::NEG_INFINITY`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_is_variant_and", description: r##"Checks for usage of `option.map(f).unwrap_or_default()` and `result.map(f).unwrap_or_default()` where f is a function or closure that returns the `bool` type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_let_else", description: r##"Warn of cases where `let...else` could be used"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_main_separator_str", description: r##"Checks for references on `std::path::MAIN_SEPARATOR.to_string()` used to build a `&str`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_map", description: r##"Checks for usage of `match` which could be implemented using `map`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_memcpy", description: r##"Checks for for-loops that manually copy items between slices that could be optimized by having a memcpy."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_next_back", description: r##"Checks for `.rev().next()` on a `DoubleEndedIterator`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_non_exhaustive", description: r##"Checks for manual implementations of the non-exhaustive pattern."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_ok_or", description: r##"Finds patterns that reimplement `Option::ok_or`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_pattern_char_comparison", description: r##"Checks for manual `char` comparison in string patterns"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_range_contains", description: r##"Checks for expressions like `x >= 3 && x < 8` that could be more readably expressed as `(3..8).contains(x)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_range_patterns", description: r##"Looks for combined OR patterns that are all contained in a specific range, e.g. `6 | 4 | 5 | 9 | 7 | 8` can be rewritten as `4..=9`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_rem_euclid", description: r##"Checks for an expression like `((x % 4) + 4) % 4` which is a common manual reimplementation of `x.rem_euclid(4)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_retain", description: r##"Checks for code to be replaced by `.retain()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_rotate", description: r##"It detects manual bit rotations that could be rewritten using standard functions `rotate_left` or `rotate_right`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_saturating_arithmetic", description: r##"Checks for `.checked_add/sub(x).unwrap_or(MAX/MIN)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_slice_size_calculation", description: r##"When `a` is `&[T]`, detect `a.len() * size_of::()` and suggest `size_of_val(a)` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_split_once", description: r##"Checks for usage of `str::splitn(2, _)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_str_repeat", description: r##"Checks for manual implementations of `str::repeat`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_string_new", description: r##"Checks for usage of `` to create a `String`, such as `.to_string()`, `.to_owned()`, `String::from()` and others."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_strip", description: r##"Suggests using `strip_{prefix,suffix}` over `str::{starts,ends}_with` and slicing using the pattern's length."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_swap", description: r##"Checks for manual swapping. Note that the lint will not be emitted in const blocks, as the suggestion would not be applicable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_try_fold", description: r##"Checks for usage of `Iterator::fold` with a type that implements `Try`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_unwrap_or", description: r##"Finds patterns that reimplement `Option::unwrap_or` or `Result::unwrap_or`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_unwrap_or_default", description: r##"Checks if a `match` or `if let` expression can be simplified using `.unwrap_or_default()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::manual_while_let_some", description: r##"Looks for loops that check for emptiness of a `Vec` in the condition and pop an element in the body as a separate operation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::many_single_char_names", description: r##"Checks for too many variables whose name consists of a single character."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_clone", description: r##"Checks for usage of `map(|x| x.clone())` or dereferencing closures for `Copy` types, on `Iterator` or `Option`, and suggests `cloned()` or `copied()` instead"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_collect_result_unit", description: r##"Checks for usage of `_.map(_).collect::()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_entry", description: r##"Checks for usage of `contains_key` + `insert` on `HashMap` or `BTreeMap`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_err_ignore", description: r##"Checks for instances of `map_err(|_| Some::Enum)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_flatten", description: r##"Checks for usage of `_.map(_).flatten(_)` on `Iterator` and `Option`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_identity", description: r##"Checks for instances of `map(f)` where `f` is the identity function."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::map_unwrap_or", description: r##"Checks for usage of `option.map(_).unwrap_or(_)` or `option.map(_).unwrap_or_else(_)` or `result.map(_).unwrap_or_else(_)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_as_ref", description: r##"Checks for match which is used to add a reference to an `Option` value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_bool", description: r##"Checks for matches where match expression is a `bool`. It suggests to replace the expression with an `if...else` block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_like_matches_macro", description: r##"Checks for `match` or `if let` expressions producing a `bool` that could be written using `matches!`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_on_vec_items", description: r##"Checks for `match vec[idx]` or `match vec[n..m]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_overlapping_arm", description: r##"Checks for overlapping match arms."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_ref_pats", description: r##"Checks for matches where all arms match a reference, suggesting to remove the reference and deref the matched expression instead. It also checks for `if let &foo = bar` blocks."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_result_ok", description: r##"Checks for unnecessary `ok()` in `while let`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_same_arms", @@ -12009,51 +15647,77 @@ instead. It also checks for `if let &foo = bar` blocks."##, Note: Does not lint on wildcards if the `non_exhaustive_omitted_patterns_lint` feature is enabled and disallowed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_single_binding", description: r##"Checks for useless match that binds to only one value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_str_case_mismatch", description: r##"Checks for `match` expressions modifying the case of a string with non-compliant arms"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_wild_err_arm", description: r##"Checks for arm which matches all errors with `Err(_)` and take drastic actions like `panic!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::match_wildcard_for_single_variants", description: r##"Checks for wildcard enum matches for a single variant."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::maybe_infinite_iter", description: r##"Checks for iteration that may be infinite."##, - }, - Lint { - label: "clippy::maybe_misused_cfg", - description: r##"Nothing. This lint has been deprecated."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mem_forget", description: r##"Checks for usage of `std::mem::forget(t)` where `t` is `Drop` or has a field that implements `Drop`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mem_replace_option_with_none", description: r##"Checks for `mem::replace()` on an `Option` with `None`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mem_replace_with_default", description: r##"Checks for `std::mem::replace` on a value of type `T` with `T::default()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mem_replace_with_uninit", description: r##"Checks for `mem::replace(&mut _, mem::uninitialized())` and `mem::replace(&mut _, mem::zeroed())`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::min_ident_chars", @@ -12061,19 +15725,24 @@ and `mem::replace(&mut _, mem::zeroed())`."##, Note: This lint can be very noisy when enabled; it may be desirable to only enable it temporarily."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::min_max", description: r##"Checks for expressions where `std::cmp::min` and `max` are used to clamp values, but switched so that the result is constant."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::misaligned_transmute", - description: r##"Nothing. This lint has been deprecated."##, - }, - Lint { - label: "clippy::mismatched_target_os", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mismatching_type_param_order", @@ -12081,36 +15750,60 @@ used to clamp values, but switched so that the result is constant."##, a type definition and impl block. Specifically, a parameter in an impl block which has the same name as a parameter in the type def, but is in a different place."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::misnamed_getters", description: r##"Checks for getter methods that return a field that doesn't correspond to the name of the method, when there is a field's whose name matches that of the method."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::misrefactored_assign_op", description: r##"Checks for `a op= a op b` or `a op= b op a` patterns."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_assert_message", description: r##"Checks assertions without a custom panic message."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_asserts_for_indexing", description: r##"Checks for repeated slice indexing without asserting beforehand that the length is greater than the largest index used to index into the slice."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_const_for_fn", description: r##"Suggests the use of `const` in functions and methods where possible."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_const_for_thread_local", description: r##"Suggests to use `const` in `thread_local!` macro if possible."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_docs_in_private_items", description: r##"Warns if there is missing documentation for any private documentable item."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_enforced_import_renames", @@ -12119,108 +15812,192 @@ in the `enforced-import-renames` config option. Note: Even though this lint is warn-by-default, it will only trigger if import renames are defined in the `clippy.toml` file."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_errors_doc", description: r##"Checks the doc comments of publicly visible functions that return a `Result` type and warns if there is no `# Errors` section."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_fields_in_debug", description: r##"Checks for manual [`core::fmt::Debug`](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implementations that do not use all fields."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_inline_in_public_items", description: r##"It lints if an exported function, method, trait method with default impl, or trait method impl is not `#[inline]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_panics_doc", description: r##"Checks the doc comments of publicly visible functions that may panic and warns if there is no `# Panics` section."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_safety_doc", description: r##"Checks for the doc comments of publicly visible unsafe functions and warns if there is no `# Safety` section."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::missing_spin_loop", + description: r##"Checks for empty spin loops"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::missing_spin_loop", description: r##"Checks for empty spin loops"## }, Lint { label: "clippy::missing_trait_methods", description: r##"Checks if a provided method is used implicitly by a trait implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::missing_transmute_annotations", description: r##"Checks if transmute calls have all generics specified."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mistyped_literal_suffixes", description: r##"Warns for mistyped suffix in literals"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mixed_attributes_style", description: r##"Checks for items that have the same kind of attributes with mixed styles (inner/outer)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mixed_case_hex_literals", description: r##"Warns on hexadecimal literals with mixed-case letter digits."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mixed_read_write_in_expression", description: r##"Checks for a read and a write to the same variable where whether the read occurs before or after the write depends on the evaluation order of sub-expressions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mod_module_files", description: r##"Checks that module layout uses only self named module files; bans `mod.rs` files."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::module_inception", description: r##"Checks for modules that have the same name as their parent module"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::module_name_repetitions", description: r##"Detects type names that are prefixed or suffixed by the containing module's name."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::modulo_arithmetic", + description: r##"Checks for modulo arithmetic."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::modulo_arithmetic", description: r##"Checks for modulo arithmetic."## }, Lint { label: "clippy::modulo_one", description: r##"Checks for getting the remainder of integer division by one or minus one."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::multi_assignments", + description: r##"Checks for nested assignments."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::multi_assignments", description: r##"Checks for nested assignments."## }, Lint { label: "clippy::multiple_bound_locations", description: r##"Check if a generic is defined both in the bound predicate and in the `where` clause."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::multiple_crate_versions", description: r##"Checks to see if multiple versions of a crate are being used."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::multiple_inherent_impl", description: r##"Checks for multiple inherent implementations of a struct"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::multiple_unsafe_ops_per_block", description: r##"Checks for `unsafe` blocks that contain more than one unsafe operation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::must_use_candidate", description: r##"Checks for public functions that have no `#[must_use]` attribute, but return something not already marked must-use, have no mutable arg and mutate no statics."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::must_use_unit", description: r##"Checks for a `#[must_use]` attribute on unit-returning functions and methods."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mut_from_ref", @@ -12230,77 +16007,131 @@ are multiple safe functions which will do this transformation To be on the conservative side, if there's at least one mutable reference with the output lifetime, this lint will not trigger."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mut_mut", description: r##"Checks for instances of `mut mut` references."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mut_mutex_lock", description: r##"Checks for `&mut Mutex::lock` calls"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mut_range_bound", description: r##"Checks for loops with a range bound that is a mutable variable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mutable_key_type", description: r##"Checks for sets/maps with mutable key types."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mutex_atomic", description: r##"Checks for usage of `Mutex` where an atomic will do."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::mutex_integer", description: r##"Checks for usage of `Mutex` where `X` is an integral type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::naive_bytecount", + description: r##"Checks for naive byte counts"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::naive_bytecount", description: r##"Checks for naive byte counts"## }, Lint { label: "clippy::needless_arbitrary_self_type", description: r##"The lint checks for `self` in fn parameters that specify the `Self`-type explicitly"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_bitwise_bool", description: r##"Checks for usage of bitwise and/or operators between booleans, where performance may be improved by using a lazy and."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_bool", description: r##"Checks for expressions of the form `if c { true } else { false }` (or vice versa) and suggests using the condition directly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_bool_assign", description: r##"Checks for expressions of the form `if c { x = true } else { x = false }` (or vice versa) and suggest assigning the variable directly from the condition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_borrow", description: r##"Checks for address of operations (`&`) that are going to be dereferenced immediately by the compiler."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_borrowed_reference", description: r##"Checks for bindings that needlessly destructure a reference and borrow the inner value with `&ref`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_borrows_for_generic_args", description: r##"Checks for borrow operations (`&`) that are used as a generic argument to a function when the borrowed value could be used."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_character_iteration", description: r##"Checks if an iterator is used to check if a string is ascii."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_collect", description: r##"Checks for functions collecting an iterator when collect is not needed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_continue", @@ -12308,53 +16139,92 @@ is not needed."##, that contain a `continue` statement in either their main blocks or their `else`-blocks, when omitting the `else`-block possibly with some rearrangement of code can make the code easier to understand."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_doctest_main", description: r##"Checks for `fn main() { .. }` in doctests"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::needless_else", + description: r##"Checks for empty `else` branches."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::needless_else", description: r##"Checks for empty `else` branches."## }, Lint { label: "clippy::needless_for_each", description: r##"Checks for usage of `for_each` that would be more simply written as a `for` loop."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_if", description: r##"Checks for empty `if` branches with no else branch."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_late_init", description: r##"Checks for late initializations that can be replaced by a `let` statement with an initializer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_lifetimes", description: r##"Checks for lifetime annotations which can be removed by relying on lifetime elision."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_match", description: r##"Checks for unnecessary `match` or match-like `if let` returns for `Option` and `Result` when function signatures are the same."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_maybe_sized", description: r##"Lints `?Sized` bounds applied to type parameters that cannot be unsized"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_option_as_deref", description: r##"Checks for no-op uses of `Option::{as_deref, as_deref_mut}`, for example, `Option<&T>::as_deref()` returns the same type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_option_take", description: r##"Checks for calling `take` function after `as_ref`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_parens_on_range_literals", description: r##"The lint checks for parenthesis on literals in range statements that are superfluous."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_pass_by_ref_mut", @@ -12362,45 +16232,75 @@ superfluous."##, Be careful if the function is publicly reexported as it would break compatibility with users of this function, when the users pass this function as an argument."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_pass_by_value", description: r##"Checks for functions taking arguments by value, but not consuming them in its body."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_pub_self", description: r##"Checks for usage of `pub(self)` and `pub(in self)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_question_mark", description: r##"Suggests alternatives for useless applications of `?` in terminating expressions"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_range_loop", description: r##"Checks for looping over the range of `0..len` of some collection just to get the values by index."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_raw_string_hashes", description: r##"Checks for raw string literals with an unnecessary amount of hashes around them."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_raw_strings", description: r##"Checks for raw string literals where a string literal can be used instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_return", description: r##"Checks for return statements at the end of a block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_return_with_question_mark", description: r##"Checks for return statements on `Err` paired with the `?` operator."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_splitn", description: r##"Checks for usage of `str::splitn` (or `str::rsplitn`) where using `str::split` would be the same."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::needless_update", @@ -12409,70 +16309,118 @@ when all fields are changed anyway. This lint is not applied to structs marked with [non_exhaustive](https://doc.rust-lang.org/reference/attributes/type_system.html)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::neg_cmp_op_on_partial_ord", description: r##"Checks for the usage of negated comparison operators on types which only implement `PartialOrd` (e.g., `f64`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::neg_multiply", description: r##"Checks for multiplication by -1 as a form of negation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::negative_feature_names", description: r##"Checks for negative feature names with prefix `no-` or `not-`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::never_loop", description: r##"Checks for loops that will always `break`, `return` or `continue` an outer loop."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::new_ret_no_self", description: r##"Checks for `new` not returning a type that contains `Self`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::new_without_default", description: r##"Checks for public types with a `pub fn new() -> Self` method and no implementation of [`Default`](https://doc.rust-lang.org/std/default/trait.Default.html)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::no_effect", description: r##"Checks for statements which have no effect."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::no_effect_replace", description: r##"Checks for `replace` statements which have no effect."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::no_effect_underscore_binding", description: r##"Checks for binding to underscore prefixed variable without side-effects."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::no_mangle_with_rust_abi", description: r##"Checks for Rust ABI functions with the `#[no_mangle]` attribute."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_ascii_literal", description: r##"Checks for non-ASCII characters in string and char literals."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_canonical_clone_impl", description: r##"Checks for non-canonical implementations of `Clone` when `Copy` is already implemented."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_canonical_partial_ord_impl", description: r##"Checks for non-canonical implementations of `PartialOrd` when `Ord` is already implemented."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_minimal_cfg", description: r##"Checks for `any` and `all` combinators in `cfg` with only one condition."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_octal_unix_permissions", description: r##"Checks for non-octal values used to set Unix file permissions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::non_send_fields_in_send_ty", @@ -12481,63 +16429,108 @@ contains fields that are not safe to be sent across threads. It tries to detect fields that can cause a soundness issue when sent to another thread (e.g., `Rc`) while allowing `!Send` fields that are expected to exist in a `Send` type, such as raw pointers."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::nonminimal_bool", description: r##"Checks for boolean expressions that can be written more concisely."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::nonsensical_open_options", description: r##"Checks for duplicate open options as well as combinations that make no sense."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::nonstandard_macro_braces", description: r##"Checks that common macros are used with consistent bracing."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::not_unsafe_ptr_arg_deref", description: r##"Checks for public functions that dereference raw pointer arguments but are not marked `unsafe`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::obfuscated_if_else", description: r##"Checks for usage of `.then_some(..).unwrap_or(..)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::octal_escapes", description: r##"Checks for `\\0` escapes in string and byte literals that look like octal character escapes in C."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::ok_expect", + description: r##"Checks for usage of `ok().expect(..)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::ok_expect", description: r##"Checks for usage of `ok().expect(..)`."## }, Lint { label: "clippy::only_used_in_recursion", description: r##"Checks for arguments that are only used in recursion with no side-effects."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::op_ref", description: r##"Checks for arguments to `==` which have their address taken to satisfy a bound and suggests to dereference the other argument instead"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_as_ref_cloned", description: r##"Checks for usage of `.as_ref().cloned()` and `.as_mut().cloned()` on `Option`s"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_as_ref_deref", description: r##"Checks for usage of `_.as_ref().map(Deref::deref)` or its aliases (such as String::as_str)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_env_unwrap", description: r##"Checks for usage of `option_env!(...).unwrap()` and suggests usage of the `env!` macro."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_filter_map", description: r##"Checks for iterators of `Option`s using `.filter(Option::is_some).map(Option::unwrap)` that may be replaced with a `.flatten()` call."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_if_let_else", @@ -12546,24 +16539,39 @@ be replaced with a `.flatten()` call."##, idiomatically done with `Option::map_or` (if the else bit is a pure expression) or `Option::map_or_else` (if the else bit is an impure expression)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_map_or_err_ok", description: r##"Checks for usage of `_.map_or(Err(_), Ok)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_map_or_none", description: r##"Checks for usage of `_.map_or(None, _)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_map_unit_fn", description: r##"Checks for usage of `option.map(f)` where f is a function or closure that returns the unit type `()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::option_option", description: r##"Checks for usage of `Option>` in function signatures and type definitions"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::or_fun_call", @@ -12571,52 +16579,91 @@ definitions"##, `.or_insert(foo(..))` etc., and suggests to use `.or_else(|| foo(..))`, `.unwrap_or_else(|| foo(..))`, `.unwrap_or_default()` or `.or_default()` etc. instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::or_then_unwrap", description: r##"Checks for `.or(…).unwrap()` calls to Options and Results."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::out_of_bounds_indexing", description: r##"Checks for out of bounds array indexing with a constant index."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::overly_complex_bool_expr", description: r##"Checks for boolean expressions that contain terminals that can be eliminated."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::panic", + description: r##"Checks for usage of `panic!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::panic", description: r##"Checks for usage of `panic!`."## }, Lint { label: "clippy::panic_in_result_fn", description: r##"Checks for usage of `panic!` or assertions in a function whose return type is `Result`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::panicking_overflow_checks", description: r##"Detects C-style underflow/overflow checks."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::panicking_unwrap", description: r##"Checks for calls of `unwrap[_err]()` that will always fail."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::partial_pub_fields", description: r##"Checks whether some but not all fields of a `struct` are public. Either make all fields of a type public, or make none of them public"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::partialeq_ne_impl", description: r##"Checks for manual re-implementations of `PartialEq::ne`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::partialeq_to_none", description: r##"Checks for binary comparisons to a literal `Option::None`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::path_buf_push_overwrite", description: r##"* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.push) calls on `PathBuf` that can cause overwrites."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::path_ends_with_ext", @@ -12626,10 +16673,16 @@ By default, Clippy has a short list of known filenames that start with a dot but aren't necessarily file extensions (e.g. the `.git` folder), which are allowed by default. The `allowed-dotfiles` configuration can be used to allow additional file extensions that Clippy should not lint."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::pathbuf_init_then_push", description: r##"Checks for calls to `push` immediately after creating a new `PathBuf`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::pattern_type_mismatch", @@ -12651,90 +16704,150 @@ and reference semantics in your code. The available tooling would expose these t in a general way even outside of the various pattern matching mechanics. Of course this lint can still be used to highlight areas of interest and ensure a good understanding of ownership semantics."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::permissions_set_readonly_false", description: r##"Checks for calls to `std::fs::Permissions.set_readonly` with argument `false`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::possible_missing_comma", description: r##"Checks for possible missing comma in an array. It lints if an array element is a binary operator expression and it lies on two lines."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::precedence", description: r##"Checks for operations where precedence may be unclear and suggests to add parentheses. Currently it catches the following: * mixed usage of arithmetic and bit shifting/combining operators without -parentheses -* a negative numeric literal (which is really a unary `-` followed by a -numeric literal) - followed by a method call"##, +parentheses"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::print_in_format_impl", description: r##"Checks for usage of `println`, `print`, `eprintln` or `eprint` in an implementation of a formatting trait."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::print_literal", description: r##"This lint warns about the use of literals as `print!`/`println!` args."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::print_stderr", description: r##"Checks for printing on *stderr*. The purpose of this lint is to catch debugging remnants."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::print_stdout", description: r##"Checks for printing on *stdout*. The purpose of this lint is to catch debugging remnants."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::print_with_newline", description: r##"This lint warns when you use `print!()` with a format string that ends in a newline."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::println_empty_string", description: r##"This lint warns when you use `println!()` to print a newline."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ptr_arg", description: r##"This lint checks for function arguments of type `&String`, `&Vec`, `&PathBuf`, and `Cow<_>`. It will also suggest you replace `.clone()` calls with the appropriate `.to_owned()`/`to_string()` calls."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ptr_as_ptr", description: r##"Checks for `as` casts between raw pointers that don't change their constness, namely `*const T` to `*const U` and `*mut T` to `*mut U`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ptr_cast_constness", description: r##"Checks for `as` casts between raw pointers that change their constness, namely `*const T` to `*mut T` and `*mut T` to `*const T`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::ptr_eq", + description: r##"Use `std::ptr::eq` when applicable"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::ptr_eq", description: r##"Use `std::ptr::eq` when applicable"## }, Lint { label: "clippy::ptr_offset_with_cast", description: r##"Checks for usage of the `offset` pointer method with a `usize` casted to an `isize`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::pub_enum_variant_names", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::pub_underscore_fields", description: r##"Checks whether any field of the struct is prefixed with an `_` (underscore) and also marked `pub` (public)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::pub_use", + description: r##"Restricts the usage of `pub use ...`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::pub_use", description: r##"Restricts the usage of `pub use ...`"## }, Lint { label: "clippy::pub_with_shorthand", description: r##"Checks for usage of `pub()` with `in`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::pub_without_shorthand", @@ -12742,180 +16855,303 @@ constness, namely `*const T` to `*const U` and `*mut T` to `*mut U`."##, Note: As you cannot write a module's path in `pub()`, this will only trigger on `pub(super)` and the like."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::question_mark", description: r##"Checks for expressions that could be replaced by the question mark operator."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::question_mark_used", description: r##"Checks for expressions that use the question mark operator and rejects them."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::range_minus_one", description: r##"Checks for inclusive ranges where 1 is subtracted from the upper bound, e.g., `x..=(y-1)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::range_plus_one", description: r##"Checks for exclusive ranges where 1 is added to the upper bound, e.g., `x..(y+1)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::range_step_by_zero", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::range_zip_with_len", description: r##"Checks for zipping a collection with the range of `0.._.len()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::rc_buffer", description: r##"Checks for `Rc` and `Arc` when `T` is a mutable buffer type such as `String` or `Vec`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::rc_clone_in_vec_init", description: r##"Checks for reference-counted pointers (`Arc`, `Rc`, `rc::Weak`, and `sync::Weak`) in `vec![elem; len]`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::rc_mutex", + description: r##"Checks for `Rc>`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::rc_mutex", description: r##"Checks for `Rc>`."## }, Lint { label: "clippy::read_line_without_trim", description: r##"Looks for calls to [`Stdin::read_line`] to read a line from the standard input into a string, then later attempting to use that string for an operation that will never work for strings with a trailing newline character in it (e.g. parsing into a `i32`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::read_zero_byte_vec", description: r##"This lint catches reads into a zero-length `Vec`. Especially in the case of a call to `with_capacity`, this lint warns that read gets the number of bytes from the `Vec`'s length, not its capacity."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::readonly_write_lock", description: r##"Looks for calls to `RwLock::write` where the lock is only used for reading."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::recursive_format_impl", description: r##"Checks for format trait implementations (e.g. `Display`) with a recursive call to itself which uses `self` as a parameter. This is typically done indirectly with the `write!` macro or with `to_string()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_allocation", description: r##"Checks for usage of redundant allocations anywhere in the code."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_as_str", description: r##"Checks for usage of `as_str()` on a `String` chained with a method available on the `String` itself."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_async_block", description: r##"Checks for `async` block that only returns `await` on a future."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_at_rest_pattern", description: r##"Checks for `[all @ ..]` patterns."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_clone", description: r##"Checks for a redundant `clone()` (and its relatives) which clones an owned value that is going to be dropped without further use."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_closure", description: r##"Checks for closures which just call another function where the function can be called directly. `unsafe` functions, calls where types get adjusted or where the callee is marked `#[track_caller]` are ignored."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_closure_call", description: r##"Detects closures called in the same expression where they are defined."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_closure_for_method_calls", description: r##"Checks for closures which only invoke a method on the closure argument and can be replaced by referencing the method directly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_comparisons", description: r##"Checks for ineffective double comparisons against constants."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_else", description: r##"Checks for `else` blocks that can be removed without changing semantics."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_feature_names", description: r##"Checks for feature names with prefix `use-`, `with-` or suffix `-support`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_field_names", description: r##"Checks for fields in struct literals where shorthands could be used."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_guards", description: r##"Checks for unnecessary guards in match expressions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_locals", description: r##"Checks for redundant redefinitions of local bindings."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_pattern", description: r##"Checks for patterns in the form `name @ _`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_pattern_matching", description: r##"Lint for redundant pattern matching over `Result`, `Option`, `std::task::Poll`, `std::net::IpAddr` or `bool`s"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_pub_crate", description: r##"Checks for items declared `pub(crate)` that are not crate visible because they are inside a private module."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_slicing", description: r##"Checks for redundant slicing expressions which use the full range, and do not change the type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_static_lifetimes", description: r##"Checks for constants and statics with an explicit `'static` lifetime."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::redundant_type_annotations", description: r##"Warns about needless / redundant type annotations."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ref_as_ptr", description: r##"Checks for casts of references to pointer using `as` and suggests `std::ptr::from_ref` and `std::ptr::from_mut` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ref_binding_to_reference", description: r##"Checks for `ref` bindings which create a reference to a reference."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ref_option_ref", description: r##"Checks for usage of `&Option<&T>`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::ref_patterns", description: r##"Checks for usages of the `ref` keyword."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::regex_macro", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::renamed_function_params", description: r##"Lints when the name of function parameters from trait impl is different than its default implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::repeat_once", @@ -12926,152 +17162,248 @@ different than its default implementation."##, The lint will evaluate constant expressions and values as arguments of `.repeat(..)` and emit a message if they are equivalent to `1`. (Related discussion in [rust-clippy#7306](https://github.com/rust-lang/rust-clippy/issues/7306))"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::repeat_vec_with_capacity", description: r##"Looks for patterns such as `vec![Vec::with_capacity(x); n]` or `iter::repeat(Vec::with_capacity(x))`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::replace_consts", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::reserve_after_initialization", description: r##"Informs the user about a more concise way to create a vector with a known capacity."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::rest_pat_in_fully_bound_structs", description: r##"Checks for unnecessary '..' pattern binding on struct when all fields are explicitly matched."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::result_filter_map", description: r##"Checks for iterators of `Result`s using `.filter(Result::is_ok).map(Result::unwrap)` that may be replaced with a `.flatten()` call."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::result_large_err", description: r##"Checks for functions that return `Result` with an unusually large `Err`-variant."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::result_map_or_into_option", description: r##"Checks for usage of `_.map_or(None, Some)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::result_map_unit_fn", description: r##"Checks for usage of `result.map(f)` where f is a function or closure that returns the unit type `()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::result_unit_err", description: r##"Checks for public functions that return a `Result` with an `Err` type of `()`. It suggests using a custom type that implements `std::error::Error`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::return_self_not_must_use", description: r##"This lint warns when a method returning `Self` doesn't have the `#[must_use]` attribute."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::reversed_empty_ranges", description: r##"Checks for range expressions `x..y` where both `x` and `y` are constant and `x` is greater to `y`. Also triggers if `x` is equal to `y` when they are conditions to a `for` loop."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::same_functions_in_if_condition", description: r##"Checks for consecutive `if`s with the same function call."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::same_item_push", description: r##"Checks whether a for loop is being used to push a constant value into a Vec."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::same_name_method", description: r##"It lints if a struct has two methods with the same name: one from a trait, another not from a trait."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::search_is_some", description: r##"Checks for an iterator or string search (such as `find()`, `position()`, or `rposition()`) followed by a call to `is_some()` or `is_none()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::seek_from_current", description: r##"Checks if the `seek` method of the `Seek` trait is called with `SeekFrom::Current(0)`, and if it is, suggests using `stream_position` instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::seek_to_start_instead_of_rewind", description: r##"Checks for jumps to the start of a stream that implements `Seek` and uses the `seek` method providing `Start` as parameter."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::self_assignment", description: r##"Checks for explicit self-assignments."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::self_named_constructors", description: r##"Warns when constructors have the same name as their types."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::self_named_module_files", description: r##"Checks that module layout uses only `mod.rs` files."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::semicolon_if_nothing_returned", description: r##"Looks for blocks of expressions and fires if the last expression returns `()` but is not followed by a semicolon."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::semicolon_inside_block", description: r##"Suggests moving the semicolon after a block to the inside of the block, after its last expression."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::semicolon_outside_block", description: r##"Suggests moving the semicolon from a block's final expression outside of the block."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::separated_literal_suffix", description: r##"Warns if literal suffixes are separated by an underscore. To enforce separated literal suffix style, see the `unseparated_literal_suffix` lint."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::serde_api_misuse", description: r##"Checks for misuses of the serde API."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::set_contains_or_insert", - description: r##"Checks for usage of `contains` to see if a value is not -present on `HashSet` followed by a `insert`."##, + description: r##"Checks for usage of `contains` to see if a value is not present +in a set like `HashSet` or `BTreeSet`, followed by an `insert`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::shadow_reuse", description: r##"Checks for bindings that shadow other bindings already in scope, while reusing the original value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::shadow_same", description: r##"Checks for bindings that shadow other bindings already in scope, while just changing reference level or mutability."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::shadow_unrelated", description: r##"Checks for bindings that shadow other bindings already in scope, either without an initialization or with one that does not even use the original value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::short_circuit_statement", description: r##"Checks for the use of short circuit boolean conditions as a statement."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::should_assert_eq", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::should_implement_trait", @@ -13079,21 +17411,33 @@ statement."##, implementation of a `std` trait (see [llogiq's blog post](http://llogiq.github.io/2015/07/30/traits.html) for further information) instead of an inherent implementation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::should_panic_without_expect", description: r##"Checks for `#[should_panic]` attributes without specifying the expected panic message."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::significant_drop_in_scrutinee", description: r##"Checks for temporaries returned from function calls in a match scrutinee that have the `clippy::has_significant_drop` attribute."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::significant_drop_tightening", description: r##"Searches for elements marked with `#[clippy::has_significant_drop]` that could be early dropped but are in fact dropped at the end of their scopes. In other words, enforces the tightening of their possible lifetimes."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::similar_names", @@ -13102,33 +17446,54 @@ tightening of their possible lifetimes."##, Note: this lint looks for similar names throughout each scope. To allow it, you need to allow it on the scope level, not on the name that is reported."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_call_fn", description: r##"Checks for functions that are only used once. Does not lint tests."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_char_add_str", description: r##"Warns when using `push_str`/`insert_str` with a single-character string literal where `push`/`insert` with a `char` would work fine."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_char_lifetime_names", description: r##"Checks for lifetimes with names which are one character long."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_char_pattern", description: r##"Checks for string methods that receive a single-character `str` as an argument, e.g., `_.split(x)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_component_path_imports", description: r##"Checking for imports with single component use path."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_element_loop", description: r##"Checks whether a for loop has a single element."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_match", @@ -13139,337 +17504,572 @@ This intentionally does not lint if there are comments inside of the other arm, so as to allow the user to document why having another explicit pattern with an empty body is necessary, or because the comments need to be preserved for other reasons."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_match_else", description: r##"Checks for matches with two arms where an `if let else` will usually suffice."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::single_range_in_vec_init", description: r##"Checks for `Vec` or array initializations that contain only one range."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::size_of_in_element_count", description: r##"Detects expressions where `size_of::` or `size_of_val::` is used as a count of elements of type `T`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::size_of_ref", description: r##"Checks for calls to `std::mem::size_of_val()` where the argument is a reference to a reference."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::skip_while_next", description: r##"Checks for usage of `_.skip_while(condition).next()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::slow_vector_initialization", description: r##"Checks slow zero-filled vector initialization"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::stable_sort_primitive", description: r##"When sorting primitive values (integers, bools, chars, as well as arrays, slices, and tuples of such items), it is typically better to use an unstable sort than a stable sort."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::std_instead_of_alloc", description: r##"Finds items imported through `std` when available through `alloc`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::std_instead_of_core", description: r##"Finds items imported through `std` when available through `core`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::str_split_at_newline", description: r##"Checks for usages of `str.trim().split(\ )` and `str.trim().split(\\ )`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::str_to_string", description: r##"This lint checks for `.to_string()` method calls on values of type `&str`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_add", description: r##"Checks for all instances of `x + _` where `x` is of type `String`, but only if [`string_add_assign`](#string_add_assign) does *not* match."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_add_assign", description: r##"Checks for string appends of the form `x = x + y` (without `let`!)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_extend_chars", description: r##"Checks for the use of `.extend(s.chars())` where s is a `&str` or `String`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_from_utf8_as_bytes", description: r##"Check if the string is transformed to byte array and casted back to string."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_lit_as_bytes", description: r##"Checks for the `as_bytes` method called on string literals that contain only ASCII characters."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_lit_chars_any", description: r##"Checks for `.chars().any(|i| i == c)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_slice", description: r##"Checks for slice operations on strings"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::string_to_string", description: r##"This lint checks for `.to_string()` method calls on values of type `String`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::strlen_on_c_strings", description: r##"Checks for usage of `libc::strlen` on a `CString` or `CStr` value, and suggest calling `as_bytes().len()` or `to_bytes().len()` respectively instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::struct_excessive_bools", description: r##"Checks for excessive use of bools in structs."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::struct_field_names", description: r##"Detects struct fields that are prefixed or suffixed by the same characters or the name of the struct itself."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suboptimal_flops", description: r##"Looks for floating-point expressions that can be expressed using built-in methods to improve both accuracy and performance."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_arithmetic_impl", description: r##"Lints for suspicious operations in impls of arithmetic operators, e.g. subtracting elements in an Add impl."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_assignment_formatting", description: r##"Checks for usage of the non-existent `=*`, `=!` and `=-` operators."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_command_arg_space", description: r##"Checks for `Command::arg()` invocations that look like they should be multiple arguments instead, such as `arg(-t ext2)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_doc_comments", description: r##"Detects the use of outer doc comments (`///`, `/**`) followed by a bang (`!`): `///!`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_else_formatting", description: r##"Checks for formatting of `else`. It lints if the `else` is followed immediately by a newline or the `else` seems to be missing."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_map", description: r##"Checks for calls to `map` followed by a `count`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_op_assign_impl", description: r##"Lints for suspicious operations in impls of OpAssign, e.g. subtracting elements in an AddAssign impl."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_open_options", description: r##"Checks for the suspicious use of `OpenOptions::create()` without an explicit `OpenOptions::truncate()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_operation_groupings", description: r##"Checks for unlikely usages of binary operators that are almost certainly typos and/or copy/paste errors, given the other usages of binary operators nearby."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_splitn", description: r##"Checks for calls to [`splitn`] (https://doc.rust-lang.org/std/primitive.str.html#method.splitn) and related functions with either zero or one splits."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_to_owned", description: r##"Checks for the usage of `_.to_owned()`, on a `Cow<'_, _>`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_unary_op_formatting", description: r##"Checks the formatting of a unary operator on the right hand side of a binary operator. It lints if there is no space between the binary and unary operators, but there is a space between the unary and its operand."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::suspicious_xor_used_as_pow", description: r##"Warns for a Bitwise XOR (`^`) operator being probably confused as a powering. It will not trigger if any of the numbers are not in decimal."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::swap_ptr_to_ref", description: r##"Checks for calls to `core::mem::swap` where either parameter is derived from a pointer"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::tabs_in_doc_comments", description: r##"Checks doc comments for usage of tab characters."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::temporary_assignment", description: r##"Checks for construction of a structure or tuple just to assign a value in it."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::test_attr_in_doctest", description: r##"Checks for `#[test]` in doctests unless they are marked with either `ignore`, `no_run` or `compile_fail`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::tests_outside_test_module", description: r##"Triggers when a testing function (marked with the `#[test]` attribute) isn't inside a testing module (marked with `#[cfg(test)]`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::to_digit_is_some", description: r##"Checks for `.to_digit(..).is_some()` on `char`s."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::to_string_in_format_args", description: r##"Checks for [`ToString::to_string`](https://doc.rust-lang.org/std/string/trait.ToString.html#tymethod.to_string) applied to a type that implements [`Display`](https://doc.rust-lang.org/std/fmt/trait.Display.html) in a macro that does formatting."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::to_string_trait_impl", description: r##"Checks for direct implementations of `ToString`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::todo", + description: r##"Checks for usage of `todo!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::too_long_first_doc_paragraph", + description: r##"Checks if the first line in the documentation of items listed in module page is too long."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::todo", description: r##"Checks for usage of `todo!`."## }, Lint { label: "clippy::too_many_arguments", description: r##"Checks for functions with too many parameters."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::too_many_lines", description: r##"Checks for functions with a large amount of lines."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::toplevel_ref_arg", description: r##"Checks for function arguments and let bindings denoted as `ref`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::trailing_empty_array", description: r##"Displays a warning when a struct with a trailing zero-sized array is declared without a `repr` attribute."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::trait_duplication_in_bounds", description: r##"Checks for cases where generics or trait objects are being used and multiple syntax specifications for trait bounds are used simultaneously."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_bytes_to_str", description: r##"Checks for transmutes from a `&[u8]` to a `&str`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_float_to_int", description: r##"Checks for transmutes from a float to an integer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_int_to_bool", description: r##"Checks for transmutes from an integer to a `bool`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_int_to_char", description: r##"Checks for transmutes from an integer to a `char`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_int_to_float", description: r##"Checks for transmutes from an integer to a float."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_int_to_non_zero", description: r##"Checks for transmutes from `T` to `NonZero`, and suggests the `new_unchecked` method instead."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_null_to_fn", description: r##"Checks for null function pointer creation through transmute."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_num_to_bytes", description: r##"Checks for transmutes from a number to an array of `u8`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_ptr_to_ptr", description: r##"Checks for transmutes from a pointer to a pointer, or from a reference to a reference."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_ptr_to_ref", description: r##"Checks for transmutes from a pointer to a reference."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmute_undefined_repr", description: r##"Checks for transmutes between types which do not have a representation defined relative to each other."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmutes_expressible_as_ptr_casts", description: r##"Checks for transmutes that could be a pointer cast."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::transmuting_null", description: r##"Checks for transmute calls which would receive a null pointer."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::trim_split_whitespace", description: r##"Warns about calling `str::trim` (or variants) before `str::split_whitespace`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::trivial_regex", description: r##"Checks for trivial [regex](https://crates.io/crates/regex) creation (with `Regex::new`, `RegexBuilder::new`, or `RegexSet::new`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::trivially_copy_pass_by_ref", description: r##"Checks for functions taking arguments by reference, where the argument type is `Copy` and small enough to be more efficient to always pass by value."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::try_err", + description: r##"Checks for usage of `Err(x)?`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::try_err", description: r##"Checks for usage of `Err(x)?`."## }, Lint { label: "clippy::tuple_array_conversions", description: r##"Checks for tuple<=>array conversions that are not done with `.into()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::type_complexity", description: r##"Checks for types used in structs, parameters and `let` declarations above a certain complexity threshold."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::type_id_on_box", description: r##"Looks for calls to `.type_id()` on a `Box`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::type_repetition_in_bounds", description: r##"This lint warns about unnecessary type repetitions in trait bounds"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unchecked_duration_subtraction", description: r##"Lints subtraction between an `Instant` and a `Duration`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unconditional_recursion", description: r##"Checks that there isn't an infinite recursion in trait implementations."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::undocumented_unsafe_blocks", @@ -13494,53 +18094,89 @@ foo( /* SAFETY: Neither is this */ unsafe { *x }, ); ```"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unicode_not_nfc", description: r##"Checks for string literals that contain Unicode in a form that is not equal to its [NFC-recomposition](http://www.unicode.org/reports/tr15/#Norm_Forms)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unimplemented", description: r##"Checks for usage of `unimplemented!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::uninhabited_references", description: r##"It detects references to uninhabited types, such as `!` and warns when those are either dereferenced or returned from a function."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::uninit_assumed_init", description: r##"Checks for `MaybeUninit::uninit().assume_init()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::uninit_vec", description: r##"Checks for `set_len()` call that creates `Vec` with uninitialized elements. This is commonly caused by calling `set_len()` right after allocating or reserving a buffer with `new()`, `default()`, `with_capacity()`, or `reserve()`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::uninlined_format_args", description: r##"Detect when a variable is not inlined in a format string, and suggests to inline it."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unit_arg", description: r##"Checks for passing a unit value as an argument to a function without using a unit literal (`()`)."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unit_cmp", description: r##"Checks for comparisons to unit. This includes all binary comparisons (like `==` and `<`) and asserts."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::unit_hash", + description: r##"Detects `().hash(_)`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::unit_hash", description: r##"Detects `().hash(_)`."## }, Lint { label: "clippy::unit_return_expecting_ord", description: r##"Checks for functions that expect closures of type Fn(...) -> Ord where the implemented closure returns the unit type. The lint also suggests to remove the semi-colon at the end of the statement if present."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_box_returns", @@ -13548,48 +18184,75 @@ The lint also suggests to remove the semi-colon at the end of the statement if p The lint ignores `Box` where `T` is larger than `unnecessary_box_size`, as returning a large `T` directly may be detrimental to performance."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_cast", description: r##"Checks for casts to the same type, casts of int literals to integer types, casts of float literals to float types, and casts between raw pointers that don't change type or constness."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_clippy_cfg", description: r##"Checks for `#[cfg_attr(clippy, allow(clippy::lint))]` and suggests to replace it with `#[allow(clippy::lint)]`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_fallible_conversions", description: r##"Checks for calls to `TryInto::try_into` and `TryFrom::try_from` when their infallible counterparts could be used."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_filter_map", description: r##"Checks for `filter_map` calls that could be replaced by `filter` or `map`. More specifically it checks if the closure provided is only performing one of the filter or map operations and suggests the appropriate option."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_find_map", description: r##"Checks for `find_map` calls that could be replaced by `find` or `map`. More specifically it checks if the closure provided is only performing one of the find or map operations and suggests the appropriate option."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_fold", description: r##"Checks for usage of `fold` when a more succinct alternative exists. Specifically, this checks for `fold`s which could be replaced by `any`, `all`, `sum` or `product`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_get_then_check", description: r##"Checks the usage of `.get().is_some()` or `.get().is_none()` on std map types."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_join", description: r##"Checks for usage of `.collect::>().join()` on iterators."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_lazy_evaluations", @@ -13604,80 +18267,131 @@ simpler code: - `get_or_insert_with` to `get_or_insert` - `ok_or_else` to `ok_or` - `then` to `then_some` (for msrv >= 1.62.0)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_literal_unwrap", description: r##"Checks for `.unwrap()` related calls on `Result`s and `Option`s that are constructed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_map_on_constructor", description: r##"Suggests removing the use of a `map()` (or `map_err()`) method when an `Option` or `Result` is being constructed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_min_or_max", description: r##"Checks for unnecessary calls to `min()` or `max()` in the following cases - Either both side is constant - One side is clearly larger than the other, like i32::MIN and an i32 variable"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_mut_passed", description: r##"Detects passing a mutable reference to a function that only requires an immutable reference."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_operation", description: r##"Checks for expression statements that can be reduced to a sub-expression."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_owned_empty_strings", description: r##"Detects cases of owned empty strings being passed as an argument to a function expecting `&str`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_result_map_or_else", description: r##"Checks for usage of `.map_or_else()` map closure for `Result` type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_safety_comment", description: r##"Checks for `// SAFETY: ` comments on safe code."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_safety_doc", description: r##"Checks for the doc comments of publicly visible safe functions and traits and warns if there is a `# Safety` section."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_self_imports", description: r##"Checks for imports ending in `::{self}`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_sort_by", description: r##"Checks for usage of `Vec::sort_by` passing in a closure which compares the two arguments, either directly or indirectly."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_struct_initialization", description: r##"Checks for initialization of an identical `struct` from another instance of the type, either by copying a base without setting any field or by moving all fields individually."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_to_owned", description: r##"Checks for unnecessary calls to [`ToOwned::to_owned`](https://doc.rust-lang.org/std/borrow/trait.ToOwned.html#tymethod.to_owned) and other `to_owned`-like functions."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_unwrap", description: r##"Checks for calls of `unwrap[_err]()` that cannot fail."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnecessary_wraps", description: r##"Checks for private functions that only return `Ok` or `Some`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unneeded_field_pattern", description: r##"Checks for structure field patterns bound to wildcards."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unneeded_wildcard_pattern", @@ -13688,6 +18402,9 @@ _NOTE_: While `_, ..` means there is at least one element left, `..` means there are 0 or more elements left. This can make a difference when refactoring, but shouldn't result in errors in the refactored code, since the wildcard pattern isn't used anyway."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unnested_or_patterns", @@ -13696,26 +18413,47 @@ suggests replacing the pattern with a nested one, `Some(0 | 2)`. Another way to think of this is that it rewrites patterns in *disjunctive normal form (DNF)* into *conjunctive normal form (CNF)*."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::unreachable", + description: r##"Checks for usage of `unreachable!`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::unreachable", description: r##"Checks for usage of `unreachable!`."## }, Lint { label: "clippy::unreadable_literal", description: r##"Warns if a long integral or floating-point constant does not contain underscores."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unsafe_derive_deserialize", description: r##"Checks for deriving `serde::Deserialize` on a type that has methods using `unsafe`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unsafe_removed_from_name", description: r##"Checks for imports that remove unsafe from an item's name."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unsafe_vector_initialization", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unseparated_literal_suffix", @@ -13723,66 +18461,118 @@ name."##, underscore. To enforce unseparated literal suffix style, see the `separated_literal_suffix` lint."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unsound_collection_transmute", description: r##"Checks for transmutes between collections whose types have different ABI, size or alignment."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unstable_as_mut_slice", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unstable_as_slice", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_async", description: r##"Checks for functions that are declared `async` but have no `.await`s inside of them."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_collect", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_enumerate_index", description: r##"Checks for uses of the `enumerate` method where the index is unused (`_`)"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_format_specs", description: r##"Detects [formatting parameters] that have no effect on the output of `format!()`, `println!()` or similar macros."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_io_amount", description: r##"Checks for unused written/read amount."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_peekable", description: r##"Checks for the creation of a `peekable` iterator that is never `.peek()`ed"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::unused_result_ok", + description: r##"Checks for calls to `Result::ok()` without using the returned `Option`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_rounding", description: r##"Detects cases where a whole-number literal float is being rounded, using the `floor`, `ceil`, or `round` methods."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_self", description: r##"Checks methods that contain a `self` argument but don't use it"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unused_unit", description: r##"Checks for unit (`()`) expressions that can be removed."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unusual_byte_groupings", description: r##"Warns if hexadecimal or binary literals are not grouped by nibble or byte."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unwrap_in_result", description: r##"Checks for functions of type `Result` that contain `expect()` or `unwrap()`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unwrap_or_default", @@ -13792,34 +18582,55 @@ by nibble or byte."##, - `unwrap_or_else` - `or_insert` - `or_insert_with`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::unwrap_used", description: r##"Checks for `.unwrap()` or `.unwrap_err()` calls on `Result`s and `.unwrap()` call on `Option`s."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::upper_case_acronyms", description: r##"Checks for fully capitalized names and optionally names containing a capitalized acronym."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::use_debug", description: r##"Checks for usage of `Debug` formatting. The purpose of this lint is to catch debugging remnants."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::use_self", description: r##"Checks for unnecessary repetition of structure name when a replacement with `Self` is applicable."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::used_underscore_binding", description: r##"Checks for the use of bindings with a single leading underscore."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_asref", description: r##"Checks for usage of `.as_ref()` or `.as_mut()` where the types before and after the call are the same."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_attribute", @@ -13847,36 +18658,57 @@ For `use` items these lints are: For `extern crate` items these lints are: * `unused_imports` on items with `#[macro_use]`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_conversion", description: r##"Checks for `Into`, `TryInto`, `From`, `TryFrom`, or `IntoIter` calls which uselessly convert to the same type."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_format", description: r##"Checks for the use of `format!(string literal with no argument)` and `format!({}, foo)` where `foo` is a string."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_let_if_seq", description: r##"Checks for variable declarations immediately followed by a conditional affectation."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_transmute", description: r##"Checks for transmutes to the original type of the object and transmutes that could be a cast."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::useless_vec", description: r##"Checks for usage of `vec![..]` when using `[..]` would be possible."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::vec_box", description: r##"Checks for usage of `Vec>` where T: Sized anywhere in the code. Check the [Box documentation](https://doc.rust-lang.org/std/boxed/index.html) for more information."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::vec_init_then_push", @@ -13888,76 +18720,127 @@ constant and the number of pushes is greater than or equal to the initial capaci If the `Vec` is extended after the initial sequence of pushes and it was default initialized then this will only lint after there were at least four pushes. This number may change in the future."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::vec_resize_to_zero", description: r##"Finds occurrences of `Vec::resize(0, an_int)`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::verbose_bit_mask", description: r##"Checks for bit masks that can be replaced by a call to `trailing_zeros`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::verbose_file_reads", description: r##"Checks for usage of File::read_to_end and File::read_to_string."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::waker_clone_wake", description: r##"Checks for usage of `waker.clone().wake()`"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::while_float", description: r##"Checks for while loops comparing floating point values."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::while_immutable_condition", description: r##"Checks whether variables used within while loop condition can be (and are) mutated in the body."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::while_let_loop", description: r##"Detects `loop + match` combinations that are easier written as a `while let` loop."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::while_let_on_iterator", description: r##"Checks for `while let` expressions on iterators."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wildcard_dependencies", description: r##"Checks for wildcard dependencies in the `Cargo.toml`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wildcard_enum_match_arm", description: r##"Checks for wildcard enum matches using `_`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wildcard_imports", description: r##"Checks for wildcard imports `use _::*`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wildcard_in_or_patterns", description: r##"Checks for wildcard pattern used with others patterns in same match arm."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::write_literal", description: r##"This lint warns about the use of literals as `write!`/`writeln!` args."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::write_with_newline", description: r##"This lint warns when you use `write!()` with a format string that ends in a newline."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::writeln_empty_string", description: r##"This lint warns when you use `writeln!(buf, )` to print a newline."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wrong_pub_self_convention", - description: r##"Nothing. This lint has been deprecated."##, + description: r##"Nothing. This lint has been deprecated"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wrong_self_convention", @@ -13986,34 +18869,61 @@ Clippy allows `Pin<&Self>` and `Pin<&mut Self>` if `&self` and `&mut self` is re Please find more info here: https://rust-lang.github.io/api-guidelines/naming.html#ad-hoc-conversions-follow-as_-to_-into_-conventions-c-conv"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::wrong_transmute", description: r##"Checks for transmutes that can't ever be correct on any architecture."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }, + Lint { + label: "clippy::zero_divided_by_zero", + description: r##"Checks for `0.0 / 0.0`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, - Lint { label: "clippy::zero_divided_by_zero", description: r##"Checks for `0.0 / 0.0`."## }, Lint { label: "clippy::zero_prefixed_literal", description: r##"Warns if an integral constant literal starts with `0`."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::zero_ptr", description: r##"Catch casts from `0` to some pointer type"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::zero_repeat_side_effects", description: r##"Checks for array or vec initializations which call a function or method, but which have a repeat count of zero."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::zero_sized_map_values", description: r##"Checks for maps with zero-sized value types anywhere in the code."##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, Lint { label: "clippy::zst_offset", description: r##"Checks for `offset(_)`, `wrapping_`{`add`, `sub`}, etc. on raw pointers to zero-sized types"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, ]; pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ @@ -14021,6 +18931,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::cargo", description: r##"lint group for: clippy::cargo_common_metadata, clippy::multiple_crate_versions, clippy::negative_feature_names, clippy::redundant_feature_names, clippy::wildcard_dependencies"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::cargo_common_metadata", @@ -14034,6 +18947,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::complexity", description: r##"lint group for: clippy::bind_instead_of_map, clippy::bool_comparison, clippy::borrow_deref_ref, clippy::borrowed_box, clippy::bytes_count_to_len, clippy::char_lit_as_u8, clippy::clone_on_copy, clippy::crosspointer_transmute, clippy::default_constructed_unit_structs, clippy::deprecated_cfg_attr, clippy::deref_addrof, clippy::derivable_impls, clippy::diverging_sub_expression, clippy::double_comparisons, clippy::double_parens, clippy::duration_subsec, clippy::excessive_nesting, clippy::explicit_auto_deref, clippy::explicit_counter_loop, clippy::explicit_write, clippy::extra_unused_lifetimes, clippy::extra_unused_type_parameters, clippy::filter_map_identity, clippy::filter_next, clippy::flat_map_identity, clippy::get_last_with_len, clippy::identity_op, clippy::implied_bounds_in_impls, clippy::inspect_for_each, clippy::int_plus_one, clippy::iter_count, clippy::iter_kv_map, clippy::let_with_type_underscore, clippy::manual_clamp, clippy::manual_filter, clippy::manual_filter_map, clippy::manual_find, clippy::manual_find_map, clippy::manual_flatten, clippy::manual_hash_one, clippy::manual_inspect, clippy::manual_main_separator_str, clippy::manual_range_patterns, clippy::manual_rem_euclid, clippy::manual_slice_size_calculation, clippy::manual_split_once, clippy::manual_strip, clippy::manual_swap, clippy::manual_unwrap_or, clippy::map_flatten, clippy::map_identity, clippy::match_as_ref, clippy::match_single_binding, clippy::needless_arbitrary_self_type, clippy::needless_bool, clippy::needless_bool_assign, clippy::needless_borrowed_reference, clippy::needless_if, clippy::needless_lifetimes, clippy::needless_match, clippy::needless_option_as_deref, clippy::needless_option_take, clippy::needless_question_mark, clippy::needless_splitn, clippy::needless_update, clippy::neg_cmp_op_on_partial_ord, clippy::no_effect, clippy::nonminimal_bool, clippy::only_used_in_recursion, clippy::option_as_ref_deref, clippy::option_filter_map, clippy::option_map_unit_fn, clippy::or_then_unwrap, clippy::partialeq_ne_impl, clippy::precedence, clippy::ptr_offset_with_cast, clippy::range_zip_with_len, clippy::redundant_as_str, clippy::redundant_async_block, clippy::redundant_at_rest_pattern, clippy::redundant_closure_call, clippy::redundant_guards, clippy::redundant_slicing, clippy::repeat_once, clippy::reserve_after_initialization, clippy::result_filter_map, clippy::result_map_unit_fn, clippy::search_is_some, clippy::seek_from_current, clippy::seek_to_start_instead_of_rewind, clippy::short_circuit_statement, clippy::single_element_loop, clippy::skip_while_next, clippy::string_from_utf8_as_bytes, clippy::strlen_on_c_strings, clippy::temporary_assignment, clippy::too_many_arguments, clippy::transmute_bytes_to_str, clippy::transmute_float_to_int, clippy::transmute_int_to_bool, clippy::transmute_int_to_char, clippy::transmute_int_to_float, clippy::transmute_int_to_non_zero, clippy::transmute_num_to_bytes, clippy::transmute_ptr_to_ref, clippy::transmutes_expressible_as_ptr_casts, clippy::type_complexity, clippy::unit_arg, clippy::unnecessary_cast, clippy::unnecessary_filter_map, clippy::unnecessary_find_map, clippy::unnecessary_literal_unwrap, clippy::unnecessary_map_on_constructor, clippy::unnecessary_min_or_max, clippy::unnecessary_operation, clippy::unnecessary_sort_by, clippy::unnecessary_unwrap, clippy::unneeded_wildcard_pattern, clippy::unused_format_specs, clippy::useless_asref, clippy::useless_conversion, clippy::useless_format, clippy::useless_transmute, clippy::vec_box, clippy::while_let_loop, clippy::wildcard_in_or_patterns, clippy::zero_divided_by_zero, clippy::zero_prefixed_literal"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::bind_instead_of_map", @@ -14170,6 +19086,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::correctness", description: r##"lint group for: clippy::absurd_extreme_comparisons, clippy::almost_swapped, clippy::approx_constant, clippy::async_yields_async, clippy::bad_bit_mask, clippy::cast_slice_different_sizes, clippy::deprecated_semver, clippy::derive_ord_xor_partial_ord, clippy::derived_hash_with_manual_eq, clippy::eager_transmute, clippy::enum_clike_unportable_variant, clippy::eq_op, clippy::erasing_op, clippy::fn_address_comparisons, clippy::if_let_mutex, clippy::ifs_same_cond, clippy::impl_hash_borrow_with_str_and_bytes, clippy::impossible_comparisons, clippy::ineffective_bit_mask, clippy::infinite_iter, clippy::inherent_to_string_shadow_display, clippy::inline_fn_without_body, clippy::invalid_null_ptr_usage, clippy::invalid_regex, clippy::invisible_characters, clippy::iter_next_loop, clippy::iter_skip_zero, clippy::iterator_step_by_zero, clippy::let_underscore_lock, clippy::lint_groups_priority, clippy::match_str_case_mismatch, clippy::mem_replace_with_uninit, clippy::min_max, clippy::mistyped_literal_suffixes, clippy::modulo_one, clippy::mut_from_ref, clippy::never_loop, clippy::non_octal_unix_permissions, clippy::nonsensical_open_options, clippy::not_unsafe_ptr_arg_deref, clippy::option_env_unwrap, clippy::out_of_bounds_indexing, clippy::overly_complex_bool_expr, clippy::panicking_overflow_checks, clippy::panicking_unwrap, clippy::possible_missing_comma, clippy::read_line_without_trim, clippy::recursive_format_impl, clippy::redundant_comparisons, clippy::redundant_locals, clippy::reversed_empty_ranges, clippy::self_assignment, clippy::serde_api_misuse, clippy::size_of_in_element_count, clippy::suspicious_splitn, clippy::transmute_null_to_fn, clippy::transmuting_null, clippy::uninit_assumed_init, clippy::uninit_vec, clippy::unit_cmp, clippy::unit_hash, clippy::unit_return_expecting_ord, clippy::unsound_collection_transmute, clippy::unused_io_amount, clippy::useless_attribute, clippy::vec_resize_to_zero, clippy::while_immutable_condition, clippy::wrong_transmute, clippy::zst_offset"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::absurd_extreme_comparisons", @@ -14246,17 +19165,15 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ LintGroup { lint: Lint { label: "clippy::deprecated", - description: r##"lint group for: clippy::assign_ops, clippy::extend_from_slice, clippy::filter_map, clippy::find_map, clippy::if_let_redundant_pattern_matching, clippy::maybe_misused_cfg, clippy::misaligned_transmute, clippy::mismatched_target_os, clippy::pub_enum_variant_names, clippy::range_step_by_zero, clippy::regex_macro, clippy::replace_consts, clippy::should_assert_eq, clippy::unsafe_vector_initialization, clippy::unstable_as_mut_slice, clippy::unstable_as_slice, clippy::unused_collect, clippy::wrong_pub_self_convention"##, + description: r##"lint group for: clippy::assign_ops, clippy::extend_from_slice, clippy::misaligned_transmute, clippy::pub_enum_variant_names, clippy::range_step_by_zero, clippy::regex_macro, clippy::replace_consts, clippy::should_assert_eq, clippy::unsafe_vector_initialization, clippy::unstable_as_mut_slice, clippy::unstable_as_slice, clippy::unused_collect, clippy::wrong_pub_self_convention"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::assign_ops", "clippy::extend_from_slice", - "clippy::filter_map", - "clippy::find_map", - "clippy::if_let_redundant_pattern_matching", - "clippy::maybe_misused_cfg", "clippy::misaligned_transmute", - "clippy::mismatched_target_os", "clippy::pub_enum_variant_names", "clippy::range_step_by_zero", "clippy::regex_macro", @@ -14273,6 +19190,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::nursery", description: r##"lint group for: clippy::as_ptr_cast_mut, clippy::branches_sharing_code, clippy::clear_with_drain, clippy::cognitive_complexity, clippy::collection_is_never_read, clippy::debug_assert_with_mut_call, clippy::derive_partial_eq_without_eq, clippy::empty_line_after_doc_comments, clippy::empty_line_after_outer_attr, clippy::equatable_if_let, clippy::fallible_impl_from, clippy::future_not_send, clippy::imprecise_flops, clippy::iter_on_empty_collections, clippy::iter_on_single_items, clippy::iter_with_drain, clippy::large_stack_frames, clippy::missing_const_for_fn, clippy::mutex_integer, clippy::needless_collect, clippy::needless_pass_by_ref_mut, clippy::non_send_fields_in_send_ty, clippy::nonstandard_macro_braces, clippy::option_if_let_else, clippy::or_fun_call, clippy::path_buf_push_overwrite, clippy::read_zero_byte_vec, clippy::redundant_clone, clippy::redundant_pub_crate, clippy::set_contains_or_insert, clippy::significant_drop_in_scrutinee, clippy::significant_drop_tightening, clippy::string_lit_as_bytes, clippy::suboptimal_flops, clippy::suspicious_operation_groupings, clippy::trailing_empty_array, clippy::trait_duplication_in_bounds, clippy::transmute_undefined_repr, clippy::trivial_regex, clippy::tuple_array_conversions, clippy::type_repetition_in_bounds, clippy::uninhabited_references, clippy::unnecessary_struct_initialization, clippy::unused_peekable, clippy::unused_rounding, clippy::use_self, clippy::useless_let_if_seq, clippy::while_float"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::as_ptr_cast_mut", @@ -14329,6 +19249,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::pedantic", description: r##"lint group for: clippy::assigning_clones, clippy::bool_to_int_with_if, clippy::borrow_as_ptr, clippy::case_sensitive_file_extension_comparisons, clippy::cast_lossless, clippy::cast_possible_truncation, clippy::cast_possible_wrap, clippy::cast_precision_loss, clippy::cast_ptr_alignment, clippy::cast_sign_loss, clippy::checked_conversions, clippy::cloned_instead_of_copied, clippy::copy_iterator, clippy::default_trait_access, clippy::doc_link_with_quotes, clippy::doc_markdown, clippy::empty_enum, clippy::enum_glob_use, clippy::expl_impl_clone_on_copy, clippy::explicit_deref_methods, clippy::explicit_into_iter_loop, clippy::explicit_iter_loop, clippy::filter_map_next, clippy::flat_map_option, clippy::float_cmp, clippy::fn_params_excessive_bools, clippy::from_iter_instead_of_collect, clippy::if_not_else, clippy::ignored_unit_patterns, clippy::implicit_clone, clippy::implicit_hasher, clippy::inconsistent_struct_constructor, clippy::index_refutable_slice, clippy::inefficient_to_string, clippy::inline_always, clippy::into_iter_without_iter, clippy::invalid_upcast_comparisons, clippy::items_after_statements, clippy::iter_filter_is_ok, clippy::iter_filter_is_some, clippy::iter_not_returning_iterator, clippy::iter_without_into_iter, clippy::large_digit_groups, clippy::large_futures, clippy::large_stack_arrays, clippy::large_types_passed_by_value, clippy::linkedlist, clippy::macro_use_imports, clippy::manual_assert, clippy::manual_c_str_literals, clippy::manual_instant_elapsed, clippy::manual_is_variant_and, clippy::manual_let_else, clippy::manual_ok_or, clippy::manual_string_new, clippy::many_single_char_names, clippy::map_unwrap_or, clippy::match_bool, clippy::match_on_vec_items, clippy::match_same_arms, clippy::match_wild_err_arm, clippy::match_wildcard_for_single_variants, clippy::maybe_infinite_iter, clippy::mismatching_type_param_order, clippy::missing_errors_doc, clippy::missing_fields_in_debug, clippy::missing_panics_doc, clippy::module_name_repetitions, clippy::must_use_candidate, clippy::mut_mut, clippy::naive_bytecount, clippy::needless_bitwise_bool, clippy::needless_continue, clippy::needless_for_each, clippy::needless_pass_by_value, clippy::needless_raw_string_hashes, clippy::no_effect_underscore_binding, clippy::no_mangle_with_rust_abi, clippy::option_as_ref_cloned, clippy::option_option, clippy::ptr_as_ptr, clippy::ptr_cast_constness, clippy::pub_underscore_fields, clippy::range_minus_one, clippy::range_plus_one, clippy::redundant_closure_for_method_calls, clippy::redundant_else, clippy::ref_as_ptr, clippy::ref_binding_to_reference, clippy::ref_option_ref, clippy::return_self_not_must_use, clippy::same_functions_in_if_condition, clippy::semicolon_if_nothing_returned, clippy::should_panic_without_expect, clippy::similar_names, clippy::single_char_pattern, clippy::single_match_else, clippy::stable_sort_primitive, clippy::str_split_at_newline, clippy::string_add_assign, clippy::struct_excessive_bools, clippy::struct_field_names, clippy::too_many_lines, clippy::transmute_ptr_to_ptr, clippy::trivially_copy_pass_by_ref, clippy::unchecked_duration_subtraction, clippy::unicode_not_nfc, clippy::uninlined_format_args, clippy::unnecessary_box_returns, clippy::unnecessary_join, clippy::unnecessary_wraps, clippy::unnested_or_patterns, clippy::unreadable_literal, clippy::unsafe_derive_deserialize, clippy::unused_async, clippy::unused_self, clippy::used_underscore_binding, clippy::verbose_bit_mask, clippy::wildcard_imports, clippy::zero_sized_map_values"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::assigning_clones", @@ -14457,6 +19380,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::perf", description: r##"lint group for: clippy::box_collection, clippy::boxed_local, clippy::cmp_owned, clippy::collapsible_str_replace, clippy::drain_collect, clippy::expect_fun_call, clippy::extend_with_drain, clippy::format_collect, clippy::format_in_format_args, clippy::iter_overeager_cloned, clippy::large_const_arrays, clippy::large_enum_variant, clippy::manual_memcpy, clippy::manual_retain, clippy::manual_str_repeat, clippy::manual_try_fold, clippy::map_entry, clippy::missing_const_for_thread_local, clippy::missing_spin_loop, clippy::readonly_write_lock, clippy::redundant_allocation, clippy::result_large_err, clippy::slow_vector_initialization, clippy::to_string_in_format_args, clippy::unnecessary_to_owned, clippy::useless_vec, clippy::vec_init_then_push, clippy::waker_clone_wake"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::box_collection", @@ -14492,7 +19418,10 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ LintGroup { lint: Lint { label: "clippy::restriction", - description: r##"lint group for: clippy::absolute_paths, clippy::alloc_instead_of_core, clippy::allow_attributes, clippy::allow_attributes_without_reason, clippy::arithmetic_side_effects, clippy::as_conversions, clippy::as_underscore, clippy::assertions_on_result_states, clippy::big_endian_bytes, clippy::cfg_not_test, clippy::clone_on_ref_ptr, clippy::create_dir, clippy::dbg_macro, clippy::decimal_literal_representation, clippy::default_numeric_fallback, clippy::default_union_representation, clippy::deref_by_slicing, clippy::disallowed_script_idents, clippy::else_if_without_else, clippy::empty_drop, clippy::empty_enum_variants_with_brackets, clippy::empty_structs_with_brackets, clippy::error_impl_error, clippy::exhaustive_enums, clippy::exhaustive_structs, clippy::exit, clippy::expect_used, clippy::field_scoped_visibility_modifiers, clippy::filetype_is_file, clippy::float_arithmetic, clippy::float_cmp_const, clippy::fn_to_numeric_cast_any, clippy::format_push_string, clippy::get_unwrap, clippy::host_endian_bytes, clippy::if_then_some_else_none, clippy::impl_trait_in_params, clippy::implicit_return, clippy::indexing_slicing, clippy::infinite_loop, clippy::inline_asm_x86_att_syntax, clippy::inline_asm_x86_intel_syntax, clippy::integer_division, clippy::integer_division_remainder_used, clippy::iter_over_hash_type, clippy::large_include_file, clippy::let_underscore_must_use, clippy::let_underscore_untyped, clippy::little_endian_bytes, clippy::lossy_float_literal, clippy::map_err_ignore, clippy::mem_forget, clippy::min_ident_chars, clippy::missing_assert_message, clippy::missing_asserts_for_indexing, clippy::missing_docs_in_private_items, clippy::missing_inline_in_public_items, clippy::missing_trait_methods, clippy::mixed_read_write_in_expression, clippy::mod_module_files, clippy::modulo_arithmetic, clippy::multiple_inherent_impl, clippy::multiple_unsafe_ops_per_block, clippy::mutex_atomic, clippy::needless_raw_strings, clippy::non_ascii_literal, clippy::panic, clippy::panic_in_result_fn, clippy::partial_pub_fields, clippy::pathbuf_init_then_push, clippy::pattern_type_mismatch, clippy::print_stderr, clippy::print_stdout, clippy::pub_use, clippy::pub_with_shorthand, clippy::pub_without_shorthand, clippy::question_mark_used, clippy::rc_buffer, clippy::rc_mutex, clippy::redundant_type_annotations, clippy::ref_patterns, clippy::renamed_function_params, clippy::rest_pat_in_fully_bound_structs, clippy::same_name_method, clippy::self_named_module_files, clippy::semicolon_inside_block, clippy::semicolon_outside_block, clippy::separated_literal_suffix, clippy::shadow_reuse, clippy::shadow_same, clippy::shadow_unrelated, clippy::single_call_fn, clippy::single_char_lifetime_names, clippy::std_instead_of_alloc, clippy::std_instead_of_core, clippy::str_to_string, clippy::string_add, clippy::string_lit_chars_any, clippy::string_slice, clippy::string_to_string, clippy::suspicious_xor_used_as_pow, clippy::tests_outside_test_module, clippy::todo, clippy::try_err, clippy::undocumented_unsafe_blocks, clippy::unimplemented, clippy::unnecessary_safety_comment, clippy::unnecessary_safety_doc, clippy::unnecessary_self_imports, clippy::unneeded_field_pattern, clippy::unreachable, clippy::unseparated_literal_suffix, clippy::unwrap_in_result, clippy::unwrap_used, clippy::use_debug, clippy::verbose_file_reads, clippy::wildcard_enum_match_arm"##, + description: r##"lint group for: clippy::absolute_paths, clippy::alloc_instead_of_core, clippy::allow_attributes, clippy::allow_attributes_without_reason, clippy::arithmetic_side_effects, clippy::as_conversions, clippy::as_underscore, clippy::assertions_on_result_states, clippy::big_endian_bytes, clippy::cfg_not_test, clippy::clone_on_ref_ptr, clippy::create_dir, clippy::dbg_macro, clippy::decimal_literal_representation, clippy::default_numeric_fallback, clippy::default_union_representation, clippy::deref_by_slicing, clippy::disallowed_script_idents, clippy::else_if_without_else, clippy::empty_drop, clippy::empty_enum_variants_with_brackets, clippy::empty_structs_with_brackets, clippy::error_impl_error, clippy::exhaustive_enums, clippy::exhaustive_structs, clippy::exit, clippy::expect_used, clippy::field_scoped_visibility_modifiers, clippy::filetype_is_file, clippy::float_arithmetic, clippy::float_cmp_const, clippy::fn_to_numeric_cast_any, clippy::format_push_string, clippy::get_unwrap, clippy::host_endian_bytes, clippy::if_then_some_else_none, clippy::impl_trait_in_params, clippy::implicit_return, clippy::indexing_slicing, clippy::infinite_loop, clippy::inline_asm_x86_att_syntax, clippy::inline_asm_x86_intel_syntax, clippy::integer_division, clippy::integer_division_remainder_used, clippy::iter_over_hash_type, clippy::large_include_file, clippy::let_underscore_must_use, clippy::let_underscore_untyped, clippy::little_endian_bytes, clippy::lossy_float_literal, clippy::map_err_ignore, clippy::mem_forget, clippy::min_ident_chars, clippy::missing_assert_message, clippy::missing_asserts_for_indexing, clippy::missing_docs_in_private_items, clippy::missing_inline_in_public_items, clippy::missing_trait_methods, clippy::mixed_read_write_in_expression, clippy::mod_module_files, clippy::modulo_arithmetic, clippy::multiple_inherent_impl, clippy::multiple_unsafe_ops_per_block, clippy::mutex_atomic, clippy::needless_raw_strings, clippy::non_ascii_literal, clippy::panic, clippy::panic_in_result_fn, clippy::partial_pub_fields, clippy::pathbuf_init_then_push, clippy::pattern_type_mismatch, clippy::print_stderr, clippy::print_stdout, clippy::pub_use, clippy::pub_with_shorthand, clippy::pub_without_shorthand, clippy::question_mark_used, clippy::rc_buffer, clippy::rc_mutex, clippy::redundant_type_annotations, clippy::ref_patterns, clippy::renamed_function_params, clippy::rest_pat_in_fully_bound_structs, clippy::same_name_method, clippy::self_named_module_files, clippy::semicolon_inside_block, clippy::semicolon_outside_block, clippy::separated_literal_suffix, clippy::shadow_reuse, clippy::shadow_same, clippy::shadow_unrelated, clippy::single_call_fn, clippy::single_char_lifetime_names, clippy::std_instead_of_alloc, clippy::std_instead_of_core, clippy::str_to_string, clippy::string_add, clippy::string_lit_chars_any, clippy::string_slice, clippy::string_to_string, clippy::suspicious_xor_used_as_pow, clippy::tests_outside_test_module, clippy::todo, clippy::try_err, clippy::undocumented_unsafe_blocks, clippy::unimplemented, clippy::unnecessary_safety_comment, clippy::unnecessary_safety_doc, clippy::unnecessary_self_imports, clippy::unneeded_field_pattern, clippy::unreachable, clippy::unseparated_literal_suffix, clippy::unused_result_ok, clippy::unwrap_in_result, clippy::unwrap_used, clippy::use_debug, clippy::verbose_file_reads, clippy::wildcard_enum_match_arm"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::absolute_paths", @@ -14607,6 +19536,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ "clippy::unneeded_field_pattern", "clippy::unreachable", "clippy::unseparated_literal_suffix", + "clippy::unused_result_ok", "clippy::unwrap_in_result", "clippy::unwrap_used", "clippy::use_debug", @@ -14617,7 +19547,10 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ LintGroup { lint: Lint { label: "clippy::style", - description: r##"lint group for: clippy::assertions_on_constants, clippy::assign_op_pattern, clippy::blocks_in_conditions, clippy::bool_assert_comparison, clippy::borrow_interior_mutable_const, clippy::box_default, clippy::builtin_type_shadow, clippy::byte_char_slices, clippy::bytes_nth, clippy::chars_last_cmp, clippy::chars_next_cmp, clippy::cmp_null, clippy::collapsible_else_if, clippy::collapsible_if, clippy::collapsible_match, clippy::comparison_chain, clippy::comparison_to_empty, clippy::declare_interior_mutable_const, clippy::default_instead_of_iter_empty, clippy::disallowed_macros, clippy::disallowed_methods, clippy::disallowed_names, clippy::disallowed_types, clippy::doc_lazy_continuation, clippy::double_must_use, clippy::double_neg, clippy::duplicate_underscore_argument, clippy::enum_variant_names, clippy::err_expect, clippy::excessive_precision, clippy::field_reassign_with_default, clippy::filter_map_bool_then, clippy::fn_to_numeric_cast, clippy::fn_to_numeric_cast_with_truncation, clippy::for_kv_map, clippy::from_over_into, clippy::from_str_radix_10, clippy::get_first, clippy::if_same_then_else, clippy::implicit_saturating_add, clippy::implicit_saturating_sub, clippy::inconsistent_digit_grouping, clippy::infallible_destructuring_match, clippy::inherent_to_string, clippy::init_numbered_fields, clippy::into_iter_on_ref, clippy::is_digit_ascii_radix, clippy::items_after_test_module, clippy::iter_cloned_collect, clippy::iter_next_slice, clippy::iter_nth, clippy::iter_nth_zero, clippy::iter_skip_next, clippy::just_underscores_and_digits, clippy::legacy_numeric_constants, clippy::len_without_is_empty, clippy::len_zero, clippy::let_and_return, clippy::let_unit_value, clippy::main_recursion, clippy::manual_async_fn, clippy::manual_bits, clippy::manual_is_ascii_check, clippy::manual_is_finite, clippy::manual_is_infinite, clippy::manual_map, clippy::manual_next_back, clippy::manual_non_exhaustive, clippy::manual_pattern_char_comparison, clippy::manual_range_contains, clippy::manual_rotate, clippy::manual_saturating_arithmetic, clippy::manual_while_let_some, clippy::map_clone, clippy::map_collect_result_unit, clippy::match_like_matches_macro, clippy::match_overlapping_arm, clippy::match_ref_pats, clippy::match_result_ok, clippy::mem_replace_option_with_none, clippy::mem_replace_with_default, clippy::missing_enforced_import_renames, clippy::missing_safety_doc, clippy::mixed_attributes_style, clippy::mixed_case_hex_literals, clippy::module_inception, clippy::must_use_unit, clippy::mut_mutex_lock, clippy::needless_borrow, clippy::needless_borrows_for_generic_args, clippy::needless_doctest_main, clippy::needless_else, clippy::needless_late_init, clippy::needless_parens_on_range_literals, clippy::needless_pub_self, clippy::needless_range_loop, clippy::needless_return, clippy::needless_return_with_question_mark, clippy::neg_multiply, clippy::new_ret_no_self, clippy::new_without_default, clippy::non_minimal_cfg, clippy::obfuscated_if_else, clippy::ok_expect, clippy::op_ref, clippy::option_map_or_err_ok, clippy::option_map_or_none, clippy::partialeq_to_none, clippy::print_literal, clippy::print_with_newline, clippy::println_empty_string, clippy::ptr_arg, clippy::ptr_eq, clippy::question_mark, clippy::redundant_closure, clippy::redundant_field_names, clippy::redundant_pattern, clippy::redundant_pattern_matching, clippy::redundant_static_lifetimes, clippy::result_map_or_into_option, clippy::result_unit_err, clippy::same_item_push, clippy::self_named_constructors, clippy::should_implement_trait, clippy::single_char_add_str, clippy::single_component_path_imports, clippy::single_match, clippy::string_extend_chars, clippy::tabs_in_doc_comments, clippy::to_digit_is_some, clippy::to_string_trait_impl, clippy::toplevel_ref_arg, clippy::trim_split_whitespace, clippy::unnecessary_fallible_conversions, clippy::unnecessary_fold, clippy::unnecessary_lazy_evaluations, clippy::unnecessary_mut_passed, clippy::unnecessary_owned_empty_strings, clippy::unsafe_removed_from_name, clippy::unused_enumerate_index, clippy::unused_unit, clippy::unusual_byte_groupings, clippy::unwrap_or_default, clippy::upper_case_acronyms, clippy::while_let_on_iterator, clippy::write_literal, clippy::write_with_newline, clippy::writeln_empty_string, clippy::wrong_self_convention, clippy::zero_ptr"##, + description: r##"lint group for: clippy::assertions_on_constants, clippy::assign_op_pattern, clippy::blocks_in_conditions, clippy::bool_assert_comparison, clippy::borrow_interior_mutable_const, clippy::box_default, clippy::builtin_type_shadow, clippy::byte_char_slices, clippy::bytes_nth, clippy::chars_last_cmp, clippy::chars_next_cmp, clippy::cmp_null, clippy::collapsible_else_if, clippy::collapsible_if, clippy::collapsible_match, clippy::comparison_chain, clippy::comparison_to_empty, clippy::declare_interior_mutable_const, clippy::default_instead_of_iter_empty, clippy::disallowed_macros, clippy::disallowed_methods, clippy::disallowed_names, clippy::disallowed_types, clippy::doc_lazy_continuation, clippy::double_must_use, clippy::double_neg, clippy::duplicate_underscore_argument, clippy::enum_variant_names, clippy::err_expect, clippy::excessive_precision, clippy::field_reassign_with_default, clippy::filter_map_bool_then, clippy::fn_to_numeric_cast, clippy::fn_to_numeric_cast_with_truncation, clippy::for_kv_map, clippy::from_over_into, clippy::from_str_radix_10, clippy::get_first, clippy::if_same_then_else, clippy::implicit_saturating_add, clippy::implicit_saturating_sub, clippy::inconsistent_digit_grouping, clippy::infallible_destructuring_match, clippy::inherent_to_string, clippy::init_numbered_fields, clippy::into_iter_on_ref, clippy::is_digit_ascii_radix, clippy::items_after_test_module, clippy::iter_cloned_collect, clippy::iter_next_slice, clippy::iter_nth, clippy::iter_nth_zero, clippy::iter_skip_next, clippy::just_underscores_and_digits, clippy::legacy_numeric_constants, clippy::len_without_is_empty, clippy::len_zero, clippy::let_and_return, clippy::let_unit_value, clippy::main_recursion, clippy::manual_async_fn, clippy::manual_bits, clippy::manual_is_ascii_check, clippy::manual_is_finite, clippy::manual_is_infinite, clippy::manual_map, clippy::manual_next_back, clippy::manual_non_exhaustive, clippy::manual_pattern_char_comparison, clippy::manual_range_contains, clippy::manual_rotate, clippy::manual_saturating_arithmetic, clippy::manual_while_let_some, clippy::map_clone, clippy::map_collect_result_unit, clippy::match_like_matches_macro, clippy::match_overlapping_arm, clippy::match_ref_pats, clippy::match_result_ok, clippy::mem_replace_option_with_none, clippy::mem_replace_with_default, clippy::missing_enforced_import_renames, clippy::missing_safety_doc, clippy::mixed_attributes_style, clippy::mixed_case_hex_literals, clippy::module_inception, clippy::must_use_unit, clippy::mut_mutex_lock, clippy::needless_borrow, clippy::needless_borrows_for_generic_args, clippy::needless_doctest_main, clippy::needless_else, clippy::needless_late_init, clippy::needless_parens_on_range_literals, clippy::needless_pub_self, clippy::needless_range_loop, clippy::needless_return, clippy::needless_return_with_question_mark, clippy::neg_multiply, clippy::new_ret_no_self, clippy::new_without_default, clippy::non_minimal_cfg, clippy::obfuscated_if_else, clippy::ok_expect, clippy::op_ref, clippy::option_map_or_err_ok, clippy::option_map_or_none, clippy::partialeq_to_none, clippy::print_literal, clippy::print_with_newline, clippy::println_empty_string, clippy::ptr_arg, clippy::ptr_eq, clippy::question_mark, clippy::redundant_closure, clippy::redundant_field_names, clippy::redundant_pattern, clippy::redundant_pattern_matching, clippy::redundant_static_lifetimes, clippy::result_map_or_into_option, clippy::result_unit_err, clippy::same_item_push, clippy::self_named_constructors, clippy::should_implement_trait, clippy::single_char_add_str, clippy::single_component_path_imports, clippy::single_match, clippy::string_extend_chars, clippy::tabs_in_doc_comments, clippy::to_digit_is_some, clippy::to_string_trait_impl, clippy::too_long_first_doc_paragraph, clippy::toplevel_ref_arg, clippy::trim_split_whitespace, clippy::unnecessary_fallible_conversions, clippy::unnecessary_fold, clippy::unnecessary_lazy_evaluations, clippy::unnecessary_mut_passed, clippy::unnecessary_owned_empty_strings, clippy::unsafe_removed_from_name, clippy::unused_enumerate_index, clippy::unused_unit, clippy::unusual_byte_groupings, clippy::unwrap_or_default, clippy::upper_case_acronyms, clippy::while_let_on_iterator, clippy::write_literal, clippy::write_with_newline, clippy::writeln_empty_string, clippy::wrong_self_convention, clippy::zero_ptr"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::assertions_on_constants", @@ -14751,6 +19684,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ "clippy::tabs_in_doc_comments", "clippy::to_digit_is_some", "clippy::to_string_trait_impl", + "clippy::too_long_first_doc_paragraph", "clippy::toplevel_ref_arg", "clippy::trim_split_whitespace", "clippy::unnecessary_fallible_conversions", @@ -14776,6 +19710,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[ lint: Lint { label: "clippy::suspicious", description: r##"lint group for: clippy::almost_complete_range, clippy::arc_with_non_send_sync, clippy::await_holding_invalid_type, clippy::await_holding_lock, clippy::await_holding_refcell_ref, clippy::blanket_clippy_restriction_lints, clippy::cast_abs_to_unsigned, clippy::cast_enum_constructor, clippy::cast_enum_truncation, clippy::cast_nan_to_int, clippy::cast_slice_from_raw_parts, clippy::const_is_empty, clippy::crate_in_macro_def, clippy::deprecated_clippy_cfg_attr, clippy::drop_non_drop, clippy::duplicate_mod, clippy::duplicated_attributes, clippy::empty_docs, clippy::empty_loop, clippy::float_equality_without_abs, clippy::forget_non_drop, clippy::four_forward_slashes, clippy::from_raw_with_void_ptr, clippy::incompatible_msrv, clippy::ineffective_open_options, clippy::iter_out_of_bounds, clippy::join_absolute_paths, clippy::let_underscore_future, clippy::lines_filter_map_ok, clippy::macro_metavars_in_unsafe, clippy::manual_unwrap_or_default, clippy::misnamed_getters, clippy::misrefactored_assign_op, clippy::missing_transmute_annotations, clippy::multi_assignments, clippy::multiple_bound_locations, clippy::mut_range_bound, clippy::mutable_key_type, clippy::needless_character_iteration, clippy::needless_maybe_sized, clippy::no_effect_replace, clippy::non_canonical_clone_impl, clippy::non_canonical_partial_ord_impl, clippy::octal_escapes, clippy::path_ends_with_ext, clippy::permissions_set_readonly_false, clippy::print_in_format_impl, clippy::rc_clone_in_vec_init, clippy::repeat_vec_with_capacity, clippy::single_range_in_vec_init, clippy::size_of_ref, clippy::suspicious_arithmetic_impl, clippy::suspicious_assignment_formatting, clippy::suspicious_command_arg_space, clippy::suspicious_doc_comments, clippy::suspicious_else_formatting, clippy::suspicious_map, clippy::suspicious_op_assign_impl, clippy::suspicious_open_options, clippy::suspicious_to_owned, clippy::suspicious_unary_op_formatting, clippy::swap_ptr_to_ref, clippy::test_attr_in_doctest, clippy::type_id_on_box, clippy::unconditional_recursion, clippy::unnecessary_clippy_cfg, clippy::unnecessary_get_then_check, clippy::unnecessary_result_map_or_else, clippy::zero_repeat_side_effects"##, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, }, children: &[ "clippy::almost_complete_range", diff --git a/crates/ide-db/src/lib.rs b/crates/ide-db/src/lib.rs index 81260c3e080a..1f77ea1ec66c 100644 --- a/crates/ide-db/src/lib.rs +++ b/crates/ide-db/src/lib.rs @@ -327,3 +327,11 @@ impl<'a> Ranker<'a> { | ((no_tt_parent as usize) << 3) } } + +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum Severity { + Error, + Warning, + WeakWarning, + Allow, +} diff --git a/crates/ide-diagnostics/src/handlers/missing_unsafe.rs b/crates/ide-diagnostics/src/handlers/missing_unsafe.rs index a630d3c7c36d..9fc4d6b5d419 100644 --- a/crates/ide-diagnostics/src/handlers/missing_unsafe.rs +++ b/crates/ide-diagnostics/src/handlers/missing_unsafe.rs @@ -574,14 +574,47 @@ fn main() { } #[test] - fn unsafe_op_in_unsafe_fn_allowed_by_default() { + fn unsafe_op_in_unsafe_fn_allowed_by_default_in_edition_2021() { check_diagnostics( r#" +//- /lib.rs crate:foo edition:2021 unsafe fn foo(p: *mut i32) { *p = 123; } "#, - ) + ); + check_diagnostics( + r#" +//- /lib.rs crate:foo edition:2021 +#![deny(warnings)] +unsafe fn foo(p: *mut i32) { + *p = 123; +} + "#, + ); + } + + #[test] + fn unsafe_op_in_unsafe_fn_warn_by_default_in_edition_2024() { + check_diagnostics( + r#" +//- /lib.rs crate:foo edition:2024 +unsafe fn foo(p: *mut i32) { + *p = 123; + //^^💡 warn: this operation is unsafe and requires an unsafe function or block +} + "#, + ); + check_diagnostics( + r#" +//- /lib.rs crate:foo edition:2024 +#![deny(warnings)] +unsafe fn foo(p: *mut i32) { + *p = 123; + //^^💡 error: this operation is unsafe and requires an unsafe function or block +} + "#, + ); } #[test] diff --git a/crates/ide-diagnostics/src/lib.rs b/crates/ide-diagnostics/src/lib.rs index 1f1b6478d360..6bc233eef8f0 100644 --- a/crates/ide-diagnostics/src/lib.rs +++ b/crates/ide-diagnostics/src/lib.rs @@ -83,12 +83,12 @@ use hir::{db::ExpandDatabase, diagnostics::AnyDiagnostic, Crate, HirFileId, InFi use ide_db::{ assists::{Assist, AssistId, AssistKind, AssistResolveStrategy}, base_db::SourceDatabase, - generated::lints::{LintGroup, CLIPPY_LINT_GROUPS, DEFAULT_LINT_GROUPS}, + generated::lints::{Lint, LintGroup, CLIPPY_LINT_GROUPS, DEFAULT_LINTS, DEFAULT_LINT_GROUPS}, imports::insert_use::InsertUseConfig, label::Label, source_change::SourceChange, syntax_helpers::node_ext::parse_tt_as_comma_sep_paths, - EditionedFileId, FileId, FileRange, FxHashMap, FxHashSet, RootDatabase, SnippetCap, + EditionedFileId, FileId, FileRange, FxHashMap, FxHashSet, RootDatabase, Severity, SnippetCap, }; use itertools::Itertools; use syntax::{ @@ -209,14 +209,6 @@ impl Diagnostic { } } -#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] -pub enum Severity { - Error, - Warning, - WeakWarning, - Allow, -} - #[derive(Clone, Debug, PartialEq, Eq)] pub enum ExprFillDefaultMode { Todo, @@ -560,26 +552,35 @@ fn handle_diag_from_macros( // `__RA_EVERY_LINT` is a fake lint group to allow every lint in proc macros -static RUSTC_LINT_GROUPS_DICT: LazyLock>> = - LazyLock::new(|| build_group_dict(DEFAULT_LINT_GROUPS, &["warnings", "__RA_EVERY_LINT"], "")); +struct BuiltLint { + lint: &'static Lint, + groups: Vec<&'static str>, +} -static CLIPPY_LINT_GROUPS_DICT: LazyLock>> = - LazyLock::new(|| build_group_dict(CLIPPY_LINT_GROUPS, &["__RA_EVERY_LINT"], "clippy::")); +static RUSTC_LINTS: LazyLock> = + LazyLock::new(|| build_lints_map(DEFAULT_LINTS, DEFAULT_LINT_GROUPS, "")); + +static CLIPPY_LINTS: LazyLock> = LazyLock::new(|| { + build_lints_map(ide_db::generated::lints::CLIPPY_LINTS, CLIPPY_LINT_GROUPS, "clippy::") +}); // FIXME: Autogenerate this instead of enumerating by hand. static LINTS_TO_REPORT_IN_EXTERNAL_MACROS: LazyLock> = LazyLock::new(|| FxHashSet::from_iter([])); -fn build_group_dict( +fn build_lints_map( + lints: &'static [Lint], lint_group: &'static [LintGroup], - all_groups: &'static [&'static str], prefix: &'static str, -) -> FxHashMap<&'static str, Vec<&'static str>> { - let mut map_with_prefixes: FxHashMap<&str, Vec<&str>> = FxHashMap::default(); +) -> FxHashMap<&'static str, BuiltLint> { + let mut map_with_prefixes: FxHashMap<_, _> = lints + .iter() + .map(|lint| (lint.label, BuiltLint { lint, groups: vec![lint.label, "__RA_EVERY_LINT"] })) + .collect(); for g in lint_group { let mut add_children = |label: &'static str| { for child in g.children { - map_with_prefixes.entry(child).or_default().push(label); + map_with_prefixes.get_mut(child).unwrap().groups.push(label); } }; add_children(g.lint.label); @@ -589,18 +590,9 @@ fn build_group_dict( add_children("bad_style"); } } - for (lint, groups) in map_with_prefixes.iter_mut() { - groups.push(lint); - groups.extend_from_slice(all_groups); - } map_with_prefixes.into_iter().map(|(k, v)| (k.strip_prefix(prefix).unwrap(), v)).collect() } -/// Thd default severity for lints that are not warn by default. -// FIXME: Autogenerate this instead of write manually. -static LINTS_DEFAULT_SEVERITY: LazyLock> = - LazyLock::new(|| FxHashMap::from_iter([("unsafe_op_in_unsafe_fn", Severity::Allow)])); - fn handle_lints( sema: &Semantics<'_, RootDatabase>, cache: &mut FxHashMap>, @@ -610,10 +602,12 @@ fn handle_lints( ) { for (node, diag) in diagnostics { let lint = match diag.code { - DiagnosticCode::RustcLint(lint) | DiagnosticCode::Clippy(lint) => lint, + DiagnosticCode::RustcLint(lint) => RUSTC_LINTS[lint].lint, + DiagnosticCode::Clippy(lint) => CLIPPY_LINTS[lint].lint, _ => panic!("non-lint passed to `handle_lints()`"), }; - if let Some(&default_severity) = LINTS_DEFAULT_SEVERITY.get(lint) { + let default_severity = default_lint_severity(lint, edition); + if !(default_severity == Severity::Allow && diag.severity == Severity::WeakWarning) { diag.severity = default_severity; } @@ -631,6 +625,16 @@ fn handle_lints( } } +fn default_lint_severity(lint: &Lint, edition: Edition) -> Severity { + if lint.deny_since.is_some_and(|e| edition >= e) { + Severity::Error + } else if lint.warn_since.is_some_and(|e| edition >= e) { + Severity::Warning + } else { + lint.default_severity + } +} + fn find_outline_mod_lint_severity( sema: &Semantics<'_, RootDatabase>, node: &InFile, @@ -646,14 +650,14 @@ fn find_outline_mod_lint_severity( let mod_def = sema.to_module_def(&mod_node)?; let module_source_file = sema.module_definition_node(mod_def); let mut result = None; - let lint_groups = lint_groups(&diag.code); + let lint_groups = lint_groups(&diag.code, edition); lint_attrs( sema, ast::AnyHasAttrs::cast(module_source_file.value).expect("SourceFile always has attrs"), edition, ) .for_each(|(lint, severity)| { - if lint_groups.contains(&&*lint) { + if lint_groups.contains(&lint) { result = Some(severity); } }); @@ -729,9 +733,9 @@ fn fill_lint_attrs( } }); - let all_matching_groups = lint_groups(&diag.code) + let all_matching_groups = lint_groups(&diag.code, edition) .iter() - .filter_map(|lint_group| cached.get(&**lint_group)); + .filter_map(|lint_group| cached.get(lint_group)); let cached_severity = all_matching_groups.min_by_key(|it| it.depth).map(|it| it.severity); @@ -743,7 +747,7 @@ fn fill_lint_attrs( // Insert this node's descendants' attributes into any outline descendant, but not including this node. // This must come before inserting this node's own attributes to preserve order. collected_lint_attrs.drain().for_each(|(lint, severity)| { - if diag_severity.is_none() && lint_groups(&diag.code).contains(&&*lint) { + if diag_severity.is_none() && lint_groups(&diag.code, edition).contains(&lint) { diag_severity = Some(severity.severity); } @@ -766,7 +770,7 @@ fn fill_lint_attrs( if let Some(ancestor) = ast::AnyHasAttrs::cast(ancestor) { // Insert this node's attributes into any outline descendant, including this node. lint_attrs(sema, ancestor, edition).for_each(|(lint, severity)| { - if diag_severity.is_none() && lint_groups(&diag.code).contains(&&*lint) { + if diag_severity.is_none() && lint_groups(&diag.code, edition).contains(&lint) { diag_severity = Some(severity); } @@ -796,7 +800,7 @@ fn fill_lint_attrs( return diag_severity; } else if let Some(ancestor) = ast::AnyHasAttrs::cast(ancestor) { lint_attrs(sema, ancestor, edition).for_each(|(lint, severity)| { - if diag_severity.is_none() && lint_groups(&diag.code).contains(&&*lint) { + if diag_severity.is_none() && lint_groups(&diag.code, edition).contains(&lint) { diag_severity = Some(severity); } @@ -897,16 +901,37 @@ fn cfg_attr_lint_attrs( } } -fn lint_groups(lint: &DiagnosticCode) -> &'static [&'static str] { - match lint { +#[derive(Debug)] +struct LintGroups { + groups: &'static [&'static str], + inside_warnings: bool, +} + +impl LintGroups { + fn contains(&self, group: &str) -> bool { + self.groups.contains(&group) || (self.inside_warnings && group == "warnings") + } + + fn iter(&self) -> impl Iterator { + self.groups.iter().copied().chain(self.inside_warnings.then_some("warnings")) + } +} + +fn lint_groups(lint: &DiagnosticCode, edition: Edition) -> LintGroups { + let (groups, inside_warnings) = match lint { DiagnosticCode::RustcLint(name) => { - RUSTC_LINT_GROUPS_DICT.get(name).map(|it| &**it).unwrap_or_default() + let lint = &RUSTC_LINTS[name]; + let inside_warnings = default_lint_severity(lint.lint, edition) == Severity::Warning; + (&lint.groups, inside_warnings) } DiagnosticCode::Clippy(name) => { - CLIPPY_LINT_GROUPS_DICT.get(name).map(|it| &**it).unwrap_or_default() + let lint = &CLIPPY_LINTS[name]; + let inside_warnings = default_lint_severity(lint.lint, edition) == Severity::Warning; + (&lint.groups, inside_warnings) } - _ => &[], - } + _ => panic!("non-lint passed to `handle_lints()`"), + }; + LintGroups { groups, inside_warnings } } fn fix(id: &'static str, label: &str, source_change: SourceChange, target: TextRange) -> Assist { diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs index d053c4b3c93d..75ee735aee03 100644 --- a/crates/ide/src/lib.rs +++ b/crates/ide/src/lib.rs @@ -132,11 +132,9 @@ pub use ide_db::{ search::{ReferenceCategory, SearchScope}, source_change::{FileSystemEdit, SnippetEdit, SourceChange}, symbol_index::Query, - FileId, FilePosition, FileRange, RootDatabase, SymbolKind, -}; -pub use ide_diagnostics::{ - Diagnostic, DiagnosticCode, DiagnosticsConfig, ExprFillDefaultMode, Severity, + FileId, FilePosition, FileRange, RootDatabase, Severity, SymbolKind, }; +pub use ide_diagnostics::{Diagnostic, DiagnosticCode, DiagnosticsConfig, ExprFillDefaultMode}; pub use ide_ssr::SsrError; pub use span::Edition; pub use syntax::{TextRange, TextSize}; diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml index d5255665b46a..3629d275c0c3 100644 --- a/crates/parser/Cargo.toml +++ b/crates/parser/Cargo.toml @@ -18,6 +18,8 @@ ra-ap-rustc_lexer.workspace = true limit.workspace = true tracing = { workspace = true, optional = true } +edition.workspace = true + [dev-dependencies] expect-test = "1.4.0" diff --git a/crates/parser/src/lib.rs b/crates/parser/src/lib.rs index 679492066a38..e461492cc6f9 100644 --- a/crates/parser/src/lib.rs +++ b/crates/parser/src/lib.rs @@ -25,7 +25,6 @@ extern crate ra_ap_rustc_lexer as rustc_lexer; #[cfg(feature = "in-rust-tree")] extern crate rustc_lexer; -mod edition; mod event; mod grammar; mod input; @@ -41,8 +40,9 @@ mod tests; pub(crate) use token_set::TokenSet; +pub use edition::Edition; + pub use crate::{ - edition::Edition, input::Input, lexed_str::LexedStr, output::{Output, Step}, diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 4bc1821ee5ea..01ad3336311f 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -21,6 +21,7 @@ quote = "1.0.20" ungrammar = "1.16.1" either.workspace = true itertools.workspace = true +edition.workspace = true # Avoid adding more dependencies to this crate [lints] diff --git a/xtask/src/codegen/lints.rs b/xtask/src/codegen/lints.rs index f097b5817be5..b1a7c2fb27ed 100644 --- a/xtask/src/codegen/lints.rs +++ b/xtask/src/codegen/lints.rs @@ -1,7 +1,15 @@ //! Generates descriptor structures for unstable features from the unstable book //! and lints from rustc, rustdoc, and clippy. -use std::{borrow::Cow, fs, path::Path}; +#![allow(clippy::disallowed_types)] +use std::{ + collections::{hash_map, HashMap}, + fs, + path::Path, + str::FromStr, +}; + +use edition::Edition; use stdx::format_to; use xshell::{cmd, Shell}; @@ -36,10 +44,17 @@ pub(crate) fn generate(check: bool) { let mut contents = String::from( r" +use span::Edition; + +use crate::Severity; + #[derive(Clone)] pub struct Lint { pub label: &'static str, pub description: &'static str, + pub default_severity: Severity, + pub warn_since: Option, + pub deny_since: Option, } pub struct LintGroup { @@ -68,7 +83,7 @@ pub struct LintGroup { let lints_json = project_root().join("./target/clippy_lints.json"); cmd!( sh, - "curl https://rust-lang.github.io/rust-clippy/master/lints.json --output {lints_json}" + "curl https://rust-lang.github.io/rust-clippy/stable/lints.json --output {lints_json}" ) .run() .unwrap(); @@ -85,6 +100,48 @@ pub struct LintGroup { ); } +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)] +enum Severity { + Allow, + Warn, + Deny, +} + +impl std::fmt::Display for Severity { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "Severity::{}", + match self { + Severity::Allow => "Allow", + Severity::Warn => "Warning", + Severity::Deny => "Error", + } + ) + } +} + +impl FromStr for Severity { + type Err = &'static str; + + fn from_str(s: &str) -> Result { + match s { + "allow" => Ok(Self::Allow), + "warn" => Ok(Self::Warn), + "deny" => Ok(Self::Deny), + _ => Err("invalid severity"), + } + } +} + +#[derive(Debug)] +struct Lint { + description: String, + default_severity: Severity, + warn_since: Option, + deny_since: Option, +} + /// Parses the output of `rustdoc -Whelp` and prints `Lint` and `LintGroup` constants into `buf`. /// /// As of writing, the output of `rustc -Whelp` (not rustdoc) has the following format: @@ -108,52 +165,203 @@ pub struct LintGroup { /// `rustdoc -Whelp` (and any other custom `rustc` driver) adds another two /// tables after the `rustc` ones, with a different title but the same format. fn generate_lint_descriptor(sh: &Shell, buf: &mut String) { - let stdout = cmd!(sh, "rustdoc -Whelp").read().unwrap(); - let lints_pat = "---- ------- -------\n"; - let lint_groups_pat = "---- ---------\n"; - let lints = find_and_slice(&stdout, lints_pat); - let lint_groups = find_and_slice(lints, lint_groups_pat); - let lints_rustdoc = find_and_slice(lint_groups, lints_pat); - let lint_groups_rustdoc = find_and_slice(lints_rustdoc, lint_groups_pat); + fn get_lints_as_text( + stdout: &str, + ) -> ( + impl Iterator + '_, + impl Iterator + '_)> + '_, + impl Iterator + '_, + impl Iterator + '_)> + '_, + ) { + let lints_pat = "---- ------- -------\n"; + let lint_groups_pat = "---- ---------\n"; + let lints = find_and_slice(stdout, lints_pat); + let lint_groups = find_and_slice(lints, lint_groups_pat); + let lints_rustdoc = find_and_slice(lint_groups, lints_pat); + let lint_groups_rustdoc = find_and_slice(lints_rustdoc, lint_groups_pat); + + let lints = lints.lines().take_while(|l| !l.is_empty()).map(|line| { + let (name, rest) = line.trim().split_once(char::is_whitespace).unwrap(); + let (severity, description) = rest.trim().split_once(char::is_whitespace).unwrap(); + (name.trim().replace('-', "_"), description.trim(), severity.parse().unwrap()) + }); + let lint_groups = lint_groups.lines().take_while(|l| !l.is_empty()).map(|line| { + let (name, lints) = line.trim().split_once(char::is_whitespace).unwrap(); + let label = name.trim().replace('-', "_"); + let lint = Lint { + description: format!("lint group for: {}", lints.trim()), + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }; + let children = lints + .split_ascii_whitespace() + .map(|s| s.trim().trim_matches(',').replace('-', "_")); + (label, lint, children) + }); - buf.push_str(r#"pub const DEFAULT_LINTS: &[Lint] = &["#); - buf.push('\n'); + let lints_rustdoc = lints_rustdoc.lines().take_while(|l| !l.is_empty()).map(|line| { + let (name, rest) = line.trim().split_once(char::is_whitespace).unwrap(); + let (severity, description) = rest.trim().split_once(char::is_whitespace).unwrap(); + (name.trim().replace('-', "_"), description.trim(), severity.parse().unwrap()) + }); + let lint_groups_rustdoc = + lint_groups_rustdoc.lines().take_while(|l| !l.is_empty()).map(|line| { + let (name, lints) = line.trim().split_once(char::is_whitespace).unwrap(); + let label = name.trim().replace('-', "_"); + let lint = Lint { + description: format!("lint group for: {}", lints.trim()), + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }; + let children = lints + .split_ascii_whitespace() + .map(|s| s.trim().trim_matches(',').replace('-', "_")); + (label, lint, children) + }); - let lints = lints.lines().take_while(|l| !l.is_empty()).map(|line| { - let (name, rest) = line.trim().split_once(char::is_whitespace).unwrap(); - let (_default_level, description) = rest.trim().split_once(char::is_whitespace).unwrap(); - (name.trim(), Cow::Borrowed(description.trim()), vec![]) - }); - let lint_groups = lint_groups.lines().take_while(|l| !l.is_empty()).map(|line| { - let (name, lints) = line.trim().split_once(char::is_whitespace).unwrap(); - ( - name.trim(), - format!("lint group for: {}", lints.trim()).into(), - lints - .split_ascii_whitespace() - .map(|s| s.trim().trim_matches(',').replace('-', "_")) - .collect(), - ) - }); + (lints, lint_groups, lints_rustdoc, lint_groups_rustdoc) + } - let mut lints = lints.chain(lint_groups).collect::>(); - lints.sort_by(|(ident, ..), (ident2, ..)| ident.cmp(ident2)); + fn insert_lints<'a>( + edition: Edition, + lints_map: &mut HashMap, + lint_groups_map: &mut HashMap)>, + lints: impl Iterator, + lint_groups: impl Iterator)>, + ) { + for (lint_name, lint_description, lint_severity) in lints { + let lint = lints_map.entry(lint_name).or_insert_with(|| Lint { + description: lint_description.to_owned(), + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }); + if lint_severity == Severity::Warn + && lint.warn_since.is_none() + && lint.default_severity < Severity::Warn + { + lint.warn_since = Some(edition); + } + if lint_severity == Severity::Deny + && lint.deny_since.is_none() + && lint.default_severity < Severity::Deny + { + lint.deny_since = Some(edition); + } + } - for (name, description, ..) in &lints { - push_lint_completion(buf, &name.replace('-', "_"), description); + for (group_name, lint, children) in lint_groups { + match lint_groups_map.entry(group_name) { + hash_map::Entry::Vacant(entry) => { + entry.insert((lint, Vec::from_iter(children))); + } + hash_map::Entry::Occupied(mut entry) => { + // Overwrite, because some groups (such as edition incompatibility) are changed. + *entry.get_mut() = (lint, Vec::from_iter(children)); + } + } + } + } + + fn get_lints( + sh: &Shell, + edition: Edition, + lints_map: &mut HashMap, + lint_groups_map: &mut HashMap)>, + lints_rustdoc_map: &mut HashMap, + lint_groups_rustdoc_map: &mut HashMap)>, + ) { + let edition_str = edition.to_string(); + let stdout = cmd!(sh, "rustdoc +nightly -Whelp -Zunstable-options --edition={edition_str}") + .read() + .unwrap(); + let (lints, lint_groups, lints_rustdoc, lint_groups_rustdoc) = get_lints_as_text(&stdout); + + insert_lints(edition, lints_map, lint_groups_map, lints, lint_groups); + insert_lints( + edition, + lints_rustdoc_map, + lint_groups_rustdoc_map, + lints_rustdoc, + lint_groups_rustdoc, + ); + } + + let basic_lints = cmd!(sh, "rustdoc +nightly -Whelp --edition=2015").read().unwrap(); + let (lints, lint_groups, lints_rustdoc, lint_groups_rustdoc) = get_lints_as_text(&basic_lints); + + let mut lints = lints + .map(|(label, description, severity)| { + ( + label, + Lint { + description: description.to_owned(), + default_severity: severity, + warn_since: None, + deny_since: None, + }, + ) + }) + .collect::>(); + let mut lint_groups = lint_groups + .map(|(label, lint, children)| (label, (lint, Vec::from_iter(children)))) + .collect::>(); + let mut lints_rustdoc = lints_rustdoc + .map(|(label, description, severity)| { + ( + label, + Lint { + description: description.to_owned(), + default_severity: severity, + warn_since: None, + deny_since: None, + }, + ) + }) + .collect::>(); + let mut lint_groups_rustdoc = lint_groups_rustdoc + .map(|(label, lint, children)| (label, (lint, Vec::from_iter(children)))) + .collect::>(); + + for edition in Edition::iter().skip(1) { + get_lints( + sh, + edition, + &mut lints, + &mut lint_groups, + &mut lints_rustdoc, + &mut lint_groups_rustdoc, + ); + } + + let mut lints = Vec::from_iter(lints); + lints.sort_unstable_by(|a, b| a.0.cmp(&b.0)); + let mut lint_groups = Vec::from_iter(lint_groups); + lint_groups.sort_unstable_by(|a, b| a.0.cmp(&b.0)); + let mut lints_rustdoc = Vec::from_iter(lints_rustdoc); + lints_rustdoc.sort_unstable_by(|a, b| a.0.cmp(&b.0)); + let mut lint_groups_rustdoc = Vec::from_iter(lint_groups_rustdoc); + lint_groups_rustdoc.sort_unstable_by(|a, b| a.0.cmp(&b.0)); + + buf.push_str(r#"pub const DEFAULT_LINTS: &[Lint] = &["#); + buf.push('\n'); + + for (name, lint) in &lints { + push_lint_completion(buf, name, lint); + } + for (name, (group, _)) in &lint_groups { + push_lint_completion(buf, name, group); } buf.push_str("];\n\n"); buf.push_str(r#"pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &["#); - for (name, description, children) in &lints { - if !children.is_empty() { - // HACK: warnings is emitted with a general description, not with its members - if name == &"warnings" { - push_lint_group(buf, name, description, &Vec::new()); - continue; - } - push_lint_group(buf, &name.replace('-', "_"), description, children); + for (name, (lint, children)) in &lint_groups { + if name == "warnings" { + continue; } + push_lint_group(buf, name, lint, children); } buf.push('\n'); buf.push_str("];\n"); @@ -164,37 +372,17 @@ fn generate_lint_descriptor(sh: &Shell, buf: &mut String) { buf.push_str(r#"pub const RUSTDOC_LINTS: &[Lint] = &["#); buf.push('\n'); - let lints_rustdoc = lints_rustdoc.lines().take_while(|l| !l.is_empty()).map(|line| { - let (name, rest) = line.trim().split_once(char::is_whitespace).unwrap(); - let (_default_level, description) = rest.trim().split_once(char::is_whitespace).unwrap(); - (name.trim(), Cow::Borrowed(description.trim()), vec![]) - }); - let lint_groups_rustdoc = - lint_groups_rustdoc.lines().take_while(|l| !l.is_empty()).map(|line| { - let (name, lints) = line.trim().split_once(char::is_whitespace).unwrap(); - ( - name.trim(), - format!("lint group for: {}", lints.trim()).into(), - lints - .split_ascii_whitespace() - .map(|s| s.trim().trim_matches(',').replace('-', "_")) - .collect(), - ) - }); - - let mut lints_rustdoc = lints_rustdoc.chain(lint_groups_rustdoc).collect::>(); - lints_rustdoc.sort_by(|(ident, ..), (ident2, ..)| ident.cmp(ident2)); - - for (name, description, ..) in &lints_rustdoc { - push_lint_completion(buf, &name.replace('-', "_"), description) + for (name, lint) in &lints_rustdoc { + push_lint_completion(buf, name, lint); + } + for (name, (group, _)) in &lint_groups_rustdoc { + push_lint_completion(buf, name, group); } buf.push_str("];\n\n"); buf.push_str(r#"pub const RUSTDOC_LINT_GROUPS: &[LintGroup] = &["#); - for (name, description, children) in &lints_rustdoc { - if !children.is_empty() { - push_lint_group(buf, &name.replace('-', "_"), description, children); - } + for (name, (lint, children)) in &lint_groups_rustdoc { + push_lint_group(buf, name, lint, children); } buf.push('\n'); buf.push_str("];\n"); @@ -228,13 +416,19 @@ fn generate_feature_descriptor(buf: &mut String, src_dir: &Path) { buf.push_str(r#"pub const FEATURES: &[Lint] = &["#); for (feature_ident, doc) in features.into_iter() { - push_lint_completion(buf, &feature_ident, &doc) + let lint = Lint { + description: doc, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }; + push_lint_completion(buf, &feature_ident, &lint); } buf.push('\n'); buf.push_str("];\n"); } -#[derive(Default)] +#[derive(Debug, Default)] struct ClippyLint { help: String, id: String, @@ -295,8 +489,14 @@ fn generate_descriptor_clippy(buf: &mut String, path: &Path) { buf.push('\n'); for clippy_lint in clippy_lints.into_iter() { let lint_ident = format!("clippy::{}", clippy_lint.id); - let doc = clippy_lint.help; - push_lint_completion(buf, &lint_ident, &doc); + let lint = Lint { + description: clippy_lint.help, + // Allow clippy lints by default, not all users want them. + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }; + push_lint_completion(buf, &lint_ident, &lint); } buf.push_str("];\n"); @@ -306,33 +506,59 @@ fn generate_descriptor_clippy(buf: &mut String, path: &Path) { if !children.is_empty() { let lint_ident = format!("clippy::{id}"); let description = format!("lint group for: {}", children.join(", ")); - push_lint_group(buf, &lint_ident, &description, &children); + let lint = Lint { + description, + default_severity: Severity::Allow, + warn_since: None, + deny_since: None, + }; + push_lint_group(buf, &lint_ident, &lint, &children); } } buf.push('\n'); buf.push_str("];\n"); } -fn push_lint_completion(buf: &mut String, label: &str, description: &str) { +fn push_lint_completion(buf: &mut String, name: &str, lint: &Lint) { format_to!( buf, r###" Lint {{ label: "{}", description: r##"{}"##, - }},"###, - label, - description, + default_severity: {}, + warn_since: "###, + name, + lint.description, + lint.default_severity, + ); + match lint.warn_since { + Some(edition) => format_to!(buf, "Some(Edition::Edition{edition})"), + None => buf.push_str("None"), + } + format_to!( + buf, + r###", + deny_since: "### + ); + match lint.deny_since { + Some(edition) => format_to!(buf, "Some(Edition::Edition{edition})"), + None => buf.push_str("None"), + } + format_to!( + buf, + r###", + }},"### ); } -fn push_lint_group(buf: &mut String, label: &str, description: &str, children: &[String]) { +fn push_lint_group(buf: &mut String, name: &str, lint: &Lint, children: &[String]) { buf.push_str( r###" LintGroup { lint: "###, ); - push_lint_completion(buf, label, description); + push_lint_completion(buf, name, lint); let children = format!( "&[{}]",