{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/rust/cargo-manifest/_shared/latest--cargo-lints-rust.json",
  "title": "Rust Compiler Lints",
  "description": "Lint settings for Rust compiler individual lints and lint groups.",
  "x-lintel": {
    "source": "https://www.schemastore.org/cargo-lints-rust.json",
    "sourceSha256": "d3c94f65ad1a78b5ba59c8286c79448f622f4cfbc5bbef591fc328e8546a7885"
  },
  "type": "object",
  "properties": {
    "aarch64_softfloat_neon": {
      "$ref": "#/$defs/Lint",
      "title": "Aarch64 Softfloat Neon",
      "description": "The `aarch64_softfloat_neon` lint detects usage of `#[target_feature(enable = \"neon\")]` on softfloat aarch64 targets. Enabling this target feature causes LLVM to alter the ABI of function calls, making this attribute unsound to use.",
      "default": "warn"
    },
    "absolute_paths_not_starting_with_crate": {
      "$ref": "#/$defs/Lint",
      "title": "Absolute Paths Not Starting With Crate",
      "description": "The `absolute_paths_not_starting_with_crate` lint detects fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name",
      "default": "allow"
    },
    "ambiguous_associated_items": {
      "$ref": "#/$defs/Lint",
      "title": "Ambiguous Associated Items",
      "description": "The `ambiguous_associated_items` lint detects ambiguity between associated items and enum variants.",
      "default": "deny"
    },
    "ambiguous_glob_imports": {
      "$ref": "#/$defs/Lint",
      "title": "Ambiguous Glob Imports",
      "description": "The `ambiguous_glob_imports` lint detects glob imports that should report ambiguity errors, but previously didn’t do that due to rustc bugs.",
      "default": "deny"
    },
    "ambiguous_glob_reexports": {
      "$ref": "#/$defs/Lint",
      "title": "Ambiguous Glob Reexports",
      "description": "The `ambiguous_glob_reexports` lint detects cases where names re-exported via globs collide. Downstream users trying to use the same name re-exported from multiple globs will receive a warning pointing out redefinition of the same name.",
      "default": "warn"
    },
    "ambiguous_negative_literals": {
      "$ref": "#/$defs/Lint",
      "title": "Ambiguous Negative Literals",
      "description": "The `ambiguous_negative_literals` lint checks for cases that are confusing between a negative literal and a negation that’s not part of the literal.",
      "default": "allow"
    },
    "ambiguous_wide_pointer_comparisons": {
      "$ref": "#/$defs/Lint",
      "title": "Ambiguous Wide Pointer Comparisons",
      "description": "The `ambiguous_wide_pointer_comparisons` lint checks comparison of `*const/*mut ?Sized` as the operands.",
      "default": "warn"
    },
    "anonymous_parameters": {
      "$ref": "#/$defs/Lint",
      "title": "Anonymous Parameters",
      "description": "The `anonymous_parameters` lint detects anonymous parameters in trait definitions.",
      "default": "warn"
    },
    "arithmetic_overflow": {
      "$ref": "#/$defs/Lint",
      "title": "Arithmetic Overflow",
      "description": "The `arithmetic_overflow` lint detects that an arithmetic operation will overflow.",
      "default": "deny"
    },
    "array_into_iter": {
      "$ref": "#/$defs/Lint",
      "title": "Array Into Iter",
      "description": "The `array_into_iter` lint detects calling `into_iter` on arrays.",
      "default": "warn"
    },
    "asm_sub_register": {
      "$ref": "#/$defs/Lint",
      "title": "Asm Sub Register",
      "description": "The `asm_sub_register` lint detects using only a subset of a register for inline asm inputs.",
      "default": "warn"
    },
    "async_fn_in_trait": {
      "$ref": "#/$defs/Lint",
      "title": "Async Fn In Trait",
      "description": "The `async_fn_in_trait` lint detects use of `async fn` in the definition of a publicly-reachable trait.",
      "default": "warn"
    },
    "bad_asm_style": {
      "$ref": "#/$defs/Lint",
      "title": "Bad Asm Style",
      "description": "The `bad_asm_style` lint detects the use of the `.intel_syntax` and `.att_syntax` directives.",
      "default": "warn"
    },
    "bare_trait_objects": {
      "$ref": "#/$defs/Lint",
      "title": "Bare Trait Objects",
      "description": "The `bare_trait_objects` lint suggests using `dyn Trait` for trait objects.",
      "default": "warn"
    },
    "binary_asm_labels": {
      "$ref": "#/$defs/Lint",
      "title": "Binary Asm Labels",
      "description": "The `binary_asm_labels` lint detects the use of numeric labels containing only binary digits in the inline `asm!` macro.",
      "default": "deny"
    },
    "bindings_with_variant_name": {
      "$ref": "#/$defs/Lint",
      "title": "Bindings With Variant Name",
      "description": "The `bindings_with_variant_name` lint detects pattern bindings with the same name as one of the matched variants.",
      "default": "deny"
    },
    "boxed_slice_into_iter": {
      "$ref": "#/$defs/Lint",
      "title": "Boxed Slice Into Iter",
      "description": "The `boxed_slice_into_iter` lint detects calling `into_iter` on boxed slices.",
      "default": "warn"
    },
    "break_with_label_and_loop": {
      "$ref": "#/$defs/Lint",
      "title": "Break With Label And Loop",
      "description": "The `break_with_label_and_loop` lint detects labeled `break` expressions with an unlabeled loop as their value expression.",
      "default": "warn"
    },
    "clashing_extern_declarations": {
      "$ref": "#/$defs/Lint",
      "title": "Clashing Extern Declarations",
      "description": "The `clashing_extern_declarations` lint detects when an `extern fn` has been declared with the same name but different types.",
      "default": "warn"
    },
    "closure_returning_async_block": {
      "$ref": "#/$defs/Lint",
      "title": "Closure Returning Async Block",
      "description": "The `closure_returning_async_block` lint detects cases where users write a closure that returns an async block.",
      "default": "allow"
    },
    "coherence_leak_check": {
      "$ref": "#/$defs/Lint",
      "title": "Coherence Leak Check",
      "description": "The `coherence_leak_check` lint detects conflicting implementations of a trait that are only distinguished by the old leak-check code.",
      "default": "warn"
    },
    "conflicting_repr_hints": {
      "$ref": "#/$defs/Lint",
      "title": "Conflicting Repr Hints",
      "description": "The `conflicting_repr_hints` lint detects `repr` attributes with conflicting hints.",
      "default": "deny"
    },
    "confusable_idents": {
      "$ref": "#/$defs/Lint",
      "title": "Confusable Idents",
      "description": "The `confusable_idents` lint detects visually confusable pairs between identifiers.",
      "default": "warn"
    },
    "const_evaluatable_unchecked": {
      "$ref": "#/$defs/Lint",
      "title": "Const Evaluatable Unchecked",
      "description": "The `const_evaluatable_unchecked` lint detects a generic constant used in a type.",
      "default": "warn"
    },
    "const_item_mutation": {
      "$ref": "#/$defs/Lint",
      "title": "Const Item Mutation",
      "description": "The `const_item_mutation` lint detects attempts to mutate a `const` item.",
      "default": "warn"
    },
    "dangerous_implicit_autorefs": {
      "$ref": "#/$defs/Lint",
      "title": "Dangerous Implicit Autorefs",
      "description": "The `dangerous_implicit_autorefs` lint checks for implicitly taken references to dereferences of raw pointers.",
      "default": "deny"
    },
    "dangling_pointers_from_temporaries": {
      "$ref": "#/$defs/Lint",
      "title": "Dangling Pointers From Temporaries",
      "description": "The `dangling_pointers_from_temporaries` lint detects getting a pointer to data of a temporary that will immediately get dropped.",
      "default": "warn"
    },
    "dead_code": {
      "$ref": "#/$defs/Lint",
      "title": "Dead Code",
      "description": "The `dead_code` lint detects unused, unexported items.",
      "default": "warn"
    },
    "default_overrides_default_fields": {
      "$ref": "#/$defs/Lint",
      "title": "Default Overrides Default Fields",
      "description": "The `default_overrides_default_fields` lint checks for manual `impl` blocks of the `Default` trait of types with default field values.",
      "default": "deny"
    },
    "dependency_on_unit_never_type_fallback": {
      "$ref": "#/$defs/Lint",
      "title": "Dependency On Unit Never Type Fallback",
      "description": "The `dependency_on_unit_never_type_fallback` lint detects cases where code compiles with never type fallback being `()`, but will stop compiling with fallback being `!`.",
      "default": "warn"
    },
    "deprecated": {
      "$ref": "#/$defs/Lint",
      "title": "Deprecated",
      "description": "The `deprecated` lint detects use of deprecated items.",
      "default": "warn"
    },
    "deprecated_in_future": {
      "$ref": "#/$defs/Lint",
      "title": "Deprecated In Future",
      "description": "detects use of items that will be deprecated in a future version.",
      "default": "allow"
    },
    "deprecated_safe_2024": {
      "$ref": "#/$defs/Lint",
      "title": "Deprecated Safe 2024",
      "description": "The `deprecated_safe_2024` lint detects unsafe functions being used as safe functions.",
      "default": "allow"
    },
    "deprecated_where_clause_location": {
      "$ref": "#/$defs/Lint",
      "title": "Deprecated Where Clause Location",
      "description": "The `deprecated_where_clause_location` lint detects when a where clause in front of the equals in an associated type.",
      "default": "warn"
    },
    "deref_into_dyn_supertrait": {
      "$ref": "#/$defs/Lint",
      "title": "Deref Into Dyn Supertrait",
      "description": "The `deref_into_dyn_supertrait` lint is emitted whenever there is a `Deref` implementation for `dyn SubTrait` with a `dyn SuperTrait` type as the `Output` type.",
      "default": "allow"
    },
    "deref_nullptr": {
      "$ref": "#/$defs/Lint",
      "title": "Deref Nullptr",
      "description": "The `deref_nullptr` lint detects when a null pointer is dereferenced, which causes undefined behavior.",
      "default": "warn"
    },
    "double_negations": {
      "$ref": "#/$defs/Lint",
      "title": "Double Negations",
      "description": "The `double_negations` lint detects expressions of the form `--x`.",
      "default": "warn"
    },
    "drop_bounds": {
      "$ref": "#/$defs/Lint",
      "title": "Drop Bounds",
      "description": "The `drop_bounds` lint checks for generics with `std::ops::Drop` as bounds.",
      "default": "warn"
    },
    "dropping_copy_types": {
      "$ref": "#/$defs/Lint",
      "title": "Dropping Copy Types",
      "description": "The `dropping_copy_types` lint checks for calls to `std::mem::drop` with a value that derives the Copy trait.",
      "default": "warn"
    },
    "dropping_references": {
      "$ref": "#/$defs/Lint",
      "title": "Dropping References",
      "description": "The `dropping_references` lint checks for calls to `std::mem::drop` with a reference instead of an owned value.",
      "default": "warn"
    },
    "duplicate_macro_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Duplicate Macro Attributes",
      "description": "The `duplicate_macro_attributes` lint detects when a `#[test]`-like built-in macro attribute is duplicated on an item. This lint may trigger on `bench`, `cfg_eval`, `test` and `test_case`.",
      "default": "warn"
    },
    "dyn_drop": {
      "$ref": "#/$defs/Lint",
      "title": "Dyn Drop",
      "description": "The `dyn_drop` lint checks for trait objects with `std::ops::Drop`.",
      "default": "warn"
    },
    "edition_2024_expr_fragment_specifier": {
      "$ref": "#/$defs/Lint",
      "title": "Edition 2024 Expr Fragment Specifier",
      "description": "The `edition_2024_expr_fragment_specifier` lint detects the use of `expr` fragments in macros during migration to the 2024 edition.",
      "default": "allow"
    },
    "elided_lifetimes_in_associated_constant": {
      "$ref": "#/$defs/Lint",
      "title": "Elided Lifetimes In Associated Constant",
      "description": "The `elided_lifetimes_in_associated_constant` lint detects elided lifetimes in associated constants when there are other lifetimes in scope. This was accidentally supported, and this lint was later relaxed to allow eliding lifetimes to `'static` when there are no lifetimes in scope.",
      "default": "deny"
    },
    "elided_lifetimes_in_paths": {
      "$ref": "#/$defs/Lint",
      "title": "Elided Lifetimes In Paths",
      "description": "The `elided_lifetimes_in_paths` lint detects the use of hidden lifetime parameters.",
      "default": "allow"
    },
    "ellipsis_inclusive_range_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Ellipsis Inclusive Range Patterns",
      "description": "The `ellipsis_inclusive_range_patterns` lint detects the `...` range pattern, which is deprecated.",
      "default": "warn"
    },
    "enum_intrinsics_non_enums": {
      "$ref": "#/$defs/Lint",
      "title": "Enum Intrinsics Non Enums",
      "description": "The `enum_intrinsics_non_enums` lint detects calls to intrinsic functions that require an enum (`core::mem::discriminant`, `core::mem::variant_count`), but are called with a non-enum type.",
      "default": "deny"
    },
    "explicit_builtin_cfgs_in_flags": {
      "$ref": "#/$defs/Lint",
      "title": "Explicit Builtin Cfgs In Flags",
      "description": "The `explicit_builtin_cfgs_in_flags` lint detects builtin cfgs set via the `--cfg` flag.",
      "default": "deny"
    },
    "explicit_outlives_requirements": {
      "$ref": "#/$defs/Lint",
      "title": "Explicit Outlives Requirements",
      "description": "The `explicit_outlives_requirements` lint detects unnecessary lifetime bounds that can be inferred.",
      "default": "allow"
    },
    "exported_private_dependencies": {
      "$ref": "#/$defs/Lint",
      "title": "Exported Private Dependencies",
      "description": "The `exported_private_dependencies` lint detects private dependencies that are exposed in a public interface.",
      "default": "warn"
    },
    "ffi_unwind_calls": {
      "$ref": "#/$defs/Lint",
      "title": "Ffi Unwind Calls",
      "description": "The `ffi_unwind_calls` lint detects calls to foreign functions or function pointers with `C-unwind` or other FFI-unwind ABIs.",
      "default": "allow"
    },
    "for_loops_over_fallibles": {
      "$ref": "#/$defs/Lint",
      "title": "For Loops Over Fallibles",
      "description": "The `for_loops_over_fallibles` lint checks for `for` loops over `Option` or `Result` values.",
      "default": "warn"
    },
    "forbidden_lint_groups": {
      "$ref": "#/$defs/Lint",
      "title": "Forbidden Lint Groups",
      "description": "The `forbidden_lint_groups` lint detects violations of `forbid` applied to a lint group. Due to a bug in the compiler, these used to be overlooked entirely. They now generate a warning.",
      "default": "warn"
    },
    "forgetting_copy_types": {
      "$ref": "#/$defs/Lint",
      "title": "Forgetting Copy Types",
      "description": "The `forgetting_copy_types` lint checks for calls to `std::mem::forget` with a value that derives the Copy trait.",
      "default": "warn"
    },
    "forgetting_references": {
      "$ref": "#/$defs/Lint",
      "title": "Forgetting References",
      "description": "The `forgetting_references` lint checks for calls to `std::mem::forget` with a reference instead of an owned value.",
      "default": "warn"
    },
    "function_item_references": {
      "$ref": "#/$defs/Lint",
      "title": "Function Item References",
      "description": "The `function_item_references` lint detects function references that are formatted with `fmt::Pointer` or transmuted.",
      "default": "warn"
    },
    "fuzzy_provenance_casts": {
      "$ref": "#/$defs/Lint",
      "title": "Fuzzy Provenance Casts",
      "description": "The `fuzzy_provenance_casts` lint detects an `as` cast between an integer and a pointer.",
      "default": "allow"
    },
    "hidden_glob_reexports": {
      "$ref": "#/$defs/Lint",
      "title": "Hidden Glob Reexports",
      "description": "The `hidden_glob_reexports` lint detects cases where glob re-export items are shadowed by private items.",
      "default": "warn"
    },
    "if_let_rescope": {
      "$ref": "#/$defs/Lint",
      "title": "If Let Rescope",
      "description": "The `if_let_rescope` lint detects cases where a temporary value with significant drop is generated on the right hand side of `if let` and suggests a rewrite into `match` when possible.",
      "default": "allow"
    },
    "ill_formed_attribute_input": {
      "$ref": "#/$defs/Lint",
      "title": "Ill Formed Attribute Input",
      "description": "The `ill_formed_attribute_input` lint detects ill-formed attribute inputs that were previously accepted and used in practice.",
      "default": "deny"
    },
    "impl_trait_overcaptures": {
      "$ref": "#/$defs/Lint",
      "title": "Impl Trait Overcaptures",
      "description": "The `impl_trait_overcaptures` lint warns against cases where lifetime capture behavior will differ in edition 2024.",
      "default": "allow"
    },
    "impl_trait_redundant_captures": {
      "$ref": "#/$defs/Lint",
      "title": "Impl Trait Redundant Captures",
      "description": "The `impl_trait_redundant_captures` lint warns against cases where use of the precise capturing `use ` syntax is not needed.",
      "default": "allow"
    },
    "improper_ctypes": {
      "$ref": "#/$defs/Lint",
      "title": "Improper Ctypes",
      "description": "The `improper_ctypes` lint detects incorrect use of types in foreign modules.",
      "default": "warn"
    },
    "improper_ctypes_definitions": {
      "$ref": "#/$defs/Lint",
      "title": "Improper Ctypes Definitions",
      "description": "The `improper_ctypes_definitions` lint detects incorrect use of `extern` function definitions.",
      "default": "warn"
    },
    "incomplete_features": {
      "$ref": "#/$defs/Lint",
      "title": "Incomplete Features",
      "description": "The `incomplete_features` lint detects unstable features enabled with the `feature` attribute that may function improperly in some or all cases.",
      "default": "warn"
    },
    "incomplete_include": {
      "$ref": "#/$defs/Lint",
      "title": "Incomplete Include",
      "description": "The `incomplete_include` lint detects the use of the `include!` macro with a file that contains more than one expression.",
      "default": "deny"
    },
    "ineffective_unstable_trait_impl": {
      "$ref": "#/$defs/Lint",
      "title": "Ineffective Unstable Trait Impl",
      "description": "The `ineffective_unstable_trait_impl` lint detects `#[unstable]` attributes which are not used.",
      "default": "deny"
    },
    "inline_no_sanitize": {
      "$ref": "#/$defs/Lint",
      "title": "Inline No Sanitize",
      "description": "The `inline_no_sanitize` lint detects incompatible use of `#[inline(always)]` and `#[sanitize(xyz = \"off\")]`.",
      "default": "warn"
    },
    "internal_features": {
      "$ref": "#/$defs/Lint",
      "title": "Internal Features",
      "description": "The `internal_features` lint detects unstable features enabled with the `feature` attribute that are internal to the compiler or standard library.",
      "default": "warn"
    },
    "invalid_atomic_ordering": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Atomic Ordering",
      "description": "The `invalid_atomic_ordering` lint detects passing an `Ordering` to an atomic operation that does not support that ordering.",
      "default": "deny"
    },
    "invalid_doc_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Doc Attributes",
      "description": "The `invalid_doc_attributes` lint detects when the `#[doc(...)]` is misused.",
      "default": "deny"
    },
    "invalid_from_utf8": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid From Utf8",
      "description": "The `invalid_from_utf8` lint checks for calls to `std::str::from_utf8` and `std::str::from_utf8_mut` with a known invalid UTF-8 value.",
      "default": "warn"
    },
    "invalid_from_utf8_unchecked": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid From Utf8 Unchecked",
      "description": "The `invalid_from_utf8_unchecked` lint checks for calls to `std::str::from_utf8_unchecked` and `std::str::from_utf8_unchecked_mut` with a known invalid UTF-8 value.",
      "default": "deny"
    },
    "invalid_macro_export_arguments": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Macro Export Arguments",
      "description": "The `invalid_macro_export_arguments` lint detects cases where `#[macro_export]` is being used with invalid arguments.",
      "default": "warn"
    },
    "invalid_nan_comparisons": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Nan Comparisons",
      "description": "The `invalid_nan_comparisons` lint checks comparison with `f32::NAN` or `f64::NAN` as one of the operand.",
      "default": "warn"
    },
    "invalid_null_arguments": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Null Arguments",
      "description": "The `invalid_null_arguments` lint checks for invalid usage of null pointers in arguments.",
      "default": "deny"
    },
    "invalid_reference_casting": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Reference Casting",
      "description": "The `invalid_reference_casting` lint checks for casts of `&T` to `&mut T` without using interior mutability.",
      "default": "deny"
    },
    "invalid_type_param_default": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Type Param Default",
      "description": "The `invalid_type_param_default` lint detects type parameter defaults erroneously allowed in an invalid location.",
      "default": "deny"
    },
    "invalid_value": {
      "$ref": "#/$defs/Lint",
      "title": "Invalid Value",
      "description": "The `invalid_value` lint detects creating a value that is not valid, such as a null reference.",
      "default": "warn"
    },
    "irrefutable_let_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Irrefutable Let Patterns",
      "description": "The `irrefutable_let_patterns` lint detects irrefutable patterns in `if let`s, `while let`s, and `if let` guards.",
      "default": "warn"
    },
    "keyword_idents_2018": {
      "$ref": "#/$defs/Lint",
      "title": "Keyword Idents 2018",
      "description": "The `keyword_idents_2018` lint detects edition keywords being used as an identifier.",
      "default": "allow"
    },
    "keyword_idents_2024": {
      "$ref": "#/$defs/Lint",
      "title": "Keyword Idents 2024",
      "description": "The `keyword_idents_2024` lint detects edition keywords being used as an identifier.",
      "default": "allow"
    },
    "large_assignments": {
      "$ref": "#/$defs/Lint",
      "title": "Large Assignments",
      "description": "The `large_assignments` lint detects when objects of large types are being moved around.",
      "default": "warn"
    },
    "late_bound_lifetime_arguments": {
      "$ref": "#/$defs/Lint",
      "title": "Late Bound Lifetime Arguments",
      "description": "The `late_bound_lifetime_arguments` lint detects generic lifetime arguments in path segments with late bound lifetime parameters.",
      "default": "warn"
    },
    "legacy_derive_helpers": {
      "$ref": "#/$defs/Lint",
      "title": "Legacy Derive Helpers",
      "description": "The `legacy_derive_helpers` lint detects derive helper attributes that are used before they are introduced.",
      "default": "warn"
    },
    "let_underscore_drop": {
      "$ref": "#/$defs/Lint",
      "title": "Let Underscore Drop",
      "description": "The `let_underscore_drop` lint checks for statements which don’t bind an expression which has a non-trivial Drop implementation to anything, causing the expression to be dropped immediately instead of at end of scope.",
      "default": "allow"
    },
    "let_underscore_lock": {
      "$ref": "#/$defs/Lint",
      "title": "Let Underscore Lock",
      "description": "The `let_underscore_lock` lint checks for statements which don’t bind a mutex to anything, causing the lock to be released immediately instead of at end of scope, which is typically incorrect.",
      "default": "deny"
    },
    "linker_messages": {
      "$ref": "#/$defs/Lint",
      "title": "Linker Messages",
      "description": "The `linker_messages` lint forwards warnings from the linker.",
      "default": "allow"
    },
    "long_running_const_eval": {
      "$ref": "#/$defs/Lint",
      "title": "Long Running Const Eval",
      "description": "The `long_running_const_eval` lint is emitted when const eval is running for a long time to ensure rustc terminates even if you accidentally wrote an infinite loop.",
      "default": "deny"
    },
    "lossy_provenance_casts": {
      "$ref": "#/$defs/Lint",
      "title": "Lossy Provenance Casts",
      "description": "The `lossy_provenance_casts` lint detects an `as` cast between a pointer and an integer.",
      "default": "allow"
    },
    "macro_expanded_macro_exports_accessed_by_absolute_paths": {
      "$ref": "#/$defs/Lint",
      "title": "Macro Expanded Macro Exports Accessed By Absolute Paths",
      "description": "The `macro_expanded_macro_exports_accessed_by_absolute_paths` lint detects macro-expanded `macro_export` macros from the current crate that cannot be referred to by absolute paths.",
      "default": "deny"
    },
    "macro_use_extern_crate": {
      "$ref": "#/$defs/Lint",
      "title": "Macro Use Extern Crate",
      "description": "The `macro_use_extern_crate` lint detects the use of the `macro_use` attribute.",
      "default": "allow"
    },
    "malformed_diagnostic_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Malformed Diagnostic Attributes",
      "description": "The `malformed_diagnostic_attributes` lint detects malformed diagnostic attributes.",
      "default": "warn"
    },
    "malformed_diagnostic_format_literals": {
      "$ref": "#/$defs/Lint",
      "title": "Malformed Diagnostic Format Literals",
      "description": "The `malformed_diagnostic_format_literals` lint detects malformed diagnostic format literals.",
      "default": "warn"
    },
    "map_unit_fn": {
      "$ref": "#/$defs/Lint",
      "title": "Map Unit Fn",
      "description": "The `map_unit_fn` lint checks for `Iterator::map` receive a callable that returns `()`.",
      "default": "warn"
    },
    "meta_variable_misuse": {
      "$ref": "#/$defs/Lint",
      "title": "Meta Variable Misuse",
      "description": "The `meta_variable_misuse` lint detects possible meta-variable misuse in macro definitions.",
      "default": "allow"
    },
    "mismatched_lifetime_syntaxes": {
      "$ref": "#/$defs/Lint",
      "title": "Mismatched Lifetime Syntaxes",
      "description": "The `mismatched_lifetime_syntaxes` lint detects when the same lifetime is referred to by different syntaxes between function arguments and return values.",
      "default": "warn"
    },
    "misplaced_diagnostic_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Misplaced Diagnostic Attributes",
      "description": "The `misplaced_diagnostic_attributes` lint detects wrongly placed diagnostic attributes.",
      "default": "warn"
    },
    "missing_abi": {
      "$ref": "#/$defs/Lint",
      "title": "Missing Abi",
      "description": "The `missing_abi` lint detects cases where the ABI is omitted from `extern` declarations.",
      "default": "warn"
    },
    "missing_copy_implementations": {
      "$ref": "#/$defs/Lint",
      "title": "Missing Copy Implementations",
      "description": "The `missing_copy_implementations` lint detects potentially-forgotten implementations of `Copy` for public types.",
      "default": "allow"
    },
    "missing_debug_implementations": {
      "$ref": "#/$defs/Lint",
      "title": "Missing Debug Implementations",
      "description": "The `missing_debug_implementations` lint detects missing implementations of `fmt::Debug` for public types.",
      "default": "allow"
    },
    "missing_docs": {
      "$ref": "#/$defs/Lint",
      "title": "Missing Docs",
      "description": "The `missing_docs` lint detects missing documentation for public items.",
      "default": "allow"
    },
    "missing_unsafe_on_extern": {
      "$ref": "#/$defs/Lint",
      "title": "Missing Unsafe On Extern",
      "description": "The `missing_unsafe_on_extern` lint detects missing unsafe keyword on extern declarations.",
      "default": "allow"
    },
    "mixed_script_confusables": {
      "$ref": "#/$defs/Lint",
      "title": "Mixed Script Confusables",
      "description": "The `mixed_script_confusables` lint detects visually confusable characters in identifiers between different scripts.",
      "default": "warn"
    },
    "multiple_supertrait_upcastable": {
      "$ref": "#/$defs/Lint",
      "title": "Multiple Supertrait Upcastable",
      "description": "The `multiple_supertrait_upcastable` lint detects when a dyn-compatible trait has multiple supertraits.",
      "default": "allow"
    },
    "must_not_suspend": {
      "$ref": "#/$defs/Lint",
      "title": "Must Not Suspend",
      "description": "The `must_not_suspend` lint guards against values that shouldn’t be held across suspend points (`.await`)",
      "default": "allow"
    },
    "mutable_transmutes": {
      "$ref": "#/$defs/Lint",
      "title": "Mutable Transmutes",
      "description": "The `mutable_transmutes` lint catches transmuting from `&T` to `&mut T` because it is undefined behavior.",
      "default": "deny"
    },
    "named_arguments_used_positionally": {
      "$ref": "#/$defs/Lint",
      "title": "Named Arguments Used Positionally",
      "description": "The `named_arguments_used_positionally` lint detects cases where named arguments are only used positionally in format strings. This usage is valid but potentially very confusing.",
      "default": "warn"
    },
    "named_asm_labels": {
      "$ref": "#/$defs/Lint",
      "title": "Named Asm Labels",
      "description": "The `named_asm_labels` lint detects the use of named labels in the inline `asm!` macro.",
      "default": "deny"
    },
    "never_type_fallback_flowing_into_unsafe": {
      "$ref": "#/$defs/Lint",
      "title": "Never Type Fallback Flowing Into Unsafe",
      "description": "The `never_type_fallback_flowing_into_unsafe` lint detects cases where never type fallback affects unsafe function calls.",
      "default": "warn"
    },
    "no_mangle_const_items": {
      "$ref": "#/$defs/Lint",
      "title": "No Mangle Const Items",
      "description": "The `no_mangle_const_items` lint detects any `const` items with the `no_mangle` attribute.",
      "default": "deny"
    },
    "no_mangle_generic_items": {
      "$ref": "#/$defs/Lint",
      "title": "No Mangle Generic Items",
      "description": "The `no_mangle_generic_items` lint detects generic items that must be mangled.",
      "default": "warn"
    },
    "non_ascii_idents": {
      "$ref": "#/$defs/Lint",
      "title": "Non Ascii Idents",
      "description": "The `non_ascii_idents` lint detects non-ASCII identifiers.",
      "default": "allow"
    },
    "non_camel_case_types": {
      "$ref": "#/$defs/Lint",
      "title": "Non Camel Case Types",
      "description": "The `non_camel_case_types` lint detects types, variants, traits and type parameters that don’t have camel case names.",
      "default": "warn"
    },
    "non_contiguous_range_endpoints": {
      "$ref": "#/$defs/Lint",
      "title": "Non Contiguous Range Endpoints",
      "description": "The `non_contiguous_range_endpoints` lint detects likely off-by-one errors when using exclusive range patterns.",
      "default": "warn"
    },
    "non_exhaustive_omitted_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Non Exhaustive Omitted Patterns",
      "description": "The `non_exhaustive_omitted_patterns` lint aims to help consumers of a `#[non_exhaustive]` struct or enum who want to match all of its fields/variants explicitly.",
      "default": "allow"
    },
    "non_fmt_panics": {
      "$ref": "#/$defs/Lint",
      "title": "Non Fmt Panics",
      "description": "The `non_fmt_panics` lint detects `panic!(..)` invocations where the first argument is not a formatting string.",
      "default": "warn"
    },
    "non_local_definitions": {
      "$ref": "#/$defs/Lint",
      "title": "Non Local Definitions",
      "description": "The `non_local_definitions` lint checks for `impl` blocks and `#[macro_export]` macro inside bodies (functions, enum discriminant, …).",
      "default": "warn"
    },
    "non_shorthand_field_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Non Shorthand Field Patterns",
      "description": "The `non_shorthand_field_patterns` lint detects using `Struct { x: x }` instead of `Struct { x }` in a pattern.",
      "default": "warn"
    },
    "non_snake_case": {
      "$ref": "#/$defs/Lint",
      "title": "Non Snake Case",
      "description": "The `non_snake_case` lint detects variables, methods, functions, lifetime parameters and modules that don’t have snake case names.",
      "default": "warn"
    },
    "non_upper_case_globals": {
      "$ref": "#/$defs/Lint",
      "title": "Non Upper Case Globals",
      "description": "The `non_upper_case_globals` lint detects static items that don’t have uppercase identifiers.",
      "default": "warn"
    },
    "noop_method_call": {
      "$ref": "#/$defs/Lint",
      "title": "Noop Method Call",
      "description": "The `noop_method_call` lint detects specific calls to noop methods such as a calling ` ::clone` where `T: !Clone`.",
      "default": "warn"
    },
    "opaque_hidden_inferred_bound": {
      "$ref": "#/$defs/Lint",
      "title": "Opaque Hidden Inferred Bound",
      "description": "The `opaque_hidden_inferred_bound` lint detects cases in which nested `impl Trait` in associated type bounds are not written generally enough to satisfy the bounds of the associated type.",
      "default": "warn"
    },
    "out_of_scope_macro_calls": {
      "$ref": "#/$defs/Lint",
      "title": "Out Of Scope Macro Calls",
      "description": "The `out_of_scope_macro_calls` lint detects `macro_rules` called when they are not in scope, above their definition, which may happen in key-value attributes.",
      "default": "warn"
    },
    "overflowing_literals": {
      "$ref": "#/$defs/Lint",
      "title": "Overflowing Literals",
      "description": "The `overflowing_literals` lint detects literals out of range for their type.",
      "default": "deny"
    },
    "overlapping_range_endpoints": {
      "$ref": "#/$defs/Lint",
      "title": "Overlapping Range Endpoints",
      "description": "The `overlapping_range_endpoints` lint detects `match` arms that have range patterns that overlap on their endpoints.",
      "default": "warn"
    },
    "path_statements": {
      "$ref": "#/$defs/Lint",
      "title": "Path Statements",
      "description": "The `path_statements` lint detects path statements with no effect.",
      "default": "warn"
    },
    "patterns_in_fns_without_body": {
      "$ref": "#/$defs/Lint",
      "title": "Patterns In Fns Without Body",
      "description": "The `patterns_in_fns_without_body` lint detects `mut` identifier patterns as a parameter in functions without a body.",
      "default": "deny"
    },
    "private_bounds": {
      "$ref": "#/$defs/Lint",
      "title": "Private Bounds",
      "description": "The `private_bounds` lint detects types in a secondary interface of an item, that are more private than the item itself. Secondary interface of an item consists of bounds on generic parameters and where clauses, including supertraits for trait items.",
      "default": "warn"
    },
    "private_interfaces": {
      "$ref": "#/$defs/Lint",
      "title": "Private Interfaces",
      "description": "The `private_interfaces` lint detects types in a primary interface of an item, that are more private than the item itself. Primary interface of an item is all its interface except for bounds on generic parameters and where clauses.",
      "default": "warn"
    },
    "proc_macro_derive_resolution_fallback": {
      "$ref": "#/$defs/Lint",
      "title": "Proc Macro Derive Resolution Fallback",
      "description": "The `proc_macro_derive_resolution_fallback` lint detects proc macro derives using inaccessible names from parent modules.",
      "default": "deny"
    },
    "ptr_to_integer_transmute_in_consts": {
      "$ref": "#/$defs/Lint",
      "title": "Ptr To Integer Transmute In Consts",
      "description": "The `ptr_to_integer_transmute_in_consts` lint detects pointer to integer transmute in const functions and associated constants.",
      "default": "warn"
    },
    "pub_use_of_private_extern_crate": {
      "$ref": "#/$defs/Lint",
      "title": "Pub Use Of Private Extern Crate",
      "description": "The `pub_use_of_private_extern_crate` lint detects a specific situation of re-exporting a private `extern crate`.",
      "default": "deny"
    },
    "redundant_imports": {
      "$ref": "#/$defs/Lint",
      "title": "Redundant Imports",
      "description": "The `redundant_imports` lint detects imports that are redundant due to being imported already; either through a previous import, or being present in the prelude.",
      "default": "allow"
    },
    "redundant_lifetimes": {
      "$ref": "#/$defs/Lint",
      "title": "Redundant Lifetimes",
      "description": "The `redundant_lifetimes` lint detects lifetime parameters that are redundant because they are equal to another named lifetime.",
      "default": "allow"
    },
    "redundant_semicolons": {
      "$ref": "#/$defs/Lint",
      "title": "Redundant Semicolons",
      "description": "The `redundant_semicolons` lint detects unnecessary trailing semicolons.",
      "default": "warn"
    },
    "refining_impl_trait_internal": {
      "$ref": "#/$defs/Lint",
      "title": "Refining Impl Trait Internal",
      "description": "The `refining_impl_trait_internal` lint detects `impl Trait` return types in method signatures that are refined by a trait implementation, meaning the implementation adds information about the return type that is not present in the trait.",
      "default": "warn"
    },
    "refining_impl_trait_reachable": {
      "$ref": "#/$defs/Lint",
      "title": "Refining Impl Trait Reachable",
      "description": "The `refining_impl_trait_reachable` lint detects `impl Trait` return types in method signatures that are refined by a publicly reachable trait implementation, meaning the implementation adds information about the return type that is not present in the trait.",
      "default": "warn"
    },
    "renamed_and_removed_lints": {
      "$ref": "#/$defs/Lint",
      "title": "Renamed And Removed Lints",
      "description": "The `renamed_and_removed_lints` lint detects lints that have been renamed or removed.",
      "default": "warn"
    },
    "repr_transparent_external_private_fields": {
      "$ref": "#/$defs/Lint",
      "title": "Repr Transparent External Private Fields",
      "description": "transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields.",
      "default": "warn"
    },
    "rust_2021_incompatible_closure_captures": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2021 Incompatible Closure Captures",
      "description": "The `rust_2021_incompatible_closure_captures` lint detects variables that aren’t completely captured in Rust 2021, such that the `Drop` order of their fields may differ between Rust 2018 and 2021.",
      "default": "allow"
    },
    "rust_2021_incompatible_or_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2021 Incompatible Or Patterns",
      "description": "The `rust_2021_incompatible_or_patterns` lint detects usage of old versions of or-patterns.",
      "default": "allow"
    },
    "rust_2021_prefixes_incompatible_syntax": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2021 Prefixes Incompatible Syntax",
      "description": "The `rust_2021_prefixes_incompatible_syntax` lint detects identifiers that will be parsed as a prefix instead in Rust 2021.",
      "default": "allow"
    },
    "rust_2021_prelude_collisions": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2021 Prelude Collisions",
      "description": "The `rust_2021_prelude_collisions` lint detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions.",
      "default": "allow"
    },
    "rust_2024_guarded_string_incompatible_syntax": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2024 Guarded String Incompatible Syntax",
      "description": "The `rust_2024_guarded_string_incompatible_syntax` lint detects `#` tokens that will be parsed as part of a guarded string literal in Rust 2024.",
      "default": "allow"
    },
    "rust_2024_incompatible_pat": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2024 Incompatible Pat",
      "description": "The `rust_2024_incompatible_pat` lint detects patterns whose meaning will change in the Rust 2024 edition.",
      "default": "allow"
    },
    "rust_2024_prelude_collisions": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2024 Prelude Collisions",
      "description": "The `rust_2024_prelude_collisions` lint detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions.",
      "default": "allow"
    },
    "self_constructor_from_outer_item": {
      "$ref": "#/$defs/Lint",
      "title": "Self Constructor From Outer Item",
      "description": "The `self_constructor_from_outer_item` lint detects cases where the `Self` constructor was silently allowed due to a bug in the resolver, and which may produce surprising and unintended behavior.",
      "default": "warn"
    },
    "semicolon_in_expressions_from_macros": {
      "$ref": "#/$defs/Lint",
      "title": "Semicolon In Expressions From Macros",
      "description": "The `semicolon_in_expressions_from_macros` lint detects trailing semicolons in macro bodies when the macro is invoked in expression position. This was previous accepted, but is being phased out.",
      "default": "warn"
    },
    "single_use_lifetimes": {
      "$ref": "#/$defs/Lint",
      "title": "Single Use Lifetimes",
      "description": "The `single_use_lifetimes` lint detects lifetimes that are only used once.",
      "default": "allow"
    },
    "soft_unstable": {
      "$ref": "#/$defs/Lint",
      "title": "Soft Unstable",
      "description": "The `soft_unstable` lint detects unstable features that were unintentionally allowed on stable. This is a future-incompatible lint to transition this to a hard error in the future. See issue #64266 for more details.",
      "default": "deny"
    },
    "special_module_name": {
      "$ref": "#/$defs/Lint",
      "title": "Special Module Name",
      "description": "The `special_module_name` lint detects module declarations for files that have a special meaning.",
      "default": "warn"
    },
    "stable_features": {
      "$ref": "#/$defs/Lint",
      "title": "Stable Features",
      "description": "The `stable_features` lint detects a `feature` attribute that has since been made stable.",
      "default": "warn"
    },
    "static_mut_refs": {
      "$ref": "#/$defs/Lint",
      "title": "Static Mut Refs",
      "description": "The `static_mut_refs` lint checks for shared or mutable references of mutable static inside `unsafe` blocks and `unsafe` functions.",
      "default": "warn"
    },
    "supertrait_item_shadowing_definition": {
      "$ref": "#/$defs/Lint",
      "title": "Supertrait Item Shadowing Definition",
      "description": "detects when a supertrait item is shadowed by a subtrait item.",
      "default": "allow"
    },
    "supertrait_item_shadowing_usage": {
      "$ref": "#/$defs/Lint",
      "title": "Supertrait Item Shadowing Usage",
      "description": "detects when a supertrait item is shadowed by a subtrait item.",
      "default": "allow"
    },
    "suspicious_double_ref_op": {
      "$ref": "#/$defs/Lint",
      "title": "Suspicious Double Ref Op",
      "description": "The `suspicious_double_ref_op` lint checks for usage of `.clone()`/`.borrow()`/`.deref()` on an `&&T` when `T: !Deref/Borrow/Clone`, which means the call will return the inner `&T`, instead of performing the operation on the underlying `T` and can be confusing.",
      "default": "warn"
    },
    "tail_expr_drop_order": {
      "$ref": "#/$defs/Lint",
      "title": "Tail Expr Drop Order",
      "description": "The `tail_expr_drop_order` lint looks for those values generated at the tail expression location, that runs a custom `Drop` destructor. Some of them may be dropped earlier in Edition 2024 that they used to in Edition 2021 and prior. This lint detects those cases and provides you information on those values and their custom destructor implementations. Your discretion on this information is required.",
      "default": "allow"
    },
    "test_unstable_lint": {
      "$ref": "#/$defs/Lint",
      "title": "Test Unstable Lint",
      "description": "The `test_unstable_lint` lint tests unstable lints and is perma-unstable.",
      "default": "deny"
    },
    "text_direction_codepoint_in_comment": {
      "$ref": "#/$defs/Lint",
      "title": "Text Direction Codepoint In Comment",
      "description": "The `text_direction_codepoint_in_comment` lint detects Unicode codepoints in comments that change the visual representation of text on screen in a way that does not correspond to their on memory representation.",
      "default": "deny"
    },
    "text_direction_codepoint_in_literal": {
      "$ref": "#/$defs/Lint",
      "title": "Text Direction Codepoint In Literal",
      "description": "The `text_direction_codepoint_in_literal` lint detects Unicode codepoints that change the visual representation of text on screen in a way that does not correspond to their on memory representation.",
      "default": "deny"
    },
    "trivial_bounds": {
      "$ref": "#/$defs/Lint",
      "title": "Trivial Bounds",
      "description": "The `trivial_bounds` lint detects trait bounds that don’t depend on any type parameters.",
      "default": "warn"
    },
    "trivial_casts": {
      "$ref": "#/$defs/Lint",
      "title": "Trivial Casts",
      "description": "The `trivial_casts` lint detects trivial casts which could be replaced with coercion, which may require a temporary variable.",
      "default": "allow"
    },
    "trivial_numeric_casts": {
      "$ref": "#/$defs/Lint",
      "title": "Trivial Numeric Casts",
      "description": "The `trivial_numeric_casts` lint detects trivial numeric casts of types which could be removed.",
      "default": "allow"
    },
    "type_alias_bounds": {
      "$ref": "#/$defs/Lint",
      "title": "Type Alias Bounds",
      "description": "The `type_alias_bounds` lint detects bounds in type aliases.",
      "default": "warn"
    },
    "tyvar_behind_raw_pointer": {
      "$ref": "#/$defs/Lint",
      "title": "Tyvar Behind Raw Pointer",
      "description": "The `tyvar_behind_raw_pointer` lint detects raw pointer to an inference variable.",
      "default": "warn"
    },
    "uncommon_codepoints": {
      "$ref": "#/$defs/Lint",
      "title": "Uncommon Codepoints",
      "description": "The `uncommon_codepoints` lint detects uncommon Unicode codepoints in identifiers.",
      "default": "warn"
    },
    "unconditional_panic": {
      "$ref": "#/$defs/Lint",
      "title": "Unconditional Panic",
      "description": "The `unconditional_panic` lint detects an operation that will cause a panic at runtime.",
      "default": "deny"
    },
    "unconditional_recursion": {
      "$ref": "#/$defs/Lint",
      "title": "Unconditional Recursion",
      "description": "The `unconditional_recursion` lint detects functions that cannot return without calling themselves.",
      "default": "warn"
    },
    "uncovered_param_in_projection": {
      "$ref": "#/$defs/Lint",
      "title": "Uncovered Param In Projection",
      "description": "The `uncovered_param_in_projection` lint detects a violation of one of Rust’s orphan rules for foreign trait implementations that concerns the use of type parameters inside trait associated type paths (“projections”) whose output may not be a local type that is mistakenly considered to “cover” said parameters which is unsound and which may be rejected by a future version of the compiler.",
      "default": "warn"
    },
    "undropped_manually_drops": {
      "$ref": "#/$defs/Lint",
      "title": "Undropped Manually Drops",
      "description": "The `undropped_manually_drops` lint check for calls to `std::mem::drop` with a value of `std::mem::ManuallyDrop` which doesn’t drop.",
      "default": "deny"
    },
    "unexpected_cfgs": {
      "$ref": "#/$defs/Lint",
      "title": "Unexpected Cfgs",
      "description": "The `unexpected_cfgs` lint detects unexpected conditional compilation conditions.",
      "default": "warn"
    },
    "unfulfilled_lint_expectations": {
      "$ref": "#/$defs/Lint",
      "title": "Unfulfilled Lint Expectations",
      "description": "The `unfulfilled_lint_expectations` lint detects when a lint expectation is unfulfilled.",
      "default": "warn"
    },
    "ungated_async_fn_track_caller": {
      "$ref": "#/$defs/Lint",
      "title": "Ungated Async Fn Track Caller",
      "description": "The `ungated_async_fn_track_caller` lint warns when the `#[track_caller]` attribute is used on an async function without enabling the corresponding unstable feature flag.",
      "default": "warn"
    },
    "uninhabited_static": {
      "$ref": "#/$defs/Lint",
      "title": "Uninhabited Static",
      "description": "The `uninhabited_static` lint detects uninhabited statics.",
      "default": "warn"
    },
    "unit_bindings": {
      "$ref": "#/$defs/Lint",
      "title": "Unit Bindings",
      "description": "The `unit_bindings` lint detects cases where bindings are useless because they have the unit type `()` as their inferred type. The lint is suppressed if the user explicitly annotates the let binding with the unit type `()`, or if the let binding uses an underscore wildcard pattern, i.e. `let _ = expr`, or if the binding is produced from macro expansions.",
      "default": "allow"
    },
    "unknown_crate_types": {
      "$ref": "#/$defs/Lint",
      "title": "Unknown Crate Types",
      "description": "The `unknown_crate_types` lint detects an unknown crate type found in a `crate_type` attribute.",
      "default": "deny"
    },
    "unknown_diagnostic_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Unknown Diagnostic Attributes",
      "description": "The `unknown_diagnostic_attributes` lint detects unknown diagnostic attributes.",
      "default": "warn"
    },
    "unknown_lints": {
      "$ref": "#/$defs/Lint",
      "title": "Unknown Lints",
      "description": "The `unknown_lints` lint detects unrecognized lint attributes.",
      "default": "warn"
    },
    "unnameable_test_items": {
      "$ref": "#/$defs/Lint",
      "title": "Unnameable Test Items",
      "description": "The `unnameable_test_items` lint detects `#[test]` functions that are not able to be run by the test harness because they are in a position where they are not nameable.",
      "default": "warn"
    },
    "unnameable_types": {
      "$ref": "#/$defs/Lint",
      "title": "Unnameable Types",
      "description": "The `unnameable_types` lint detects types for which you can get objects of that type, but cannot name the type itself.",
      "default": "allow"
    },
    "unnecessary_transmutes": {
      "$ref": "#/$defs/Lint",
      "title": "Unnecessary Transmutes",
      "description": "The `unnecessary_transmutes` lint detects transmutations that have safer alternatives.",
      "default": "warn"
    },
    "unpredictable_function_pointer_comparisons": {
      "$ref": "#/$defs/Lint",
      "title": "Unpredictable Function Pointer Comparisons",
      "description": "The `unpredictable_function_pointer_comparisons` lint checks comparison of function pointer as the operands.",
      "default": "warn"
    },
    "unqualified_local_imports": {
      "$ref": "#/$defs/Lint",
      "title": "Unqualified Local Imports",
      "description": "The `unqualified_local_imports` lint checks for `use` items that import a local item using a path that does not start with `self::`, `super::`, or `crate::`.",
      "default": "allow"
    },
    "unreachable_code": {
      "$ref": "#/$defs/Lint",
      "title": "Unreachable Code",
      "description": "The `unreachable_code` lint detects unreachable code paths.",
      "default": "warn"
    },
    "unreachable_patterns": {
      "$ref": "#/$defs/Lint",
      "title": "Unreachable Patterns",
      "description": "The `unreachable_patterns` lint detects unreachable patterns.",
      "default": "warn"
    },
    "unreachable_pub": {
      "$ref": "#/$defs/Lint",
      "title": "Unreachable Pub",
      "description": "The `unreachable_pub` lint triggers for `pub` items not reachable from other crates - that means neither directly accessible, nor reexported (with `pub use`), nor leaked through things like return types (which the `unnameable_types` lint can detect if desired).",
      "default": "allow"
    },
    "unsafe_attr_outside_unsafe": {
      "$ref": "#/$defs/Lint",
      "title": "Unsafe Attr Outside Unsafe",
      "description": "The `unsafe_attr_outside_unsafe` lint detects a missing unsafe keyword on attributes considered unsafe.",
      "default": "allow"
    },
    "unsafe_code": {
      "$ref": "#/$defs/Lint",
      "title": "Unsafe Code",
      "description": "The `unsafe_code` lint catches usage of `unsafe` code and other potentially unsound constructs like `no_mangle`, `export_name`, and `link_section`.",
      "default": "allow"
    },
    "unsafe_op_in_unsafe_fn": {
      "$ref": "#/$defs/Lint",
      "title": "Unsafe Op In Unsafe Fn",
      "description": "The `unsafe_op_in_unsafe_fn` lint detects unsafe operations in unsafe functions without an explicit unsafe block.",
      "default": "allow"
    },
    "unstable_features": {
      "$ref": "#/$defs/Lint",
      "title": "Unstable Features",
      "description": "The `unstable_features` lint detects uses of `#![feature]`.",
      "default": "allow"
    },
    "unstable_name_collisions": {
      "$ref": "#/$defs/Lint",
      "title": "Unstable Name Collisions",
      "description": "The `unstable_name_collisions` lint detects that you have used a name that the standard library plans to add in the future.",
      "default": "warn"
    },
    "unstable_syntax_pre_expansion": {
      "$ref": "#/$defs/Lint",
      "title": "Unstable Syntax Pre Expansion",
      "description": "The `unstable_syntax_pre_expansion` lint detects the use of unstable syntax that is discarded during attribute expansion.",
      "default": "warn"
    },
    "unsupported_calling_conventions": {
      "$ref": "#/$defs/Lint",
      "title": "Unsupported Calling Conventions",
      "description": "The `unsupported_calling_conventions` lint is output whenever there is a use of the `stdcall`, `fastcall`, and `cdecl` calling conventions (or their unwind variants) on targets that cannot meaningfully be supported for the requested target.",
      "default": "warn"
    },
    "unused_allocation": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Allocation",
      "description": "The `unused_allocation` lint detects unnecessary allocations that can be eliminated.",
      "default": "warn"
    },
    "unused_assignments": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Assignments",
      "description": "The `unused_assignments` lint detects assignments that will never be read.",
      "default": "warn"
    },
    "unused_associated_type_bounds": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Associated Type Bounds",
      "description": "The `unused_associated_type_bounds` lint is emitted when an associated type bound is added to a trait object, but the associated type has a `where Self: Sized` bound, and is thus unavailable on the trait object anyway.",
      "default": "warn"
    },
    "unused_attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Attributes",
      "description": "The `unused_attributes` lint detects attributes that were not used by the compiler.",
      "default": "warn"
    },
    "unused_braces": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Braces",
      "description": "The `unused_braces` lint detects unnecessary braces around an expression.",
      "default": "warn"
    },
    "unused_comparisons": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Comparisons",
      "description": "The `unused_comparisons` lint detects comparisons made useless by limits of the types involved.",
      "default": "warn"
    },
    "unused_crate_dependencies": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Crate Dependencies",
      "description": "The `unused_crate_dependencies` lint detects crate dependencies that are never used.",
      "default": "allow"
    },
    "unused_doc_comments": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Doc Comments",
      "description": "The `unused_doc_comments` lint detects doc comments that aren’t used by `rustdoc`.",
      "default": "warn"
    },
    "unused_extern_crates": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Extern Crates",
      "description": "The `unused_extern_crates` lint guards against `extern crate` items that are never used.",
      "default": "allow"
    },
    "unused_features": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Features",
      "description": "The `unused_features` lint detects unused or unknown features found in crate-level `feature` attributes.",
      "default": "warn"
    },
    "unused_import_braces": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Import Braces",
      "description": "The `unused_import_braces` lint catches unnecessary braces around an imported item.",
      "default": "allow"
    },
    "unused_imports": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Imports",
      "description": "The `unused_imports` lint detects imports that are never used.",
      "default": "warn"
    },
    "unused_labels": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Labels",
      "description": "The `unused_labels` lint detects labels that are never used.",
      "default": "warn"
    },
    "unused_lifetimes": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Lifetimes",
      "description": "The `unused_lifetimes` lint detects lifetime parameters that are never used.",
      "default": "allow"
    },
    "unused_macro_rules": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Macro Rules",
      "description": "The `unused_macro_rules` lint detects macro rules that were not used.",
      "default": "allow"
    },
    "unused_macros": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Macros",
      "description": "The `unused_macros` lint detects macros that were not used.",
      "default": "warn"
    },
    "unused_must_use": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Must Use",
      "description": "The `unused_must_use` lint detects unused result of a type flagged as `#[must_use]`.",
      "default": "warn"
    },
    "unused_mut": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Mut",
      "description": "The `unused_mut` lint detects mut variables which don’t need to be mutable.",
      "default": "warn"
    },
    "unused_parens": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Parens",
      "description": "The `unused_parens` lint detects `if`, `match`, `while` and `return` with parentheses; they do not need them.",
      "default": "warn"
    },
    "unused_qualifications": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Qualifications",
      "description": "The `unused_qualifications` lint detects unnecessarily qualified names.",
      "default": "allow"
    },
    "unused_results": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Results",
      "description": "The `unused_results` lint checks for the unused result of an expression in a statement.",
      "default": "allow"
    },
    "unused_unsafe": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Unsafe",
      "description": "The `unused_unsafe` lint detects unnecessary use of an `unsafe` block.",
      "default": "warn"
    },
    "unused_variables": {
      "$ref": "#/$defs/Lint",
      "title": "Unused Variables",
      "description": "The `unused_variables` lint detects variables which are not used in any way.",
      "default": "warn"
    },
    "useless_deprecated": {
      "$ref": "#/$defs/Lint",
      "title": "Useless Deprecated",
      "description": "The `useless_deprecated` lint detects deprecation attributes with no effect.",
      "default": "deny"
    },
    "useless_ptr_null_checks": {
      "$ref": "#/$defs/Lint",
      "title": "Useless Ptr Null Checks",
      "description": "The `useless_ptr_null_checks` lint checks for useless null checks against pointers obtained from non-null types.",
      "default": "warn"
    },
    "uses_power_alignment": {
      "$ref": "#/$defs/Lint",
      "title": "Uses Power Alignment",
      "description": "The `uses_power_alignment` lint detects specific `repr(C)` aggregates on AIX. In its platform C ABI, AIX uses the “power” (as in PowerPC) alignment rule (detailed in <https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=data-using-alignment-modes#alignment)>, which can also be set for XLC by `#pragma align(power)` or `-qalign=power`. Aggregates with a floating-point type as the recursively first field (as in “at offset 0”) modify the layout of subsequent fields of the associated structs to use an alignment value where the floating-point type is aligned on a 4-byte boundary.",
      "default": "warn"
    },
    "variant_size_differences": {
      "$ref": "#/$defs/Lint",
      "title": "Variant Size Differences",
      "description": "The `variant_size_differences` lint detects enums with widely varying variant sizes.",
      "default": "allow"
    },
    "warnings": {
      "$ref": "#/$defs/Lint",
      "title": "Warnings",
      "description": "All lints that are set to issue warnings"
    },
    "while_true": {
      "$ref": "#/$defs/Lint",
      "title": "While True",
      "description": "The `while_true` lint detects `while true { }`.",
      "default": "warn"
    },
    "bad-style": {
      "$ref": "#/$defs/Lint",
      "title": "Bad Style",
      "description": "Deprecated alias for `nonstandard-style`."
    },
    "deprecated-safe": {
      "$ref": "#/$defs/Lint",
      "title": "Deprecated Safe",
      "description": "Lints for functions which were erroneously marked as safe in the past"
    },
    "future-incompatible": {
      "$ref": "#/$defs/Lint",
      "title": "Future Incompatible",
      "description": "Lints that detect code that has future-compatibility problems"
    },
    "keyword-idents": {
      "$ref": "#/$defs/Lint",
      "title": "Keyword Idents",
      "description": "Lints that detect identifiers which will be come keywords in later editions"
    },
    "let-underscore": {
      "$ref": "#/$defs/Lint",
      "title": "Let Underscore",
      "description": "Lints that detect wildcard let bindings that are likely to be invalid"
    },
    "nonstandard-style": {
      "$ref": "#/$defs/Lint",
      "title": "Nonstandard Style",
      "description": "Violation of standard naming conventions"
    },
    "refining-impl-trait": {
      "$ref": "#/$defs/Lint",
      "title": "Refining Impl Trait",
      "description": "Detects refinement of `impl Trait` return types by trait implementations"
    },
    "rust-2018-compatibility": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2018 Compatibility",
      "description": "Lints used to transition code from the 2015 edition to 2018"
    },
    "rust-2018-idioms": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2018 Idioms",
      "description": "Lints to nudge you toward idiomatic features of Rust 2018"
    },
    "rust-2021-compatibility": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2021 Compatibility",
      "description": "Lints used to transition code from the 2018 edition to 2021"
    },
    "rust-2024-compatibility": {
      "$ref": "#/$defs/Lint",
      "title": "Rust 2024 Compatibility",
      "description": "Lints used to transition code from the 2021 edition to 2024"
    },
    "unknown-or-malformed-diagnostic-attributes": {
      "$ref": "#/$defs/Lint",
      "title": "Unknown Or Malformed Diagnostic Attributes",
      "description": "detects unknown or malformed diagnostic attributes"
    },
    "unused": {
      "$ref": "#/$defs/Lint",
      "title": "Unused",
      "description": "Lints that detect things being declared but not used, or excess syntax"
    }
  },
  "$defs": {
    "DetailedLint": {
      "title": "Detailed Lint",
      "type": "object",
      "properties": {
        "level": {
          "$ref": "#/$defs/LintLevel"
        },
        "priority": {
          "description": "The priority that controls which lints or [lint groups](https://doc.rust-lang.org/rustc/lints/groups.html) override other lint groups. Lower (particularly negative) numbers have lower priority, being overridden by higher numbers, and show up first on the command-line to tools like rustc.",
          "type": "integer"
        },
        "check-cfg": {
          "description": "A list of `cfg` expressions that this lint should check for.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "examples": [
            "cfg(foo)"
          ]
        }
      },
      "x-tombi-table-keys-order": "schema"
    },
    "Lint": {
      "title": "Lint",
      "anyOf": [
        {
          "$ref": "#/$defs/LintLevel"
        },
        {
          "$ref": "#/$defs/DetailedLint"
        }
      ]
    },
    "LintLevel": {
      "title": "Lint Level",
      "description": "Specify the [lint level](https://doc.rust-lang.org/rustc/lints/levels.html) for a lint or lint group.",
      "type": "string",
      "enum": [
        "forbid",
        "deny",
        "warn",
        "allow"
      ]
    }
  },
  "additionalProperties": {
    "$ref": "#/$defs/Lint"
  },
  "x-tombi-additional-key-label": "lint_name",
  "x-tombi-table-keys-order": "version-sort"
}
