|
|
|
@@ -1,9 +1,16 @@
|
|
|
|
|
//! 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<Edition>,
|
|
|
|
|
pub deny_since: Option<Edition>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct LintGroup {
|
|
|
|
@@ -12,803 +19,1632 @@ pub struct LintGroup {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub const DEFAULT_LINTS: &[Lint] = &[
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_unsupported_vector_types",
|
|
|
|
|
description: r##"this function call or definition uses a vector type which is not enabled"##,
|
|
|
|
|
default_severity: Severity::Warning,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
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: "dangling_pointers_from_temporaries",
|
|
|
|
|
description: r##"detects getting a pointer from a temporary"##,
|
|
|
|
|
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: "temporary_cstring_as_ptr",
|
|
|
|
|
description: r##"detects getting the inner pointer of a temporary `CString`"##,
|
|
|
|
|
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: "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"##,
|
|
|
|
|
},
|
|
|
|
|
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<Foo = Bar>`"##,
|
|
|
|
|
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, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, 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, 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-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, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions"##,
|
|
|
|
|
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, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn"##,
|
|
|
|
|
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, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, 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, 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-fn-ptr-calling-conventions, wasm-c-abi"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
children: &[
|
|
|
|
|
"deref_into_dyn_supertrait",
|
|
|
|
|
"abi_unsupported_vector_types",
|
|
|
|
|
"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",
|
|
|
|
@@ -817,11 +1653,11 @@ pub struct LintGroup {
|
|
|
|
|
"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",
|
|
|
|
@@ -831,15 +1667,17 @@ pub struct LintGroup {
|
|
|
|
|
"uninhabited_static",
|
|
|
|
|
"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 +1685,9 @@ pub struct 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 +1695,9 @@ pub struct 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 +1705,9 @@ pub struct 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 +1715,9 @@ pub struct 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 +1730,9 @@ pub struct 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",
|
|
|
|
@@ -892,38 +1745,56 @@ pub struct LintGroup {
|
|
|
|
|
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"##,
|
|
|
|
|
description: r##"lint group for: ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
children: &[
|
|
|
|
|
"ellipsis_inclusive_range_patterns",
|
|
|
|
|
"array_into_iter",
|
|
|
|
|
"non_fmt_panics",
|
|
|
|
|
"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",
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
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, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
children: &[
|
|
|
|
|
"keyword_idents_2024",
|
|
|
|
|
"deprecated_safe",
|
|
|
|
|
"missing_unsafe_on_extern",
|
|
|
|
|
"edition_2024_expr_fragment_specifier",
|
|
|
|
|
"boxed_slice_into_iter",
|
|
|
|
|
"impl_trait_overcaptures",
|
|
|
|
|
"if_let_rescope",
|
|
|
|
|
"static_mut_refs",
|
|
|
|
|
"dependency_on_unit_never_type_fallback",
|
|
|
|
|
"deprecated_safe_2024",
|
|
|
|
|
"missing_unsafe_on_extern",
|
|
|
|
|
"never_type_fallback_flowing_into_unsafe",
|
|
|
|
|
"rust_2024_guarded_string_incompatible_syntax",
|
|
|
|
|
"rust_2024_incompatible_pat",
|
|
|
|
|
"rust_2024_prelude_collisions",
|
|
|
|
|
"tail_expr_drop_order",
|
|
|
|
|
"unsafe_attr_outside_unsafe",
|
|
|
|
|
"unsafe_op_in_unsafe_fn",
|
|
|
|
|
"boxed_slice_into_iter",
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
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 +1821,99 @@ pub struct 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 +1921,9 @@ pub struct 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 +1941,20 @@ pub struct 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 +1965,9 @@ pub struct LintGroup {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_avr_interrupt",
|
|
|
|
@@ -1053,6 +1979,9 @@ pub struct LintGroup {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_c_cmse_nonsecure_call",
|
|
|
|
@@ -1145,6 +2074,9 @@ pub fn call_nonsecure_function(addr: usize) -> u32 {
|
|
|
|
|
pop {r7, pc}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_msp430_interrupt",
|
|
|
|
@@ -1191,6 +2123,9 @@ extern "msp430-interrupt" fn tim0() {
|
|
|
|
|
c000: 00 13 reti
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_ptx",
|
|
|
|
@@ -1255,6 +2190,9 @@ pub fn device_function() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_riscv_interrupt",
|
|
|
|
@@ -1266,6 +2204,9 @@ pub fn device_function() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_unadjusted",
|
|
|
|
@@ -1275,6 +2216,9 @@ pub fn device_function() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_vectorcall",
|
|
|
|
@@ -1298,6 +2242,9 @@ fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "abi_x86_interrupt",
|
|
|
|
@@ -1309,6 +2256,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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 +2284,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "addr_parse_ascii",
|
|
|
|
@@ -1331,6 +2298,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "adt_const_params",
|
|
|
|
@@ -1370,6 +2340,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "alloc_error_handler",
|
|
|
|
@@ -1381,6 +2354,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "alloc_error_hook",
|
|
|
|
@@ -1392,6 +2368,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "alloc_internals",
|
|
|
|
@@ -1401,6 +2380,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "alloc_layout_extra",
|
|
|
|
@@ -1412,6 +2394,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "allocator_api",
|
|
|
|
@@ -1431,6 +2416,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
TBD
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "allocator_internals",
|
|
|
|
@@ -1442,6 +2430,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "allow_internal_unsafe",
|
|
|
|
@@ -1451,6 +2442,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "allow_internal_unstable",
|
|
|
|
@@ -1460,6 +2454,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "anonymous_lifetime_in_impl_trait",
|
|
|
|
@@ -1469,6 +2466,23 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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 +2494,23 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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 +2522,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_chunks",
|
|
|
|
@@ -1502,6 +2536,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_into_iter_constructors",
|
|
|
|
@@ -1513,6 +2550,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_ptr_get",
|
|
|
|
@@ -1524,6 +2564,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_repeat",
|
|
|
|
@@ -1535,6 +2578,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_try_from_fn",
|
|
|
|
@@ -1546,6 +2592,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_try_map",
|
|
|
|
@@ -1557,6 +2606,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "array_windows",
|
|
|
|
@@ -1568,6 +2620,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "as_array_of_cells",
|
|
|
|
@@ -1579,6 +2634,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ascii_char",
|
|
|
|
@@ -1590,6 +2648,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ascii_char_variants",
|
|
|
|
@@ -1601,21 +2662,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 <expr>` operand type to `asm!` and `global_asm!`.
|
|
|
|
|
- `<expr>` 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",
|
|
|
|
@@ -1639,8 +2688,7 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
- MSP430
|
|
|
|
|
- M68k
|
|
|
|
|
- CSKY
|
|
|
|
|
- s390x
|
|
|
|
|
- Arm64EC
|
|
|
|
|
- SPARC
|
|
|
|
|
|
|
|
|
|
## Register classes
|
|
|
|
|
|
|
|
|
@@ -1652,9 +2700,11 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| NVPTX | `reg32` | None\* | `r` |
|
|
|
|
|
| NVPTX | `reg64` | None\* | `l` |
|
|
|
|
|
| Hexagon | `reg` | `r[0-28]` | `r` |
|
|
|
|
|
| PowerPC | `reg` | `r[0-31]` | `r` |
|
|
|
|
|
| PowerPC | `reg_nonzero` | `r[1-31]` | `b` |
|
|
|
|
|
| Hexagon | `preg` | `p[0-3]` | Only clobbers |
|
|
|
|
|
| PowerPC | `reg` | `r0`, `r[3-12]`, `r[14-28]` | `r` |
|
|
|
|
|
| PowerPC | `reg_nonzero` | `r[3-12]`, `r[14-28]` | `b` |
|
|
|
|
|
| PowerPC | `freg` | `f[0-31]` | `f` |
|
|
|
|
|
| PowerPC | `vreg` | `v[0-31]` | `v` |
|
|
|
|
|
| PowerPC | `cr` | `cr[0-7]`, `cr` | Only clobbers |
|
|
|
|
|
| PowerPC | `xer` | `xer` | Only clobbers |
|
|
|
|
|
| wasm32 | `local` | None\* | `r` |
|
|
|
|
@@ -1671,11 +2721,8 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| M68k | `reg_addr` | `a[0-3]` | `a` |
|
|
|
|
|
| CSKY | `reg` | `r[0-31]` | `r` |
|
|
|
|
|
| CSKY | `freg` | `f[0-31]` | `f` |
|
|
|
|
|
| s390x | `reg` | `r[0-10]`, `r[12-14]` | `r` |
|
|
|
|
|
| s390x | `freg` | `f[0-15]` | `f` |
|
|
|
|
|
| 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` |
|
|
|
|
|
| SPARC | `reg` | `r[2-29]` | `r` |
|
|
|
|
|
| SPARC | `yreg` | `y` | Only clobbers |
|
|
|
|
|
|
|
|
|
|
> **Notes**:
|
|
|
|
|
> - NVPTX doesn't have a fixed register set, so named registers are not supported.
|
|
|
|
@@ -1694,9 +2741,12 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| NVPTX | `reg32` | None | `i8`, `i16`, `i32`, `f32` |
|
|
|
|
|
| NVPTX | `reg64` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64` |
|
|
|
|
|
| Hexagon | `reg` | None | `i8`, `i16`, `i32`, `f32` |
|
|
|
|
|
| PowerPC | `reg` | None | `i8`, `i16`, `i32` |
|
|
|
|
|
| PowerPC | `reg_nonzero` | None | `i8`, `i16`, `i32` |
|
|
|
|
|
| Hexagon | `preg` | N/A | Only clobbers |
|
|
|
|
|
| PowerPC | `reg` | None | `i8`, `i16`, `i32`, `i64` (powerpc64 only) |
|
|
|
|
|
| PowerPC | `reg_nonzero` | None | `i8`, `i16`, `i32`, `i64` (powerpc64 only) |
|
|
|
|
|
| PowerPC | `freg` | None | `f32`, `f64` |
|
|
|
|
|
| PowerPC | `vreg` | `altivec` | `i8x16`, `i16x8`, `i32x4`, `f32x4` |
|
|
|
|
|
| PowerPC | `vreg` | `vsx` | `f32`, `f64`, `i64x2`, `f64x2` |
|
|
|
|
|
| PowerPC | `cr` | N/A | Only clobbers |
|
|
|
|
|
| PowerPC | `xer` | N/A | Only clobbers |
|
|
|
|
|
| wasm32 | `local` | None | `i8` `i16` `i32` `i64` `f32` `f64` |
|
|
|
|
@@ -1709,10 +2759,8 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| M68k | `reg_data` | None | `i8`, `i16`, `i32` |
|
|
|
|
|
| CSKY | `reg` | None | `i8`, `i16`, `i32` |
|
|
|
|
|
| CSKY | `freg` | None | `f32`, |
|
|
|
|
|
| s390x | `reg`, `reg_addr` | None | `i8`, `i16`, `i32`, `i64` |
|
|
|
|
|
| s390x | `freg` | None | `f32`, `f64` |
|
|
|
|
|
| Arm64EC | `reg` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64` |
|
|
|
|
|
| Arm64EC | `vreg` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64`, <br> `i8x8`, `i16x4`, `i32x2`, `i64x1`, `f32x2`, `f64x1`, <br> `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |
|
|
|
|
|
| SPARC | `reg` | None | `i8`, `i16`, `i32`, `i64` (SPARC64 only) |
|
|
|
|
|
| SPARC | `yreg` | N/A | Only clobbers |
|
|
|
|
|
|
|
|
|
|
## Register aliases
|
|
|
|
|
|
|
|
|
@@ -1721,6 +2769,10 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| Hexagon | `r29` | `sp` |
|
|
|
|
|
| Hexagon | `r30` | `fr` |
|
|
|
|
|
| Hexagon | `r31` | `lr` |
|
|
|
|
|
| PowerPC | `r1` | `sp` |
|
|
|
|
|
| PowerPC | `r31` | `fp` |
|
|
|
|
|
| PowerPC | `r[0-31]` | `[0-31]` |
|
|
|
|
|
| PowerPC | `f[0-31]` | `fr[0-31]`|
|
|
|
|
|
| BPF | `r[0-10]` | `w[0-10]` |
|
|
|
|
|
| AVR | `XH` | `r27` |
|
|
|
|
|
| AVR | `XL` | `r26` |
|
|
|
|
@@ -1745,12 +2797,10 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| CSKY | `r29` | `rtb` |
|
|
|
|
|
| CSKY | `r30` | `svbr` |
|
|
|
|
|
| CSKY | `r31` | `tls` |
|
|
|
|
|
| Arm64EC | `x[0-30]` | `w[0-30]` |
|
|
|
|
|
| Arm64EC | `x29` | `fp` |
|
|
|
|
|
| Arm64EC | `x30` | `lr` |
|
|
|
|
|
| Arm64EC | `sp` | `wsp` |
|
|
|
|
|
| Arm64EC | `xzr` | `wzr` |
|
|
|
|
|
| Arm64EC | `v[0-15]` | `b[0-15]`, `h[0-15]`, `s[0-15]`, `d[0-15]`, `q[0-15]` |
|
|
|
|
|
| SPARC | `r[0-7]` | `g[0-7]` |
|
|
|
|
|
| SPARC | `r[8-15]` | `o[0-7]` |
|
|
|
|
|
| SPARC | `r[16-23]` | `l[0-7]` |
|
|
|
|
|
| SPARC | `r[24-31]` | `i[0-7]` |
|
|
|
|
|
|
|
|
|
|
> **Notes**:
|
|
|
|
|
> - TI does not mandate a frame pointer for MSP430, but toolchains are allowed
|
|
|
|
@@ -1760,15 +2810,19 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
| Architecture | Unsupported register | Reason |
|
|
|
|
|
| ------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
| All | `sp`, `r15` (s390x) | The stack pointer must be restored to its original value at the end of an asm code block. |
|
|
|
|
|
| All | `fr` (Hexagon), `$fp` (MIPS), `Y` (AVR), `r4` (MSP430), `a6` (M68k), `r11` (s390x), `x29` (Arm64EC) | The frame pointer cannot be used as an input or output. |
|
|
|
|
|
| All | `r19` (Hexagon), `x19` (Arm64EC) | This is used internally by LLVM as a "base pointer" for functions with complex stack frames. |
|
|
|
|
|
| All | `sp`, `r14`/`o6` (SPARC) | The stack pointer must be restored to its original value at the end of an asm code block. |
|
|
|
|
|
| All | `fr` (Hexagon), `fp` (PowerPC), `$fp` (MIPS), `Y` (AVR), `r4` (MSP430), `a6` (M68k), `r30`/`i6` (SPARC) | The frame pointer cannot be used as an input or output. |
|
|
|
|
|
| All | `r19` (Hexagon), `r29` (PowerPC), `r30` (PowerPC) | These are used internally by LLVM as "base pointer" for functions with complex stack frames. |
|
|
|
|
|
| MIPS | `$0` or `$zero` | This is a constant zero register which can't be modified. |
|
|
|
|
|
| MIPS | `$1` or `$at` | Reserved for assembler. |
|
|
|
|
|
| MIPS | `$26`/`$k0`, `$27`/`$k1` | OS-reserved registers. |
|
|
|
|
|
| MIPS | `$28`/`$gp` | Global pointer cannot be used as inputs or outputs. |
|
|
|
|
|
| MIPS | `$ra` | Return address cannot be used as inputs or outputs. |
|
|
|
|
|
| Hexagon | `lr` | This is the link register which cannot be used as an input or output. |
|
|
|
|
|
| PowerPC | `r2`, `r13` | These are system reserved registers. |
|
|
|
|
|
| PowerPC | `lr` | The link register cannot be used as an input or output. |
|
|
|
|
|
| PowerPC | `ctr` | The counter register cannot be used as an input or output. |
|
|
|
|
|
| PowerPC | `vrsave` | The vrsave register cannot be used as an input or output. |
|
|
|
|
|
| AVR | `r0`, `r1`, `r1r0` | Due to an issue in LLVM, the `r0` and `r1` registers cannot be used as inputs or outputs. If modified, they must be restored to their original values before the end of the block. |
|
|
|
|
|
|MSP430 | `r0`, `r2`, `r3` | These are the program counter, status register, and constant generator respectively. Neither the status register nor constant generator can be written to. |
|
|
|
|
|
| M68k | `a4`, `a5` | Used internally by LLVM for the base pointer and global base pointer. |
|
|
|
|
@@ -1778,9 +2832,11 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| CSKY | `r15` | This is the link register. |
|
|
|
|
|
| CSKY | `r[26-30]` | Reserved by its ABI. |
|
|
|
|
|
| CSKY | `r31` | This is the TLS register. |
|
|
|
|
|
| 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. |
|
|
|
|
|
| SPARC | `r0`/`g0` | This is always zero and cannot be used as inputs or outputs. |
|
|
|
|
|
| SPARC | `r1`/`g1` | Used internally by LLVM. |
|
|
|
|
|
| SPARC | `r5`/`g5` | Reserved for system. (SPARC32 only) |
|
|
|
|
|
| SPARC | `r6`/`g6`, `r7`/`g7` | Reserved for system. |
|
|
|
|
|
| SPARC | `r31`/`i7` | Return address cannot be used as inputs or outputs. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Template modifiers
|
|
|
|
@@ -1796,21 +2852,10 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
| PowerPC | `reg` | None | `0` | None |
|
|
|
|
|
| PowerPC | `reg_nonzero` | None | `3` | None |
|
|
|
|
|
| PowerPC | `freg` | None | `0` | None |
|
|
|
|
|
| s390x | `reg` | None | `%r0` | None |
|
|
|
|
|
| s390x | `reg_addr` | None | `%r1` | None |
|
|
|
|
|
| s390x | `freg` | None | `%f0` | None |
|
|
|
|
|
| PowerPC | `vreg` | None | `0` | None |
|
|
|
|
|
| SPARC | `reg` | None | `%o0` | None |
|
|
|
|
|
| CSKY | `reg` | None | `r0` | None |
|
|
|
|
|
| CSKY | `freg` | None | `f0` | None |
|
|
|
|
|
| Arm64EC | `reg` | None | `x0` | `x` |
|
|
|
|
|
| Arm64EC | `reg` | `w` | `w0` | `w` |
|
|
|
|
|
| Arm64EC | `reg` | `x` | `x0` | `x` |
|
|
|
|
|
| Arm64EC | `vreg` | None | `v0` | None |
|
|
|
|
|
| Arm64EC | `vreg` | `v` | `v0` | None |
|
|
|
|
|
| Arm64EC | `vreg` | `b` | `b0` | `b` |
|
|
|
|
|
| Arm64EC | `vreg` | `h` | `h0` | `h` |
|
|
|
|
|
| Arm64EC | `vreg` | `s` | `s0` | `s` |
|
|
|
|
|
| Arm64EC | `vreg` | `d` | `d0` | `d` |
|
|
|
|
|
| Arm64EC | `vreg` | `q` | `q0` | `q` |
|
|
|
|
|
|
|
|
|
|
# Flags covered by `preserves_flags`
|
|
|
|
|
|
|
|
|
@@ -1821,12 +2866,60 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
- The status register `r2`.
|
|
|
|
|
- M68k
|
|
|
|
|
- The condition code register `ccr`.
|
|
|
|
|
- s390x
|
|
|
|
|
- The condition code register `cc`.
|
|
|
|
|
- Arm64EC
|
|
|
|
|
- Condition flags (`NZCV` register).
|
|
|
|
|
- Floating-point status (`FPSR` register).
|
|
|
|
|
- SPARC
|
|
|
|
|
- Integer condition codes (`icc` and `xcc`)
|
|
|
|
|
- Floating-point condition codes (`fcc[0-3]`)
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "asm_experimental_reg",
|
|
|
|
|
description: r##"# `asm_experimental_arch`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133416]
|
|
|
|
|
|
|
|
|
|
[#133416]: https://github.com/rust-lang/rust/issues/133416
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
This tracks support for additional registers in architectures where inline assembly is already stable.
|
|
|
|
|
|
|
|
|
|
## Register classes
|
|
|
|
|
|
|
|
|
|
| Architecture | Register class | Registers | LLVM constraint code |
|
|
|
|
|
| ------------ | -------------- | --------- | -------------------- |
|
|
|
|
|
| s390x | `vreg` | `v[0-31]` | `v` |
|
|
|
|
|
|
|
|
|
|
> **Notes**:
|
|
|
|
|
> - s390x `vreg` is clobber-only in stable.
|
|
|
|
|
|
|
|
|
|
## Register class supported types
|
|
|
|
|
|
|
|
|
|
| Architecture | Register class | Target feature | Allowed types |
|
|
|
|
|
| ------------ | -------------- | -------------- | ------------- |
|
|
|
|
|
| s390x | `vreg` | `vector` | `i32`, `f32`, `i64`, `f64`, `i128`, `f128`, `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |
|
|
|
|
|
|
|
|
|
|
## Register aliases
|
|
|
|
|
|
|
|
|
|
| Architecture | Base register | Aliases |
|
|
|
|
|
| ------------ | ------------- | ------- |
|
|
|
|
|
|
|
|
|
|
## Unsupported registers
|
|
|
|
|
|
|
|
|
|
| Architecture | Unsupported register | Reason |
|
|
|
|
|
| ------------ | -------------------- | ------ |
|
|
|
|
|
|
|
|
|
|
## Template modifiers
|
|
|
|
|
|
|
|
|
|
| Architecture | Register class | Modifier | Example output | LLVM modifier |
|
|
|
|
|
| ------------ | -------------- | -------- | -------------- | ------------- |
|
|
|
|
|
| s390x | `vreg` | None | `%v0` | None |
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "asm_goto",
|
|
|
|
@@ -1853,7 +2946,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The block must have unit type or diverge.
|
|
|
|
|
The block must have unit type or diverge. The block starts a new safety context,
|
|
|
|
|
so despite outer `unsafe`, you need extra unsafe to perform unsafe operations
|
|
|
|
|
within `label <block>`.
|
|
|
|
|
|
|
|
|
|
When `label <block>` is used together with `noreturn` option, it means that the
|
|
|
|
|
assembly will not fallthrough. It's allowed to jump to a label within the
|
|
|
|
@@ -1861,6 +2956,23 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
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_goto_with_outputs",
|
|
|
|
|
description: r##"# `asm_goto_with_outputs`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#119364]
|
|
|
|
|
|
|
|
|
|
[#119364]: https://github.com/rust-lang/rust/issues/119364
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "asm_unwind",
|
|
|
|
@@ -1874,6 +2986,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
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 +3000,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "associated_const_equality",
|
|
|
|
@@ -1896,6 +3014,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "associated_type_defaults",
|
|
|
|
@@ -1907,6 +3028,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_closure",
|
|
|
|
@@ -1918,6 +3042,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_drop",
|
|
|
|
@@ -1929,6 +3056,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_fn_track_caller",
|
|
|
|
@@ -1940,6 +3070,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_fn_traits",
|
|
|
|
@@ -1957,6 +3090,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
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 +3104,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_gen_internals",
|
|
|
|
@@ -1977,6 +3116,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_iter_from_iter",
|
|
|
|
@@ -1988,6 +3130,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_iterator",
|
|
|
|
@@ -1999,6 +3144,23 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "async_trait_bounds",
|
|
|
|
|
description: r##"# `async_trait_bounds`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#62290]
|
|
|
|
|
|
|
|
|
|
[#62290]: https://github.com/rust-lang/rust/issues/62290
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "atomic_from_mut",
|
|
|
|
@@ -2010,6 +3172,9 @@ fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "auto_traits",
|
|
|
|
@@ -2120,6 +3285,23 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
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 +3313,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "backtrace_frames",
|
|
|
|
@@ -2142,6 +3327,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "bigint_helper_methods",
|
|
|
|
@@ -2153,6 +3341,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "binary_heap_drain_sorted",
|
|
|
|
@@ -2164,6 +3355,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "binary_heap_into_iter_sorted",
|
|
|
|
@@ -2175,6 +3369,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "bound_as_ref",
|
|
|
|
@@ -2186,6 +3383,23 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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 +3411,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "box_into_inner",
|
|
|
|
@@ -2208,6 +3425,9 @@ trait matching, this cycle would be an error, but for an auto trait it
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "box_patterns",
|
|
|
|
@@ -2242,6 +3462,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 +3504,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "breakpoint",
|
|
|
|
|
description: r##"# `breakpoint`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133724]
|
|
|
|
|
|
|
|
|
|
[#133724]: https://github.com/rust-lang/rust/issues/133724
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "btree_cursors",
|
|
|
|
@@ -2264,6 +3532,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "btree_entry_insert",
|
|
|
|
|
description: r##"# `btree_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: "btree_extract_if",
|
|
|
|
@@ -2275,6 +3560,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "btree_set_entry",
|
|
|
|
|
description: r##"# `btree_set_entry`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133549]
|
|
|
|
|
|
|
|
|
|
[#133549]: https://github.com/rust-lang/rust/issues/133549
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "btreemap_alloc",
|
|
|
|
@@ -2286,6 +3588,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "buf_read_has_data_left",
|
|
|
|
@@ -2297,28 +3602,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "build_hasher_default_const_new",
|
|
|
|
|
description: r##"# `build_hasher_default_const_new`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#123197]
|
|
|
|
|
|
|
|
|
|
[#123197]: https://github.com/rust-lang/rust/issues/123197
|
|
|
|
|
[#128405]: https://github.com/rust-lang/rust/issues/128405
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "builtin_syntax",
|
|
|
|
@@ -2330,6 +3630,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "c_size_t",
|
|
|
|
@@ -2341,6 +3644,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "c_str_module",
|
|
|
|
@@ -2352,6 +3658,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "c_variadic",
|
|
|
|
@@ -2380,6 +3689,9 @@ fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "c_variadic",
|
|
|
|
@@ -2410,6 +3722,9 @@ fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "c_void_variant",
|
|
|
|
@@ -2419,6 +3734,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "can_vector",
|
|
|
|
@@ -2430,6 +3748,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cell_leak",
|
|
|
|
@@ -2441,6 +3762,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cell_update",
|
|
|
|
@@ -2452,6 +3776,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_accessible",
|
|
|
|
@@ -2463,6 +3790,38 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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 +3833,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_match",
|
|
|
|
@@ -2485,6 +3847,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_overflow_checks",
|
|
|
|
@@ -2496,6 +3861,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_relocation_model",
|
|
|
|
@@ -2507,6 +3875,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_sanitize",
|
|
|
|
@@ -2545,6 +3916,9 @@ fn b() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_sanitizer_cfi",
|
|
|
|
@@ -2556,6 +3930,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_target_compact",
|
|
|
|
@@ -2567,6 +3944,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_target_has_atomic",
|
|
|
|
@@ -2578,6 +3958,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_target_has_atomic_equal_alignment",
|
|
|
|
@@ -2589,6 +3972,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_target_thread_local",
|
|
|
|
@@ -2600,6 +3986,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_ub_checks",
|
|
|
|
@@ -2611,6 +4000,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfg_version",
|
|
|
|
@@ -2650,6 +4042,9 @@ fn b() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cfi_encoding",
|
|
|
|
@@ -2679,17 +4074,9 @@ fn b() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 +4086,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 +4100,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "closure_lifetime_binder",
|
|
|
|
@@ -2732,6 +4114,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "closure_track_caller",
|
|
|
|
@@ -2748,6 +4133,9 @@ fn b() {
|
|
|
|
|
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 +4147,9 @@ fn b() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cmse_nonsecure_entry",
|
|
|
|
@@ -2779,10 +4170,10 @@ fn b() {
|
|
|
|
|
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 +4193,11 @@ fn b() {
|
|
|
|
|
<!-- NOTE(ignore) this example is specific to thumbv8m targets -->
|
|
|
|
|
|
|
|
|
|
``` 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 +4235,9 @@ pub extern "C" fn entry_function(input: u32) -> u32 {
|
|
|
|
|
40: defe udf #254 ; 0xfe
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "coerce_unsized",
|
|
|
|
@@ -2855,6 +4249,9 @@ pub extern "C" fn entry_function(input: u32) -> u32 {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "compiler_builtins",
|
|
|
|
@@ -2864,6 +4261,9 @@ pub extern "C" fn entry_function(input: u32) -> u32 {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "concat_bytes",
|
|
|
|
@@ -2875,6 +4275,9 @@ pub extern "C" fn entry_function(input: u32) -> u32 {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "concat_idents",
|
|
|
|
@@ -2901,39 +4304,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_align_of_val",
|
|
|
|
|
description: r##"# `const_align_of_val`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#46571]
|
|
|
|
|
|
|
|
|
|
[#46571]: https://github.com/rust-lang/rust/issues/46571
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_align_of_val_raw",
|
|
|
|
|
description: r##"# `const_align_of_val_raw`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#46571]
|
|
|
|
|
|
|
|
|
|
[#46571]: https://github.com/rust-lang/rust/issues/46571
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_align_offset",
|
|
|
|
|
description: r##"# `const_align_offset`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#90962]
|
|
|
|
|
|
|
|
|
|
[#90962]: https://github.com/rust-lang/rust/issues/90962
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_alloc_error",
|
|
|
|
@@ -2945,6 +4318,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_alloc_layout",
|
|
|
|
@@ -2956,39 +4332,37 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_arguments_as_str",
|
|
|
|
|
description: r##"# `const_arguments_as_str`
|
|
|
|
|
label: "const_array_as_mut_slice",
|
|
|
|
|
description: r##"# `const_array_as_mut_slice`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#103900]
|
|
|
|
|
The tracking issue for this feature is: [#133333]
|
|
|
|
|
|
|
|
|
|
[#103900]: https://github.com/rust-lang/rust/issues/103900
|
|
|
|
|
[#133333]: https://github.com/rust-lang/rust/issues/133333
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_array_from_ref",
|
|
|
|
|
description: r##"# `const_array_from_ref`
|
|
|
|
|
label: "const_array_each_ref",
|
|
|
|
|
description: r##"# `const_array_each_ref`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#90206]
|
|
|
|
|
The tracking issue for this feature is: [#133289]
|
|
|
|
|
|
|
|
|
|
[#90206]: https://github.com/rust-lang/rust/issues/90206
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_array_into_iter_constructors",
|
|
|
|
|
description: r##"# `const_array_into_iter_constructors`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#91583]
|
|
|
|
|
|
|
|
|
|
[#91583]: https://github.com/rust-lang/rust/issues/91583
|
|
|
|
|
[#133289]: https://github.com/rust-lang/rust/issues/133289
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_async_blocks",
|
|
|
|
@@ -3000,39 +4374,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_atomic_from_ptr",
|
|
|
|
|
description: r##"# `const_atomic_from_ptr`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#108652]
|
|
|
|
|
|
|
|
|
|
[#108652]: https://github.com/rust-lang/rust/issues/108652
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_bigint_helper_methods",
|
|
|
|
|
description: r##"# `const_bigint_helper_methods`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#85532]
|
|
|
|
|
|
|
|
|
|
[#85532]: https://github.com/rust-lang/rust/issues/85532
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_binary_heap_new_in",
|
|
|
|
|
description: r##"# `const_binary_heap_new_in`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#112353]
|
|
|
|
|
|
|
|
|
|
[#112353]: https://github.com/rust-lang/rust/issues/112353
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_black_box",
|
|
|
|
@@ -3042,6 +4386,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_box",
|
|
|
|
@@ -3053,6 +4400,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_btree_len",
|
|
|
|
@@ -3062,17 +4412,37 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_cell_into_inner",
|
|
|
|
|
description: r##"# `const_cell_into_inner`
|
|
|
|
|
label: "const_cell",
|
|
|
|
|
description: r##"# `const_cell`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#78729]
|
|
|
|
|
The tracking issue for this feature is: [#131283]
|
|
|
|
|
|
|
|
|
|
[#78729]: https://github.com/rust-lang/rust/issues/78729
|
|
|
|
|
[#131283]: https://github.com/rust-lang/rust/issues/131283
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_char_classify",
|
|
|
|
|
description: r##"# `const_char_classify`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#132241]
|
|
|
|
|
|
|
|
|
|
[#132241]: https://github.com/rust-lang/rust/issues/132241
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_closures",
|
|
|
|
@@ -3084,28 +4454,51 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_collections_with_hasher",
|
|
|
|
|
description: r##"# `const_collections_with_hasher`
|
|
|
|
|
label: "const_copy_from_slice",
|
|
|
|
|
description: r##"# `const_copy_from_slice`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#102575]
|
|
|
|
|
The tracking issue for this feature is: [#131415]
|
|
|
|
|
|
|
|
|
|
[#102575]: https://github.com/rust-lang/rust/issues/102575
|
|
|
|
|
[#131415]: https://github.com/rust-lang/rust/issues/131415
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_cow_is_borrowed",
|
|
|
|
|
description: r##"# `const_cow_is_borrowed`
|
|
|
|
|
label: "const_destruct",
|
|
|
|
|
description: r##"# `const_destruct`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#65143]
|
|
|
|
|
The tracking issue for this feature is: [#133214]
|
|
|
|
|
|
|
|
|
|
[#65143]: https://github.com/rust-lang/rust/issues/65143
|
|
|
|
|
[#133214]: https://github.com/rust-lang/rust/issues/133214
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_eq_ignore_ascii_case",
|
|
|
|
|
description: r##"# `const_eq_ignore_ascii_case`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#131719]
|
|
|
|
|
|
|
|
|
|
[#131719]: https://github.com/rust-lang/rust/issues/131719
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_eval_select",
|
|
|
|
@@ -3117,68 +4510,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_exact_div",
|
|
|
|
|
description: r##"# `const_exact_div`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#72505]
|
|
|
|
|
|
|
|
|
|
[#72505]: https://github.com/rust-lang/rust/issues/72505
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_fmt_arguments_new",
|
|
|
|
|
description: r##"# `const_fmt_arguments_new`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 +4524,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_format_args",
|
|
|
|
@@ -3199,17 +4536,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_hash",
|
|
|
|
|
description: r##"# `const_hash`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#104061]
|
|
|
|
|
|
|
|
|
|
[#104061]: https://github.com/rust-lang/rust/issues/104061
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_heap",
|
|
|
|
@@ -3221,247 +4550,37 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_index_range_slice_index",
|
|
|
|
|
description: r##"# `const_index_range_slice_index`
|
|
|
|
|
label: "const_is_char_boundary",
|
|
|
|
|
description: r##"# `const_is_char_boundary`
|
|
|
|
|
|
|
|
|
|
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: [#131516]
|
|
|
|
|
|
|
|
|
|
[#131516]: https://github.com/rust-lang/rust/issues/131516
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_int_from_str",
|
|
|
|
|
description: r##"# `const_int_from_str`
|
|
|
|
|
label: "const_mut_cursor",
|
|
|
|
|
description: r##"# `const_mut_cursor`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#59133]
|
|
|
|
|
The tracking issue for this feature is: [#130801]
|
|
|
|
|
|
|
|
|
|
[#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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_intrinsic_compare_bytes",
|
|
|
|
|
description: r##"# `const_intrinsic_compare_bytes`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_intrinsic_raw_eq",
|
|
|
|
|
description: r##"# `const_intrinsic_raw_eq`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_ipv4",
|
|
|
|
|
description: r##"# `const_ipv4`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#76205]
|
|
|
|
|
|
|
|
|
|
[#76205]: https://github.com/rust-lang/rust/issues/76205
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_ipv6",
|
|
|
|
|
description: r##"# `const_ipv6`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#76205]
|
|
|
|
|
|
|
|
|
|
[#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.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_maybe_uninit_array_assume_init",
|
|
|
|
|
description: r##"# `const_maybe_uninit_array_assume_init`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#96097]
|
|
|
|
|
|
|
|
|
|
[#96097]: https://github.com/rust-lang/rust/issues/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.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_maybe_uninit_uninit_array",
|
|
|
|
|
description: r##"# `const_maybe_uninit_uninit_array`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#96097]
|
|
|
|
|
|
|
|
|
|
[#96097]: https://github.com/rust-lang/rust/issues/96097
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_maybe_uninit_write",
|
|
|
|
|
description: r##"# `const_maybe_uninit_write`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#63567]
|
|
|
|
|
|
|
|
|
|
[#63567]: https://github.com/rust-lang/rust/issues/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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_nonnull_new",
|
|
|
|
|
description: r##"# `const_nonnull_new`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#93235]
|
|
|
|
|
|
|
|
|
|
[#93235]: https://github.com/rust-lang/rust/issues/93235
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_num_midpoint",
|
|
|
|
|
description: r##"# `const_num_midpoint`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#110840]
|
|
|
|
|
|
|
|
|
|
[#110840]: https://github.com/rust-lang/rust/issues/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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_option_ext",
|
|
|
|
|
description: r##"# `const_option_ext`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#91930]
|
|
|
|
|
|
|
|
|
|
[#91930]: https://github.com/rust-lang/rust/issues/91930
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_pin",
|
|
|
|
|
description: r##"# `const_pin`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#76654]
|
|
|
|
|
|
|
|
|
|
[#76654]: https://github.com/rust-lang/rust/issues/76654
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_pointer_is_aligned",
|
|
|
|
|
description: r##"# `const_pointer_is_aligned`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#104203]
|
|
|
|
|
|
|
|
|
|
[#104203]: https://github.com/rust-lang/rust/issues/104203
|
|
|
|
|
[#130801]: https://github.com/rust-lang/rust/issues/130801
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_precise_live_drops",
|
|
|
|
@@ -3473,39 +4592,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_pref_align_of",
|
|
|
|
|
description: r##"# `const_pref_align_of`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#91971]
|
|
|
|
|
|
|
|
|
|
[#91971]: https://github.com/rust-lang/rust/issues/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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_ptr_is_null",
|
|
|
|
|
description: r##"# `const_ptr_is_null`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#74939]
|
|
|
|
|
|
|
|
|
|
[#74939]: https://github.com/rust-lang/rust/issues/74939
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_ptr_sub_ptr",
|
|
|
|
@@ -3517,17 +4606,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 +4620,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_raw_ptr_comparison",
|
|
|
|
@@ -3550,94 +4634,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_size_of_val",
|
|
|
|
|
description: r##"# `const_size_of_val`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#46571]
|
|
|
|
|
|
|
|
|
|
[#46571]: https://github.com/rust-lang/rust/issues/46571
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_size_of_val_raw",
|
|
|
|
|
description: r##"# `const_size_of_val_raw`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#46571]
|
|
|
|
|
|
|
|
|
|
[#46571]: https://github.com/rust-lang/rust/issues/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 +4648,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_slice_from_mut_ptr_range",
|
|
|
|
@@ -3660,6 +4662,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_slice_from_ptr_range",
|
|
|
|
@@ -3671,59 +4676,23 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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`
|
|
|
|
|
label: "const_sockaddr_setters",
|
|
|
|
|
description: r##"# `const_sockaddr_setters`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#67456]
|
|
|
|
|
The tracking issue for this feature is: [#131714]
|
|
|
|
|
|
|
|
|
|
[#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`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#101804]
|
|
|
|
|
|
|
|
|
|
[#101804]: https://github.com/rust-lang/rust/issues/101804
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_str_from_raw_parts_mut",
|
|
|
|
|
description: r##"# `const_str_from_raw_parts_mut`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#119206]
|
|
|
|
|
|
|
|
|
|
[#119206]: https://github.com/rust-lang/rust/issues/119206
|
|
|
|
|
[#131714]: https://github.com/rust-lang/rust/issues/131714
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_str_from_utf8",
|
|
|
|
@@ -3735,28 +4704,23 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_strict_overflow_ops",
|
|
|
|
|
description: r##"# `const_strict_overflow_ops`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#118260]
|
|
|
|
|
|
|
|
|
|
[#118260]: https://github.com/rust-lang/rust/issues/118260
|
|
|
|
|
[#131518]: https://github.com/rust-lang/rust/issues/131518
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_swap",
|
|
|
|
@@ -3768,15 +4732,23 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_three_way_compare",
|
|
|
|
|
description: r##"# `const_three_way_compare`
|
|
|
|
|
label: "const_swap_nonoverlapping",
|
|
|
|
|
description: r##"# `const_swap_nonoverlapping`
|
|
|
|
|
|
|
|
|
|
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: [#133668]
|
|
|
|
|
|
|
|
|
|
[#133668]: https://github.com/rust-lang/rust/issues/133668
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_trait_impl",
|
|
|
|
@@ -3788,6 +4760,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_try",
|
|
|
|
@@ -3799,6 +4774,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_type_id",
|
|
|
|
@@ -3810,6 +4788,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_type_name",
|
|
|
|
@@ -3821,6 +4802,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_typed_swap",
|
|
|
|
@@ -3830,48 +4814,23 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_ub_checks",
|
|
|
|
|
description: r##"# `const_ub_checks`
|
|
|
|
|
label: "const_vec_string_slice",
|
|
|
|
|
description: r##"# `const_vec_string_slice`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_unicode_case_lookup",
|
|
|
|
|
description: r##"# `const_unicode_case_lookup`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#101400]
|
|
|
|
|
|
|
|
|
|
[#101400]: https://github.com/rust-lang/rust/issues/101400
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_unsafecell_get_mut",
|
|
|
|
|
description: r##"# `const_unsafecell_get_mut`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#88836]
|
|
|
|
|
|
|
|
|
|
[#88836]: https://github.com/rust-lang/rust/issues/88836
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "const_waker",
|
|
|
|
|
description: r##"# `const_waker`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#102012]
|
|
|
|
|
|
|
|
|
|
[#102012]: https://github.com/rust-lang/rust/issues/102012
|
|
|
|
|
The tracking issue for this feature is: [#129041]
|
|
|
|
|
|
|
|
|
|
[#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 +4840,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "context_ext",
|
|
|
|
@@ -3892,17 +4854,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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 +4868,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "core_intrinsics",
|
|
|
|
@@ -3923,6 +4880,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "core_io_borrowed_buf",
|
|
|
|
@@ -3934,15 +4894,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pattern_type_macro",
|
|
|
|
|
description: r##"# `pattern_type_macro`
|
|
|
|
|
|
|
|
|
|
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: "core_private_bignum",
|
|
|
|
@@ -3952,6 +4906,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "core_private_diy_float",
|
|
|
|
@@ -3961,6 +4918,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "coroutine_clone",
|
|
|
|
@@ -3972,6 +4932,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "coroutine_trait",
|
|
|
|
@@ -3983,6 +4946,9 @@ fn foobar() -> u32 { 23 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "coroutines",
|
|
|
|
@@ -4234,6 +5200,9 @@ fn resume(mut self: Pin<&mut Self>, resume: ()) -> CoroutineState<i32, &'static
|
|
|
|
|
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",
|
|
|
|
@@ -4268,6 +5237,9 @@ fn bar() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cow_is_borrowed",
|
|
|
|
@@ -4279,6 +5251,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "csky_target_feature",
|
|
|
|
@@ -4290,6 +5265,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cstr_bytes",
|
|
|
|
@@ -4301,6 +5279,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "cstr_internals",
|
|
|
|
@@ -4310,10 +5291,13 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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]
|
|
|
|
|
|
|
|
|
@@ -4321,6 +5305,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "custom_inner_attributes",
|
|
|
|
@@ -4332,6 +5319,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "custom_mir",
|
|
|
|
@@ -4341,6 +5331,9 @@ fn bar() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "custom_test_frameworks",
|
|
|
|
@@ -4377,6 +5370,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
const WILL_FAIL: i32 = 4;
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "deadline_api",
|
|
|
|
@@ -4388,6 +5384,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "debug_closure_helpers",
|
|
|
|
@@ -4399,6 +5398,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "dec2flt",
|
|
|
|
@@ -4408,6 +5410,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "decl_macro",
|
|
|
|
@@ -4419,17 +5424,23 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "default_type_parameter_fallback",
|
|
|
|
|
description: r##"# `default_type_parameter_fallback`
|
|
|
|
|
label: "default_field_values",
|
|
|
|
|
description: r##"# `default_field_values`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#27336]
|
|
|
|
|
The tracking issue for this feature is: [#132162]
|
|
|
|
|
|
|
|
|
|
[#27336]: https://github.com/rust-lang/rust/issues/27336
|
|
|
|
|
[#132162]: https://github.com/rust-lang/rust/issues/132162
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "deprecated_safe",
|
|
|
|
@@ -4441,6 +5452,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "deprecated_suggestion",
|
|
|
|
@@ -4452,6 +5466,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "deref_patterns",
|
|
|
|
@@ -4463,6 +5480,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "deref_pure_trait",
|
|
|
|
@@ -4474,6 +5494,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "derive_clone_copy",
|
|
|
|
@@ -4483,6 +5506,23 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "derive_coerce_pointee",
|
|
|
|
|
description: r##"# `derive_coerce_pointee`
|
|
|
|
|
|
|
|
|
|
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_const",
|
|
|
|
@@ -4492,6 +5532,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "derive_eq",
|
|
|
|
@@ -4501,17 +5544,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "derive_smart_pointer",
|
|
|
|
|
description: r##"# `derive_smart_pointer`
|
|
|
|
|
|
|
|
|
|
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: "dir_entry_ext2",
|
|
|
|
@@ -4523,6 +5558,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "discriminant_kind",
|
|
|
|
@@ -4532,6 +5570,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "dispatch_from_dyn",
|
|
|
|
@@ -4541,6 +5582,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "do_not_recommend",
|
|
|
|
@@ -4552,6 +5596,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "doc_auto_cfg",
|
|
|
|
@@ -4563,6 +5610,9 @@ fn my_runner(tests: &[&i32]) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "doc_cfg",
|
|
|
|
@@ -4613,6 +5663,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",
|
|
|
|
@@ -4624,6 +5677,9 @@ pub struct Icon {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "doc_masked",
|
|
|
|
@@ -4652,6 +5708,9 @@ pub struct Icon {
|
|
|
|
|
[#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",
|
|
|
|
@@ -4689,6 +5748,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
[#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",
|
|
|
|
@@ -4700,6 +5762,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "drain_keep_rest",
|
|
|
|
@@ -4711,6 +5776,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "dropck_eyepatch",
|
|
|
|
@@ -4722,6 +5790,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "duration_constants",
|
|
|
|
@@ -4733,6 +5804,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "duration_constructors",
|
|
|
|
@@ -4746,17 +5820,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -4768,6 +5834,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "duration_units",
|
|
|
|
@@ -4779,6 +5848,23 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
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: "dyn_star",
|
|
|
|
@@ -4790,6 +5876,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "edition_panic",
|
|
|
|
@@ -4799,37 +5888,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "effect_types",
|
|
|
|
|
description: r##"# `effect_types`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "effects",
|
|
|
|
|
description: r##"# `effects`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#102090]
|
|
|
|
|
|
|
|
|
|
[#102090]: https://github.com/rust-lang/rust/issues/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",
|
|
|
|
@@ -4841,6 +5902,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "error_generic_member_access",
|
|
|
|
@@ -4852,6 +5916,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "error_iter",
|
|
|
|
@@ -4863,6 +5930,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "error_reporter",
|
|
|
|
@@ -4874,6 +5944,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "error_type_id",
|
|
|
|
@@ -4885,6 +5958,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "exact_size_is_empty",
|
|
|
|
@@ -4896,6 +5972,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "exclusive_wrapper",
|
|
|
|
@@ -4907,6 +5986,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "exhaustive_patterns",
|
|
|
|
@@ -4918,6 +6000,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "exit_status_error",
|
|
|
|
@@ -4929,6 +6014,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "exitcode_exit_method",
|
|
|
|
@@ -4940,6 +6028,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "explicit_tail_calls",
|
|
|
|
@@ -4951,28 +6042,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -4984,6 +6056,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "extend_one_unchecked",
|
|
|
|
@@ -4993,20 +6068,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "extended_varargs_abi_support",
|
|
|
|
|
description: r##"# `extended_varargs_abi_support`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#100189]
|
|
|
|
|
|
|
|
|
|
[#100189]: https://github.com/rust-lang/rust/issues/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",
|
|
|
|
@@ -5018,6 +6082,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "extract_if",
|
|
|
|
@@ -5029,6 +6096,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "f128",
|
|
|
|
@@ -5042,6 +6112,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -5055,6 +6128,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -5064,6 +6140,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fd_read",
|
|
|
|
@@ -5073,6 +6152,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ffi_const",
|
|
|
|
@@ -5129,6 +6211,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
[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",
|
|
|
|
@@ -5189,6 +6274,37 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
[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: "file_lock",
|
|
|
|
|
description: r##"# `file_lock`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#130994]
|
|
|
|
|
|
|
|
|
|
[#130994]: https://github.com/rust-lang/rust/issues/130994
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "float_gamma",
|
|
|
|
@@ -5200,6 +6316,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "float_minimum_maximum",
|
|
|
|
@@ -5211,6 +6330,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "float_next_up_down",
|
|
|
|
@@ -5222,6 +6344,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "flt2dec",
|
|
|
|
@@ -5231,6 +6356,23 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -5240,6 +6382,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fmt_internals",
|
|
|
|
@@ -5249,6 +6394,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fn_align",
|
|
|
|
@@ -5260,6 +6408,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fn_delegation",
|
|
|
|
@@ -5271,6 +6422,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fn_ptr_trait",
|
|
|
|
@@ -5280,6 +6434,9 @@ pub fn my_fn() -> MyStruct { MyStruct }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fn_traits",
|
|
|
|
@@ -5319,6 +6476,9 @@ fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "forget_unsized",
|
|
|
|
@@ -5328,6 +6488,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "format_args_nl",
|
|
|
|
@@ -5337,6 +6500,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "formatting_options",
|
|
|
|
|
description: r##"# `formatting_options`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#118117]
|
|
|
|
|
|
|
|
|
|
[#118117]: https://github.com/rust-lang/rust/issues/118117
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "freeze",
|
|
|
|
@@ -5348,6 +6528,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "freeze_impls",
|
|
|
|
@@ -5359,6 +6542,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "fundamental",
|
|
|
|
@@ -5370,6 +6556,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "future_join",
|
|
|
|
@@ -5381,6 +6570,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "gen_blocks",
|
|
|
|
@@ -5392,6 +6584,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "gen_future",
|
|
|
|
@@ -5403,6 +6598,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_arg_infer",
|
|
|
|
@@ -5414,6 +6612,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_assert",
|
|
|
|
@@ -5423,6 +6624,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_assert_internals",
|
|
|
|
@@ -5434,17 +6638,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_associated_types_extended",
|
|
|
|
|
description: r##"# `generic_associated_types_extended`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#95451]
|
|
|
|
|
|
|
|
|
|
[#95451]: https://github.com/rust-lang/rust/issues/95451
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_const_exprs",
|
|
|
|
@@ -5456,6 +6652,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "generic_const_items",
|
|
|
|
@@ -5467,6 +6666,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "get_many_mut",
|
|
|
|
@@ -5478,6 +6680,21 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "get_many_mut_helpers",
|
|
|
|
|
description: r##"# `get_many_mut_helpers`
|
|
|
|
|
|
|
|
|
|
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: "get_mut_unchecked",
|
|
|
|
@@ -5489,6 +6706,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "global_registration",
|
|
|
|
@@ -5500,6 +6720,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "guard_patterns",
|
|
|
|
|
description: r##"# `guard_patterns`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#129967]
|
|
|
|
|
|
|
|
|
|
[#129967]: https://github.com/rust-lang/rust/issues/129967
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "half_open_range_patterns_in_slices",
|
|
|
|
@@ -5533,6 +6770,9 @@ fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hash_extract_if",
|
|
|
|
@@ -5544,6 +6784,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hash_raw_entry",
|
|
|
|
@@ -5555,6 +6798,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hash_set_entry",
|
|
|
|
@@ -5566,6 +6812,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hasher_prefixfree_extras",
|
|
|
|
@@ -5577,6 +6826,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hashmap_internals",
|
|
|
|
@@ -5586,6 +6838,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hexagon_target_feature",
|
|
|
|
@@ -5597,6 +6852,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "hint_must_use",
|
|
|
|
@@ -5608,6 +6866,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "if_let_guard",
|
|
|
|
@@ -5619,6 +6880,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "impl_trait_in_assoc_type",
|
|
|
|
@@ -5630,6 +6894,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "impl_trait_in_fn_trait_return",
|
|
|
|
@@ -5641,6 +6908,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "inherent_associated_types",
|
|
|
|
@@ -5652,6 +6922,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "inline_const_pat",
|
|
|
|
@@ -5678,6 +6951,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
[#76001]: https://github.com/rust-lang/rust/issues/76001
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "inplace_iteration",
|
|
|
|
@@ -5687,6 +6963,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "int_roundings",
|
|
|
|
@@ -5698,6 +6977,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "integer_atomics",
|
|
|
|
@@ -5709,6 +6991,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "integer_sign_cast",
|
|
|
|
@@ -5720,6 +7005,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "internal_impls_macro",
|
|
|
|
@@ -5729,6 +7017,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "internal_output_capture",
|
|
|
|
@@ -5738,6 +7029,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "intra_doc_pointers",
|
|
|
|
@@ -5757,6 +7051,9 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
//! [pointer::add]
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "intrinsics",
|
|
|
|
@@ -5780,7 +7077,7 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
by the codegen backend, but not the MIR inliner.
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
|
#![feature(intrinsics)]
|
|
|
|
|
#![allow(internal_features)]
|
|
|
|
|
|
|
|
|
|
#[rustc_intrinsic]
|
|
|
|
@@ -5790,7 +7087,7 @@ const fn one() -> i32 { 1 }
|
|
|
|
|
Since these are just regular functions, it is perfectly ok to create the intrinsic twice:
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
|
#![feature(intrinsics)]
|
|
|
|
|
#![allow(internal_features)]
|
|
|
|
|
|
|
|
|
|
#[rustc_intrinsic]
|
|
|
|
@@ -5852,6 +7149,49 @@ mod foo {
|
|
|
|
|
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_const_error",
|
|
|
|
|
description: r##"# `io_const_error`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133448]
|
|
|
|
|
|
|
|
|
|
[#133448]: https://github.com/rust-lang/rust/issues/133448
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "io_const_error_internals",
|
|
|
|
|
description: r##"# `io_const_error_internals`
|
|
|
|
|
|
|
|
|
|
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: "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",
|
|
|
|
@@ -5863,6 +7203,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "io_error_uncategorized",
|
|
|
|
@@ -5872,6 +7215,23 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "io_slice_as_bytes",
|
|
|
|
|
description: r##"# `io_slice_as_bytes`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#132818]
|
|
|
|
|
|
|
|
|
|
[#132818]: https://github.com/rust-lang/rust/issues/132818
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ip",
|
|
|
|
@@ -5883,6 +7243,23 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ip_from",
|
|
|
|
|
description: r##"# `ip_from`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#131360]
|
|
|
|
|
|
|
|
|
|
[#131360]: https://github.com/rust-lang/rust/issues/131360
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "is_ascii_octdigit",
|
|
|
|
@@ -5894,17 +7271,23 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "is_none_or",
|
|
|
|
|
description: r##"# `is_none_or`
|
|
|
|
|
label: "is_loongarch_feature_detected",
|
|
|
|
|
description: r##"# `is_loongarch_feature_detected`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#126383]
|
|
|
|
|
The tracking issue for this feature is: [#117425]
|
|
|
|
|
|
|
|
|
|
[#126383]: https://github.com/rust-lang/rust/issues/126383
|
|
|
|
|
[#117425]: https://github.com/rust-lang/rust/issues/117425
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "is_riscv_feature_detected",
|
|
|
|
@@ -5916,41 +7299,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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`.
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "is_val_statically_known",
|
|
|
|
|
description: r##"# `is_val_statically_known`
|
|
|
|
|
|
|
|
|
|
This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -5962,6 +7313,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_array_chunks",
|
|
|
|
@@ -5973,6 +7327,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_chain",
|
|
|
|
@@ -5984,6 +7341,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_collect_into",
|
|
|
|
@@ -5995,6 +7355,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_from_coroutine",
|
|
|
|
@@ -6006,6 +7369,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_intersperse",
|
|
|
|
@@ -6017,6 +7383,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_is_partitioned",
|
|
|
|
@@ -6028,6 +7397,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_map_windows",
|
|
|
|
@@ -6039,6 +7411,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_next_chunk",
|
|
|
|
@@ -6050,6 +7425,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_order_by",
|
|
|
|
@@ -6061,6 +7439,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iter_partition_in_place",
|
|
|
|
@@ -6072,17 +7453,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -6094,6 +7467,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "iterator_try_reduce",
|
|
|
|
@@ -6105,6 +7481,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "junction_point",
|
|
|
|
@@ -6116,6 +7495,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "lahfsahf_target_feature",
|
|
|
|
@@ -6127,6 +7509,9 @@ mod foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "lang_items",
|
|
|
|
@@ -6246,6 +7631,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
[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",
|
|
|
|
@@ -6257,6 +7645,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "layout_for_ptr",
|
|
|
|
@@ -6268,6 +7659,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "lazy_cell_into_inner",
|
|
|
|
@@ -6279,6 +7673,23 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -6290,6 +7701,21 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -6301,6 +7727,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "liballoc_internals",
|
|
|
|
@@ -6310,6 +7739,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "libstd_sys_internals",
|
|
|
|
@@ -6319,6 +7751,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "lifetime_capture_rules_2024",
|
|
|
|
@@ -6328,6 +7763,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "link_arg_attribute",
|
|
|
|
@@ -6353,6 +7791,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
[#99427]: https://github.com/rust-lang/rust/issues/99427
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "link_cfg",
|
|
|
|
@@ -6362,6 +7803,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "link_llvm_intrinsics",
|
|
|
|
@@ -6373,6 +7817,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "linkage",
|
|
|
|
@@ -6384,6 +7831,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "linked_list_cursors",
|
|
|
|
@@ -6395,6 +7845,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "linked_list_remove",
|
|
|
|
@@ -6406,6 +7859,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "linked_list_retain",
|
|
|
|
@@ -6417,6 +7873,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "linux_pidfd",
|
|
|
|
@@ -6428,6 +7887,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "local_waker",
|
|
|
|
@@ -6439,6 +7901,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "log_syntax",
|
|
|
|
@@ -6450,6 +7915,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "loongarch_target_feature",
|
|
|
|
@@ -6461,6 +7929,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "macro_metavar_expr",
|
|
|
|
@@ -6472,6 +7943,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "macro_metavar_expr_concat",
|
|
|
|
@@ -6483,17 +7957,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -6505,6 +7971,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "map_try_insert",
|
|
|
|
@@ -6516,6 +7985,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "mapped_lock_guards",
|
|
|
|
@@ -6527,6 +7999,9 @@ fn panic_handler(_info: &PanicInfo) -> ! { intrinsics::abort() }
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "marker_trait_attr",
|
|
|
|
@@ -6566,6 +8041,9 @@ fn cheap_clone<T: CheapToClone>(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",
|
|
|
|
@@ -6577,6 +8055,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_as_bytes",
|
|
|
|
@@ -6588,6 +8069,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_fill",
|
|
|
|
@@ -6599,6 +8083,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_slice",
|
|
|
|
@@ -6610,6 +8097,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_uninit_array",
|
|
|
|
@@ -6621,6 +8111,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_uninit_array_transpose",
|
|
|
|
@@ -6632,6 +8125,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "maybe_uninit_write_slice",
|
|
|
|
@@ -6643,6 +8139,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "mem_copy_fn",
|
|
|
|
@@ -6654,17 +8153,23 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "min_exhaustive_patterns",
|
|
|
|
|
description: r##"# `min_exhaustive_patterns`
|
|
|
|
|
label: "min_generic_const_args",
|
|
|
|
|
description: r##"# `min_generic_const_args`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#119612]
|
|
|
|
|
The tracking issue for this feature is: [#132980]
|
|
|
|
|
|
|
|
|
|
[#119612]: https://github.com/rust-lang/rust/issues/119612
|
|
|
|
|
[#132980]: https://github.com/rust-lang/rust/issues/132980
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "min_specialization",
|
|
|
|
@@ -6676,6 +8181,9 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "mips_target_feature",
|
|
|
|
@@ -6687,6 +8195,23 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "mixed_integer_ops_unsigned_sub",
|
|
|
|
|
description: r##"# `mixed_integer_ops_unsigned_sub`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#126043]
|
|
|
|
|
|
|
|
|
|
[#126043]: https://github.com/rust-lang/rust/issues/126043
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "more_float_constants",
|
|
|
|
@@ -6698,6 +8223,21 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -6706,6 +8246,10 @@ fn cheap_clone<T: CheapToClone>(t: T) -> T {
|
|
|
|
|
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
|
|
|
|
@@ -6731,6 +8275,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",
|
|
|
|
@@ -6740,6 +8301,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "must_not_suspend",
|
|
|
|
@@ -6751,6 +8315,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "mut_ref",
|
|
|
|
@@ -6762,6 +8329,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "naked_functions",
|
|
|
|
@@ -6773,6 +8343,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "native_link_modifiers_as_needed",
|
|
|
|
@@ -6795,6 +8368,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -6806,6 +8382,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "negative_bounds",
|
|
|
|
@@ -6815,6 +8394,9 @@ impl A for Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "negative_impls",
|
|
|
|
@@ -6876,6 +8458,9 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
* 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",
|
|
|
|
@@ -6887,6 +8472,9 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "never_type",
|
|
|
|
@@ -6898,6 +8486,9 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "never_type_fallback",
|
|
|
|
@@ -6909,6 +8500,9 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "new_range_api",
|
|
|
|
@@ -6920,17 +8514,23 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -6942,6 +8542,9 @@ impl at all, but that is not an option for auto traits. A workaround
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "no_sanitize",
|
|
|
|
@@ -6975,6 +8578,9 @@ fn foo() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "non_exhaustive_omitted_patterns_lint",
|
|
|
|
@@ -6986,6 +8592,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "non_lifetime_binders",
|
|
|
|
@@ -6997,6 +8606,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7008,6 +8634,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7019,6 +8662,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "nonzero_internals",
|
|
|
|
@@ -7028,6 +8674,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "nonzero_ops",
|
|
|
|
@@ -7039,21 +8688,13 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "noop_waker",
|
|
|
|
|
description: r##"# `noop_waker`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#98286]
|
|
|
|
|
|
|
|
|
|
[#98286]: https://github.com/rust-lang/rust/issues/98286
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "num_midpoint",
|
|
|
|
|
description: r##"# `num_midpoint`
|
|
|
|
|
label: "num_midpoint_signed",
|
|
|
|
|
description: r##"# `num_midpoint_signed`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#110840]
|
|
|
|
|
|
|
|
|
@@ -7061,6 +8702,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "numfmt",
|
|
|
|
@@ -7070,17 +8714,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -7092,17 +8728,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -7114,6 +8742,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "omit_gdb_pretty_printer_section",
|
|
|
|
@@ -7123,6 +8754,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "once_cell_get_mut",
|
|
|
|
@@ -7134,6 +8768,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "once_cell_try",
|
|
|
|
@@ -7145,6 +8782,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "once_cell_try_insert",
|
|
|
|
@@ -7156,6 +8796,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7167,6 +8824,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "optimize_attribute",
|
|
|
|
@@ -7178,17 +8838,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7200,6 +8866,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "os_str_display",
|
|
|
|
@@ -7211,6 +8880,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "os_str_slice",
|
|
|
|
@@ -7222,6 +8894,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "os_string_pathbuf_leak",
|
|
|
|
@@ -7233,6 +8908,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "os_string_truncate",
|
|
|
|
|
description: r##"# `os_string_truncate`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133262]
|
|
|
|
|
|
|
|
|
|
[#133262]: https://github.com/rust-lang/rust/issues/133262
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_abort",
|
|
|
|
@@ -7244,6 +8936,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_always_abort",
|
|
|
|
@@ -7255,6 +8950,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_backtrace_config",
|
|
|
|
@@ -7266,6 +8964,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_can_unwind",
|
|
|
|
@@ -7277,6 +8978,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_internals",
|
|
|
|
@@ -7286,6 +8990,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_payload_as_str",
|
|
|
|
@@ -7297,6 +9004,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_runtime",
|
|
|
|
@@ -7308,6 +9018,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_unwind",
|
|
|
|
@@ -7319,6 +9032,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "panic_update_hook",
|
|
|
|
@@ -7330,6 +9046,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "patchable_function_entry",
|
|
|
|
@@ -7341,6 +9060,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "path_add_extension",
|
|
|
|
@@ -7352,6 +9074,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "path_file_prefix",
|
|
|
|
@@ -7363,6 +9088,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pattern",
|
|
|
|
@@ -7374,6 +9102,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pattern_complexity",
|
|
|
|
@@ -7383,6 +9114,23 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pattern_type_macro",
|
|
|
|
|
description: r##"# `pattern_type_macro`
|
|
|
|
|
|
|
|
|
|
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: "pattern_types",
|
|
|
|
@@ -7394,6 +9142,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "peer_credentials_unix_socket",
|
|
|
|
@@ -7405,17 +9156,37 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pin_deref_mut",
|
|
|
|
|
description: r##"# `pin_deref_mut`
|
|
|
|
|
label: "pin_coerce_unsized_trait",
|
|
|
|
|
description: r##"# `pin_coerce_unsized_trait`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#86918]
|
|
|
|
|
The tracking issue for this feature is: [#123430]
|
|
|
|
|
|
|
|
|
|
[#86918]: https://github.com/rust-lang/rust/issues/86918
|
|
|
|
|
[#123430]: https://github.com/rust-lang/rust/issues/123430
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pin_ergonomics",
|
|
|
|
|
description: r##"# `pin_ergonomics`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#130494]
|
|
|
|
|
|
|
|
|
|
[#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",
|
|
|
|
@@ -7427,6 +9198,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pointer_like_trait",
|
|
|
|
@@ -7436,6 +9210,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "portable_simd",
|
|
|
|
@@ -7447,6 +9224,9 @@ fn foo() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "postfix_match",
|
|
|
|
@@ -7455,6 +9235,10 @@ fn foo() {
|
|
|
|
|
`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)]
|
|
|
|
|
|
|
|
|
@@ -7473,6 +9257,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "powerpc_target_feature",
|
|
|
|
@@ -7484,17 +9271,23 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7506,6 +9299,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "prelude_import",
|
|
|
|
@@ -7515,6 +9311,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "prfchw_target_feature",
|
|
|
|
@@ -7526,6 +9325,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "print_internals",
|
|
|
|
@@ -7535,6 +9337,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_def_site",
|
|
|
|
@@ -7546,6 +9351,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_diagnostic",
|
|
|
|
@@ -7557,6 +9365,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_expand",
|
|
|
|
@@ -7568,6 +9379,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_hygiene",
|
|
|
|
@@ -7579,6 +9393,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_internals",
|
|
|
|
@@ -7590,6 +9407,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_quote",
|
|
|
|
@@ -7601,6 +9421,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "proc_macro_span",
|
|
|
|
@@ -7612,6 +9435,23 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -7623,6 +9463,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "process_exitcode_internals",
|
|
|
|
@@ -7632,6 +9475,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "process_internals",
|
|
|
|
@@ -7641,6 +9487,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "profiler_runtime",
|
|
|
|
@@ -7650,6 +9499,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "profiler_runtime_lib",
|
|
|
|
@@ -7659,6 +9511,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_alignment_type",
|
|
|
|
@@ -7670,6 +9525,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_as_ref_unchecked",
|
|
|
|
@@ -7681,6 +9539,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_as_uninit",
|
|
|
|
@@ -7692,6 +9553,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_internals",
|
|
|
|
@@ -7701,6 +9565,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_mask",
|
|
|
|
@@ -7712,6 +9579,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_metadata",
|
|
|
|
@@ -7723,6 +9593,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ptr_sub_ptr",
|
|
|
|
@@ -7734,6 +9607,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "pub_crate_should_not_need_unstable_attr",
|
|
|
|
@@ -7743,6 +9619,23 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "random",
|
|
|
|
|
description: r##"# `random`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#130703]
|
|
|
|
|
|
|
|
|
|
[#130703]: https://github.com/rust-lang/rust/issues/130703
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "raw_os_error_ty",
|
|
|
|
@@ -7754,17 +9647,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "raw_ref_op",
|
|
|
|
|
description: r##"# `raw_ref_op`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#64490]
|
|
|
|
|
|
|
|
|
|
[#64490]: https://github.com/rust-lang/rust/issues/64490
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "raw_slice_split",
|
|
|
|
@@ -7776,6 +9661,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "raw_vec_internals",
|
|
|
|
@@ -7785,6 +9673,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "read_buf",
|
|
|
|
@@ -7796,26 +9687,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -7827,6 +9701,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ref_pat_eat_one_layer_2024",
|
|
|
|
@@ -7838,6 +9715,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ref_pat_eat_one_layer_2024_structural",
|
|
|
|
@@ -7849,6 +9729,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "register_tool",
|
|
|
|
@@ -7860,6 +9743,9 @@ fn get_foo() -> Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "repr128",
|
|
|
|
@@ -7882,6 +9768,9 @@ enum Foo {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "repr_simd",
|
|
|
|
@@ -7893,6 +9782,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "restricted_std",
|
|
|
|
@@ -7902,24 +9794,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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<T, E>` 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",
|
|
|
|
@@ -7931,6 +9808,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "return_type_notation",
|
|
|
|
@@ -7942,6 +9822,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "riscv_target_feature",
|
|
|
|
@@ -7953,6 +9836,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "round_char_boundary",
|
|
|
|
@@ -7964,6 +9850,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rt",
|
|
|
|
@@ -7973,6 +9862,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rtm_target_feature",
|
|
|
|
@@ -7984,6 +9876,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rust_cold_cc",
|
|
|
|
@@ -7995,6 +9890,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rustc_allow_const_fn_unstable",
|
|
|
|
@@ -8006,6 +9904,9 @@ enum Foo {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rustc_attrs",
|
|
|
|
@@ -8063,6 +9964,9 @@ pub enum X {
|
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rustc_encodable_decodable",
|
|
|
|
@@ -8072,6 +9976,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rustc_private",
|
|
|
|
@@ -8082,7 +9989,14 @@ pub enum X {
|
|
|
|
|
[#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",
|
|
|
|
@@ -8094,6 +10008,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rustdoc_missing_doc_code_examples",
|
|
|
|
@@ -8105,6 +10022,23 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "rwlock_downgrade",
|
|
|
|
|
description: r##"# `rwlock_downgrade`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#128203]
|
|
|
|
|
|
|
|
|
|
[#128203]: https://github.com/rust-lang/rust/issues/128203
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "s390x_target_feature",
|
|
|
|
@@ -8116,6 +10050,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sealed",
|
|
|
|
@@ -8125,6 +10062,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "seek_stream_len",
|
|
|
|
@@ -8136,6 +10076,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "set_ptr_value",
|
|
|
|
@@ -8147,6 +10090,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "setgroups",
|
|
|
|
@@ -8158,6 +10104,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sgx_platform",
|
|
|
|
@@ -8169,17 +10118,23 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -8191,6 +10146,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sized_type_properties",
|
|
|
|
@@ -8200,6 +10158,23 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_as_array",
|
|
|
|
|
description: r##"# `slice_as_array`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#133508]
|
|
|
|
|
|
|
|
|
|
[#133508]: https://github.com/rust-lang/rust/issues/133508
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_as_chunks",
|
|
|
|
@@ -8211,6 +10186,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_concat_ext",
|
|
|
|
@@ -8222,6 +10200,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_concat_trait",
|
|
|
|
@@ -8233,6 +10214,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_from_ptr_range",
|
|
|
|
@@ -8244,6 +10228,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_index_methods",
|
|
|
|
@@ -8253,6 +10240,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_internals",
|
|
|
|
@@ -8262,6 +10252,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_iter_mut_as_mut_slice",
|
|
|
|
@@ -8273,6 +10266,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_partition_dedup",
|
|
|
|
@@ -8284,6 +10280,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_pattern",
|
|
|
|
@@ -8295,6 +10294,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_ptr_get",
|
|
|
|
@@ -8306,6 +10308,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_range",
|
|
|
|
@@ -8317,6 +10322,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_split_once",
|
|
|
|
@@ -8328,6 +10336,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_swap_unchecked",
|
|
|
|
@@ -8339,6 +10350,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "slice_take",
|
|
|
|
@@ -8350,6 +10364,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "solid_ext",
|
|
|
|
@@ -8359,6 +10376,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sort_floats",
|
|
|
|
@@ -8370,6 +10390,23 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sparc_target_feature",
|
|
|
|
|
description: r##"# `sparc_target_feature`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#132783]
|
|
|
|
|
|
|
|
|
|
[#132783]: https://github.com/rust-lang/rust/issues/132783
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "specialization",
|
|
|
|
@@ -8381,6 +10418,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "split_array",
|
|
|
|
@@ -8392,6 +10432,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "split_as_slice",
|
|
|
|
@@ -8403,6 +10446,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "sse4a_target_feature",
|
|
|
|
@@ -8414,6 +10460,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "staged_api",
|
|
|
|
@@ -8423,6 +10472,9 @@ pub enum X {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "start",
|
|
|
|
@@ -8486,6 +10538,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "std_internals",
|
|
|
|
@@ -8495,6 +10550,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "stdarch_arm_feature_detection",
|
|
|
|
@@ -8506,6 +10564,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "stdarch_mips_feature_detection",
|
|
|
|
@@ -8517,6 +10578,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "stdarch_powerpc_feature_detection",
|
|
|
|
@@ -8528,6 +10592,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "stdio_makes_pipe",
|
|
|
|
@@ -8539,6 +10606,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "step_trait",
|
|
|
|
@@ -8550,6 +10620,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "stmt_expr_attributes",
|
|
|
|
@@ -8561,6 +10634,23 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -8572,6 +10662,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_from_utf16_endian",
|
|
|
|
@@ -8583,6 +10676,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_internals",
|
|
|
|
@@ -8592,6 +10688,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_lines_remainder",
|
|
|
|
@@ -8603,6 +10702,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_split_inclusive_remainder",
|
|
|
|
@@ -8614,6 +10716,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_split_remainder",
|
|
|
|
@@ -8625,6 +10730,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "str_split_whitespace_remainder",
|
|
|
|
@@ -8636,6 +10744,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "strict_overflow_ops",
|
|
|
|
@@ -8647,32 +10758,9 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "strict_provenance",
|
|
|
|
|
description: r##"# `strict_provenance`
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
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)]
|
|
|
|
|
#![warn(fuzzy_provenance_casts)]
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
let _dangling = 16_usize as *const u8;
|
|
|
|
|
//~^ WARNING: strict provenance disallows casting integer `usize` to pointer `*const u8`
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "strict_provenance_atomic_ptr",
|
|
|
|
@@ -8684,6 +10772,37 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
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_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.
|
|
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
#![feature(strict_provenance_lints)]
|
|
|
|
|
#![warn(fuzzy_provenance_casts)]
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
let _dangling = 16_usize as *const u8;
|
|
|
|
|
//~^ WARNING: strict provenance disallows casting integer `usize` to pointer `*const u8`
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "string_deref_patterns",
|
|
|
|
@@ -8733,6 +10852,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",
|
|
|
|
@@ -8744,6 +10866,23 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -8755,6 +10894,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "structural_match",
|
|
|
|
@@ -8766,6 +10908,23 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -8777,6 +10936,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "target_feature_11",
|
|
|
|
@@ -8788,6 +10950,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tbm_target_feature",
|
|
|
|
@@ -8799,6 +10964,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tcp_deferaccept",
|
|
|
|
@@ -8810,6 +10978,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tcp_linger",
|
|
|
|
@@ -8821,6 +10992,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tcp_quickack",
|
|
|
|
@@ -8832,6 +11006,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tcplistener_into_incoming",
|
|
|
|
@@ -8843,6 +11020,9 @@ pub fn is_it_the_answer(value: Value) -> bool {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "test",
|
|
|
|
@@ -9005,6 +11185,9 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
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",
|
|
|
|
@@ -9014,6 +11197,9 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thin_box",
|
|
|
|
@@ -9025,6 +11211,9 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_id_value",
|
|
|
|
@@ -9036,6 +11225,9 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_local",
|
|
|
|
@@ -9047,6 +11239,9 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_local_internals",
|
|
|
|
@@ -9056,6 +11251,23 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_raw",
|
|
|
|
|
description: r##"# `thread_raw`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#97523]
|
|
|
|
|
|
|
|
|
|
[#97523]: https://github.com/rust-lang/rust/issues/97523
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_sleep_until",
|
|
|
|
@@ -9067,17 +11279,23 @@ fn bench_xor_1000_ints(b: &mut Bencher) {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "thread_spawn_unchecked",
|
|
|
|
|
description: r##"# `thread_spawn_unchecked`
|
|
|
|
|
label: "thread_spawn_hook",
|
|
|
|
|
description: r##"# `thread_spawn_hook`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#55132]
|
|
|
|
|
The tracking issue for this feature is: [#132951]
|
|
|
|
|
|
|
|
|
|
[#55132]: https://github.com/rust-lang/rust/issues/55132
|
|
|
|
|
[#132951]: https://github.com/rust-lang/rust/issues/132951
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trace_macros",
|
|
|
|
@@ -9121,6 +11339,9 @@ fn main() {
|
|
|
|
|
Finished dev [unoptimized + debuginfo] target(s) in 0.60 secs
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "track_path",
|
|
|
|
@@ -9132,6 +11353,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trait_alias",
|
|
|
|
@@ -9170,6 +11394,9 @@ pub fn main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trait_upcasting",
|
|
|
|
@@ -9187,7 +11414,6 @@ trait object of type `dyn Bar` to be cast to a trait object of type `dyn Foo`
|
|
|
|
|
|
|
|
|
|
```rust,edition2018
|
|
|
|
|
#![feature(trait_upcasting)]
|
|
|
|
|
#![allow(incomplete_features)]
|
|
|
|
|
|
|
|
|
|
trait Foo {}
|
|
|
|
|
|
|
|
|
@@ -9201,6 +11427,9 @@ impl<T: Foo + ?Sized> Bar for T {}
|
|
|
|
|
let foo: &dyn Foo = bar;
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "transmutability",
|
|
|
|
@@ -9212,6 +11441,9 @@ impl<T: Foo + ?Sized> Bar for T {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "transmute_generic_consts",
|
|
|
|
@@ -9223,6 +11455,9 @@ impl<T: Foo + ?Sized> Bar for T {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "transparent_unions",
|
|
|
|
@@ -9310,6 +11545,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
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",
|
|
|
|
@@ -9321,6 +11559,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trusted_fused",
|
|
|
|
@@ -9330,6 +11571,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trusted_len",
|
|
|
|
@@ -9341,6 +11585,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trusted_len_next_unchecked",
|
|
|
|
@@ -9352,6 +11599,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trusted_random_access",
|
|
|
|
@@ -9361,6 +11611,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "trusted_step",
|
|
|
|
@@ -9372,6 +11625,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_blocks",
|
|
|
|
@@ -9406,6 +11662,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
assert!(result.is_err());
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_find",
|
|
|
|
@@ -9417,6 +11676,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_reserve_kind",
|
|
|
|
@@ -9428,6 +11690,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_trait_v2",
|
|
|
|
@@ -9439,6 +11704,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_trait_v2_residual",
|
|
|
|
@@ -9450,6 +11718,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_trait_v2_yeet",
|
|
|
|
@@ -9461,6 +11732,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "try_with_capacity",
|
|
|
|
@@ -9472,6 +11746,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "tuple_trait",
|
|
|
|
@@ -9481,6 +11758,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "type_alias_impl_trait",
|
|
|
|
@@ -9492,6 +11772,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "type_ascription",
|
|
|
|
@@ -9503,6 +11786,9 @@ pub union GenericUnion<T: Copy> { // Unions with non-`Copy` fields are unstable.
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "type_changing_struct_update",
|
|
|
|
@@ -9540,6 +11826,9 @@ struct Foo<T, U> {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "ub_checks",
|
|
|
|
@@ -9549,6 +11838,9 @@ struct Foo<T, U> {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "uefi_std",
|
|
|
|
@@ -9560,6 +11852,23 @@ struct Foo<T, U> {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
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",
|
|
|
|
@@ -9589,6 +11898,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",
|
|
|
|
@@ -9600,6 +11912,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unchecked_shifts",
|
|
|
|
@@ -9611,6 +11926,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unicode_internals",
|
|
|
|
@@ -9620,6 +11938,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unique_rc_arc",
|
|
|
|
@@ -9631,6 +11952,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unix_file_vectored_at",
|
|
|
|
@@ -9642,6 +11966,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unix_set_mark",
|
|
|
|
@@ -9653,6 +11980,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unix_socket_ancillary_data",
|
|
|
|
@@ -9664,6 +11994,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unix_socket_peek",
|
|
|
|
@@ -9675,50 +12008,35 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unnamed_fields",
|
|
|
|
|
description: r##"# `unnamed_fields`
|
|
|
|
|
label: "unqualified_local_imports",
|
|
|
|
|
description: r##"# `unqualified_local_imports`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#49804]
|
|
|
|
|
|
|
|
|
|
[#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_fields",
|
|
|
|
|
description: r##"# `unsafe_fields`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#123757]
|
|
|
|
|
The tracking issue for this feature is: [#132922]
|
|
|
|
|
|
|
|
|
|
[#123757]: https://github.com/rust-lang/rust/issues/123757
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsafe_cell_from_mut",
|
|
|
|
|
description: r##"# `unsafe_cell_from_mut`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#111645]
|
|
|
|
|
|
|
|
|
|
[#111645]: https://github.com/rust-lang/rust/issues/111645
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsafe_extern_blocks",
|
|
|
|
|
description: r##"# `unsafe_extern_blocks`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#123743]
|
|
|
|
|
|
|
|
|
|
[#123743]: https://github.com/rust-lang/rust/issues/123743
|
|
|
|
|
[#132922]: https://github.com/rust-lang/rust/issues/132922
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsafe_pin_internals",
|
|
|
|
@@ -9728,6 +12046,51 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsigned_is_multiple_of",
|
|
|
|
|
description: r##"# `unsigned_is_multiple_of`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#128101]
|
|
|
|
|
|
|
|
|
|
[#128101]: https://github.com/rust-lang/rust/issues/128101
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsigned_nonzero_div_ceil",
|
|
|
|
|
description: r##"# `unsigned_nonzero_div_ceil`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#132968]
|
|
|
|
|
|
|
|
|
|
[#132968]: https://github.com/rust-lang/rust/issues/132968
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsigned_signed_diff",
|
|
|
|
|
description: r##"# `unsigned_signed_diff`
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -9739,6 +12102,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsized_const_params",
|
|
|
|
@@ -9750,6 +12116,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsized_fn_params",
|
|
|
|
@@ -9761,6 +12130,9 @@ fn main() {}
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsized_locals",
|
|
|
|
@@ -9940,6 +12312,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
will unnecessarily extend the stack frame.
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "unsized_tuple_coercion",
|
|
|
|
@@ -9971,6 +12346,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",
|
|
|
|
@@ -9982,6 +12360,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "update_panic_count",
|
|
|
|
@@ -9991,6 +12372,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "used_with_arg",
|
|
|
|
@@ -10002,6 +12386,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "utf16_extra",
|
|
|
|
@@ -10013,17 +12400,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "utf16_extra_const",
|
|
|
|
|
description: r##"# `utf16_extra_const`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#94919]
|
|
|
|
|
|
|
|
|
|
[#94919]: https://github.com/rust-lang/rust/issues/94919
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "variant_count",
|
|
|
|
@@ -10035,6 +12414,23 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "vec_deque_iter_as_slices",
|
|
|
|
|
description: r##"# `vec_deque_iter_as_slices`
|
|
|
|
|
|
|
|
|
|
The tracking issue for this feature is: [#123947]
|
|
|
|
|
|
|
|
|
|
[#123947]: https://github.com/rust-lang/rust/issues/123947
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "vec_into_raw_parts",
|
|
|
|
@@ -10046,6 +12442,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "vec_pop_if",
|
|
|
|
@@ -10057,6 +12456,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "vec_push_within_capacity",
|
|
|
|
@@ -10068,6 +12470,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "vec_split_at_spare",
|
|
|
|
@@ -10079,17 +12484,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
},
|
|
|
|
|
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",
|
|
|
|
@@ -10101,6 +12498,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "wasm_target_feature",
|
|
|
|
@@ -10112,6 +12512,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_by_handle",
|
|
|
|
@@ -10123,6 +12526,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_c",
|
|
|
|
@@ -10132,6 +12538,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_change_time",
|
|
|
|
@@ -10143,6 +12552,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_handle",
|
|
|
|
@@ -10152,6 +12564,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_net",
|
|
|
|
@@ -10161,6 +12576,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_exit_code_from",
|
|
|
|
@@ -10172,6 +12590,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_extensions_async_pipes",
|
|
|
|
@@ -10183,6 +12604,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_extensions_force_quotes",
|
|
|
|
@@ -10194,6 +12618,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_extensions_main_thread_handle",
|
|
|
|
@@ -10205,6 +12632,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_extensions_raw_attribute",
|
|
|
|
@@ -10216,6 +12646,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_process_extensions_show_window",
|
|
|
|
@@ -10227,6 +12660,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "windows_stdio",
|
|
|
|
@@ -10236,6 +12672,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "with_negative_coherence",
|
|
|
|
@@ -10245,6 +12684,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "wrapping_int_impl",
|
|
|
|
@@ -10256,6 +12698,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "wrapping_next_power_of_two",
|
|
|
|
@@ -10267,6 +12712,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "write_all_vectored",
|
|
|
|
@@ -10278,6 +12726,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "x86_amx_intrinsics",
|
|
|
|
@@ -10289,6 +12740,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "xop_target_feature",
|
|
|
|
@@ -10300,6 +12754,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "yeet_desugar_details",
|
|
|
|
@@ -10309,6 +12766,9 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "yeet_expr",
|
|
|
|
@@ -10339,6 +12799,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
assert_eq!(bar(), None);
|
|
|
|
|
```
|
|
|
|
|
"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
@@ -10346,6 +12809,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10353,10 +12819,16 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10365,19 +12837,31 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10387,11 +12871,17 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10403,6 +12893,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10415,54 +12908,90 @@ fn bar() -> Option<String> {
|
|
|
|
|
`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",
|
|
|
|
@@ -10481,126 +13010,210 @@ fn bar() -> Option<String> {
|
|
|
|
|
|`==` 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<T>` 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<T>` 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<T>` 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",
|
|
|
|
@@ -10608,6 +13221,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10618,6 +13234,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10628,11 +13247,17 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10640,79 +13265,130 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10721,73 +13397,121 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10799,58 +13523,94 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10858,6 +13618,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10865,11 +13628,17 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10885,6 +13654,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
[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",
|
|
|
|
@@ -10892,11 +13664,17 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -10904,34 +13682,55 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -10939,43 +13738,76 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
> 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",
|
|
|
|
@@ -10984,271 +13816,458 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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."##,
|
|
|
|
|
description: r##"Checks for empty lines after doc 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::<String>()`."##,
|
|
|
|
|
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",
|
|
|
|
@@ -11256,60 +14275,92 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -11317,32 +14368,53 @@ fn bar() -> Option<String> {
|
|
|
|
|
type that implements all three of `Hash`, `Borrow<str>` and `Borrow<[u8]>`
|
|
|
|
|
as it is impossible to satisfy the semantics of Borrow and `Hash` for
|
|
|
|
|
both `Borrow<str>` 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",
|
|
|
|
@@ -11350,43 +14422,67 @@ fn bar() -> Option<String> {
|
|
|
|
|
This can happen when a trait is specified that another trait already has as a supertrait
|
|
|
|
|
(e.g. `fn() -> impl Deref + DerefMut<Target = i32>` 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",
|
|
|
|
@@ -11398,241 +14494,417 @@ fn bar() -> Option<String> {
|
|
|
|
|
|----------|----------|------------|-------|
|
|
|
|
|
|`>` / `<=`|`\\|` / `^`|`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::inverted_saturating_sub",
|
|
|
|
|
description: r##"Checks for comparisons between integers, followed by subtracting the greater value from the
|
|
|
|
|
lower one."##,
|
|
|
|
|
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().<func>()` 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",
|
|
|
|
@@ -11643,6 +14915,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -11651,60 +14926,102 @@ fn bar() -> Option<String> {
|
|
|
|
|
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 `<integer>::max_value()`, `std::<integer>::MAX`,
|
|
|
|
|
`std::<float>::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 _ = <expr>` 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 _ = <expr>` 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 _ = <expr>` 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",
|
|
|
|
@@ -11713,286 +15030,488 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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::<T>() * 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_div_ceil",
|
|
|
|
|
description: r##"Checks for an expression like `(x + (y - 1)) / y` which is a common manual reimplementation
|
|
|
|
|
of `x.div_ceil(y)`."##,
|
|
|
|
|
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 != <float>::INFINITY && x != <float>::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 == <float>::INFINITY || x == <float>::NEG_INFINITY`)."##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "clippy::manual_is_power_of_two",
|
|
|
|
|
description: r##"Checks for expressions like `x.count_ones() == 1` or `x & (x - 1) == 0`, with x and unsigned integer, which are manual
|
|
|
|
|
reimplementations of `x.is_power_of_two()`."##,
|
|
|
|
|
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::<T>()` 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::<Result<(), _>()`."##,
|
|
|
|
|
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",
|
|
|
|
@@ -12000,51 +15519,77 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -12052,19 +15597,24 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -12072,36 +15622,60 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -12110,108 +15684,192 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -12221,77 +15879,131 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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<X>` 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<X>` 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",
|
|
|
|
@@ -12299,53 +16011,92 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -12353,45 +16104,75 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -12400,70 +16181,118 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -12472,63 +16301,116 @@ fn bar() -> Option<String> {
|
|
|
|
|
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::non_zero_suggestions",
|
|
|
|
|
description: r##"Checks for conversions from `NonZero` types to regular integer types,
|
|
|
|
|
and suggests using `NonZero` types for the target as well."##,
|
|
|
|
|
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",
|
|
|
|
@@ -12537,24 +16419,39 @@ fn bar() -> Option<String> {
|
|
|
|
|
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<Option<_>>` in function signatures and type
|
|
|
|
|
definitions"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "clippy::or_fun_call",
|
|
|
|
@@ -12562,52 +16459,91 @@ fn bar() -> Option<String> {
|
|
|
|
|
`.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",
|
|
|
|
@@ -12617,10 +16553,16 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -12642,90 +16584,157 @@ fn bar() -> Option<String> {
|
|
|
|
|
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::pointers_in_nomem_asm_block",
|
|
|
|
|
description: r##"Checks if any pointer is being passed to an asm! block with `nomem` option."##,
|
|
|
|
|
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(<loc>)` with `in`."##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "clippy::pub_without_shorthand",
|
|
|
|
@@ -12733,180 +16742,310 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
Note: As you cannot write a module's path in `pub(<loc>)`, 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<T>` and `Arc<T>` 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<Mutex<T>>`."##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint { label: "clippy::rc_mutex", description: r##"Checks for `Rc<Mutex<T>>`."## },
|
|
|
|
|
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",
|
|
|
|
|
description: r##"Warns when a function signature uses `&Option<T>` instead of `Option<&T>`."##,
|
|
|
|
|
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",
|
|
|
|
@@ -12917,152 +17056,248 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -13070,21 +17305,33 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -13093,33 +17340,54 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -13130,337 +17398,572 @@ fn bar() -> Option<String> {
|
|
|
|
|
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::<T>` or `size_of_val::<T>` 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 `<string_lit>.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<T>`, 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<dyn _>`."##,
|
|
|
|
|
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",
|
|
|
|
@@ -13485,53 +17988,89 @@ fn bar() -> Option<String> {
|
|
|
|
|
/* 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",
|
|
|
|
@@ -13539,48 +18078,83 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
The lint ignores `Box<T>` 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_first_then_check",
|
|
|
|
|
description: r##"Checks the usage of `.first().is_some()` or `.first().is_none()` to check if a slice is
|
|
|
|
|
empty."##,
|
|
|
|
|
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::<Vec<String>>().join()` on iterators."##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
Lint {
|
|
|
|
|
label: "clippy::unnecessary_lazy_evaluations",
|
|
|
|
@@ -13595,80 +18169,131 @@ fn bar() -> Option<String> {
|
|
|
|
|
- `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",
|
|
|
|
@@ -13679,6 +18304,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -13687,26 +18315,47 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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",
|
|
|
|
@@ -13714,66 +18363,125 @@ fn bar() -> Option<String> {
|
|
|
|
|
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_trait_names",
|
|
|
|
|
description: r##"Checks for `use Trait` where the Trait is only used for its methods and not referenced by a path directly."##,
|
|
|
|
|
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",
|
|
|
|
@@ -13783,34 +18491,63 @@ fn bar() -> Option<String> {
|
|
|
|
|
- `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::used_underscore_items",
|
|
|
|
|
description: r##"Checks for the use of item 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",
|
|
|
|
@@ -13838,36 +18575,57 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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<Box<T>>` 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",
|
|
|
|
@@ -13879,76 +18637,127 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -13977,34 +18786,68 @@ fn bar() -> Option<String> {
|
|
|
|
|
|
|
|
|
|
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::zombie_processes",
|
|
|
|
|
description: r##"Looks for code that spawns a process but never calls `wait()` on the child."##,
|
|
|
|
|
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] = &[
|
|
|
|
@@ -14012,6 +18855,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -14024,7 +18870,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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"##,
|
|
|
|
|
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_c_str_literals, clippy::manual_clamp, clippy::manual_div_ceil, 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_is_power_of_two, 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_first_then_check, 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",
|
|
|
|
@@ -14060,7 +18909,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::iter_count",
|
|
|
|
|
"clippy::iter_kv_map",
|
|
|
|
|
"clippy::let_with_type_underscore",
|
|
|
|
|
"clippy::manual_c_str_literals",
|
|
|
|
|
"clippy::manual_clamp",
|
|
|
|
|
"clippy::manual_div_ceil",
|
|
|
|
|
"clippy::manual_filter",
|
|
|
|
|
"clippy::manual_filter_map",
|
|
|
|
|
"clippy::manual_find",
|
|
|
|
@@ -14068,6 +18919,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::manual_flatten",
|
|
|
|
|
"clippy::manual_hash_one",
|
|
|
|
|
"clippy::manual_inspect",
|
|
|
|
|
"clippy::manual_is_power_of_two",
|
|
|
|
|
"clippy::manual_main_separator_str",
|
|
|
|
|
"clippy::manual_range_patterns",
|
|
|
|
|
"clippy::manual_rem_euclid",
|
|
|
|
@@ -14138,6 +18990,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::unnecessary_cast",
|
|
|
|
|
"clippy::unnecessary_filter_map",
|
|
|
|
|
"clippy::unnecessary_find_map",
|
|
|
|
|
"clippy::unnecessary_first_then_check",
|
|
|
|
|
"clippy::unnecessary_literal_unwrap",
|
|
|
|
|
"clippy::unnecessary_map_on_constructor",
|
|
|
|
|
"clippy::unnecessary_min_or_max",
|
|
|
|
@@ -14160,7 +19013,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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"##,
|
|
|
|
|
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::inverted_saturating_sub, 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",
|
|
|
|
@@ -14187,6 +19043,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::inline_fn_without_body",
|
|
|
|
|
"clippy::invalid_null_ptr_usage",
|
|
|
|
|
"clippy::invalid_regex",
|
|
|
|
|
"clippy::inverted_saturating_sub",
|
|
|
|
|
"clippy::invisible_characters",
|
|
|
|
|
"clippy::iter_next_loop",
|
|
|
|
|
"clippy::iter_skip_zero",
|
|
|
|
@@ -14237,17 +19094,15 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -14263,7 +19118,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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"##,
|
|
|
|
|
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::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",
|
|
|
|
@@ -14273,8 +19131,6 @@ fn bar() -> Option<String> {
|
|
|
|
|
"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",
|
|
|
|
@@ -14319,7 +19175,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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"##,
|
|
|
|
|
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_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, 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::used_underscore_items, 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",
|
|
|
|
@@ -14371,7 +19230,6 @@ fn bar() -> Option<String> {
|
|
|
|
|
"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",
|
|
|
|
@@ -14411,6 +19269,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::redundant_else",
|
|
|
|
|
"clippy::ref_as_ptr",
|
|
|
|
|
"clippy::ref_binding_to_reference",
|
|
|
|
|
"clippy::ref_option",
|
|
|
|
|
"clippy::ref_option_ref",
|
|
|
|
|
"clippy::return_self_not_must_use",
|
|
|
|
|
"clippy::same_functions_in_if_condition",
|
|
|
|
@@ -14439,6 +19298,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::unused_async",
|
|
|
|
|
"clippy::unused_self",
|
|
|
|
|
"clippy::used_underscore_binding",
|
|
|
|
|
"clippy::used_underscore_items",
|
|
|
|
|
"clippy::verbose_bit_mask",
|
|
|
|
|
"clippy::wildcard_imports",
|
|
|
|
|
"clippy::zero_sized_map_values",
|
|
|
|
@@ -14448,6 +19308,9 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -14483,7 +19346,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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::non_zero_suggestions, 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::unused_trait_names, 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",
|
|
|
|
@@ -14552,6 +19418,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::mutex_atomic",
|
|
|
|
|
"clippy::needless_raw_strings",
|
|
|
|
|
"clippy::non_ascii_literal",
|
|
|
|
|
"clippy::non_zero_suggestions",
|
|
|
|
|
"clippy::panic",
|
|
|
|
|
"clippy::panic_in_result_fn",
|
|
|
|
|
"clippy::partial_pub_fields",
|
|
|
|
@@ -14598,6 +19465,8 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::unneeded_field_pattern",
|
|
|
|
|
"clippy::unreachable",
|
|
|
|
|
"clippy::unseparated_literal_suffix",
|
|
|
|
|
"clippy::unused_result_ok",
|
|
|
|
|
"clippy::unused_trait_names",
|
|
|
|
|
"clippy::unwrap_in_result",
|
|
|
|
|
"clippy::unwrap_used",
|
|
|
|
|
"clippy::use_debug",
|
|
|
|
@@ -14608,7 +19477,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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",
|
|
|
|
@@ -14742,6 +19614,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"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",
|
|
|
|
@@ -14766,7 +19639,10 @@ fn bar() -> Option<String> {
|
|
|
|
|
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"##,
|
|
|
|
|
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_line_after_doc_comments, clippy::empty_line_after_outer_attr, 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::pointers_in_nomem_asm_block, 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, clippy::zombie_processes"##,
|
|
|
|
|
default_severity: Severity::Allow,
|
|
|
|
|
warn_since: None,
|
|
|
|
|
deny_since: None,
|
|
|
|
|
},
|
|
|
|
|
children: &[
|
|
|
|
|
"clippy::almost_complete_range",
|
|
|
|
@@ -14787,6 +19663,8 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::duplicate_mod",
|
|
|
|
|
"clippy::duplicated_attributes",
|
|
|
|
|
"clippy::empty_docs",
|
|
|
|
|
"clippy::empty_line_after_doc_comments",
|
|
|
|
|
"clippy::empty_line_after_outer_attr",
|
|
|
|
|
"clippy::empty_loop",
|
|
|
|
|
"clippy::float_equality_without_abs",
|
|
|
|
|
"clippy::forget_non_drop",
|
|
|
|
@@ -14815,6 +19693,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::octal_escapes",
|
|
|
|
|
"clippy::path_ends_with_ext",
|
|
|
|
|
"clippy::permissions_set_readonly_false",
|
|
|
|
|
"clippy::pointers_in_nomem_asm_block",
|
|
|
|
|
"clippy::print_in_format_impl",
|
|
|
|
|
"clippy::rc_clone_in_vec_init",
|
|
|
|
|
"clippy::repeat_vec_with_capacity",
|
|
|
|
@@ -14838,6 +19717,7 @@ fn bar() -> Option<String> {
|
|
|
|
|
"clippy::unnecessary_get_then_check",
|
|
|
|
|
"clippy::unnecessary_result_map_or_else",
|
|
|
|
|
"clippy::zero_repeat_side_effects",
|
|
|
|
|
"clippy::zombie_processes",
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|