Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/generated/lints.rs')
-rw-r--r--crates/ide-db/src/generated/lints.rs1818
1 files changed, 1022 insertions, 796 deletions
diff --git a/crates/ide-db/src/generated/lints.rs b/crates/ide-db/src/generated/lints.rs
index 7755a9b974..0504f3caf5 100644
--- a/crates/ide-db/src/generated/lints.rs
+++ b/crates/ide-db/src/generated/lints.rs
@@ -1,4 +1,4 @@
-//! Generated by `sourcegen_lints`, do not edit by hand.
+//! Generated by `cargo codegen lint-definitions`, do not edit by hand.
#[derive(Clone)]
pub struct Lint {
@@ -50,6 +50,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"detects pattern bindings with the same name as one of the matched variants"##,
},
Lint {
+ label: "boxed_slice_into_iter",
+ description: r##"detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021"##,
+ },
+ Lint {
label: "break_with_label_and_loop",
description: r##"`break` expression with label and unlabeled loop as value expression"##,
},
@@ -78,6 +82,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
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"##,
+ },
+ Lint {
label: "const_evaluatable_unchecked",
description: r##"detects a generic constant is used in a type without a emitting a warning"##,
},
@@ -86,6 +94,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"detects attempts to mutate a `const` item"##,
},
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"##,
+ },
Lint { label: "deprecated", description: r##"detects use of deprecated items"## },
Lint {
label: "deprecated_cfg_attr_crate_type_name",
@@ -96,6 +108,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"detects use of items that will be deprecated in a future version"##,
},
Lint {
+ label: "deprecated_safe",
+ description: r##"detects unsafe functions being used as safe functions"##,
+ },
+ Lint {
label: "deprecated_where_clause_location",
description: r##"deprecated where clause location"##,
},
@@ -171,7 +187,7 @@ pub const DEFAULT_LINTS: &[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-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, indirect-structural-match, invalid-doc-attributes, 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, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer"##,
+ 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, 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"##,
},
Lint {
label: "fuzzy_provenance_casts",
@@ -186,6 +202,14 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"ill-formed attribute inputs that were previously accepted and used in practice"##,
},
Lint {
+ label: "impl_trait_overcaptures",
+ description: r##"`impl Trait` will capture more lifetimes than possibly intended in edition 2024"##,
+ },
+ Lint {
+ label: "impl_trait_redundant_captures",
+ description: r##"redundant precise-capturing `use<...>` syntax on an `impl Trait`"##,
+ },
+ Lint {
label: "improper_ctypes",
description: r##"proper use of libc types in foreign modules"##,
},
@@ -199,10 +223,6 @@ pub const DEFAULT_LINTS: &[Lint] = &[
},
Lint { label: "incomplete_include", description: r##"trailing content in included file"## },
Lint {
- label: "indirect_structural_match",
- description: r##"constant used in pattern contains value of non-structural-match type in a field or a variant"##,
- },
- Lint {
label: "ineffective_unstable_trait_impl",
description: r##"detects `#[unstable]` on stable trait implementations for stable types"##,
},
@@ -256,6 +276,14 @@ pub const DEFAULT_LINTS: &[Lint] = &[
},
Lint {
label: "keyword_idents",
+ description: r##"lint group for: keyword-idents-2018, keyword-idents-2024"##,
+ },
+ Lint {
+ label: "keyword_idents_2018",
+ description: r##"detects edition keywords being used as an identifier"##,
+ },
+ Lint {
+ label: "keyword_idents_2024",
description: r##"detects edition keywords being used as an identifier"##,
},
Lint { label: "large_assignments", description: r##"detects large moves or copies"## },
@@ -321,6 +349,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"detects missing fragment specifiers in unused `macro_rules!` patterns"##,
},
Lint {
+ label: "missing_unsafe_on_extern",
+ description: r##"detects missing unsafe keyword on extern declarations"##,
+ },
+ Lint {
label: "mixed_script_confusables",
description: r##"detects Unicode scripts whose mixed script confusables codepoints are solely used"##,
},
@@ -342,6 +374,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
},
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"##,
+ },
+ Lint {
label: "no_mangle_const_items",
description: r##"const items will not have their symbols exported"##,
},
@@ -352,6 +388,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"types, variants, traits and type parameters should have camel case names"##,
},
Lint {
+ label: "non_contiguous_range_endpoints",
+ description: r##"detects off-by-one errors with exclusive range patterns"##,
+ },
+ Lint {
label: "non_exhaustive_omitted_patterns",
description: r##"detect when patterns of types marked `non_exhaustive` are missed"##,
},
@@ -399,10 +439,6 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"patterns in functions without body were erroneously allowed"##,
},
Lint {
- label: "pointer_structural_match",
- description: r##"pointers are not structural-match"##,
- },
- Lint {
label: "private_bounds",
description: r##"private type in secondary interface of an item"##,
},
@@ -411,10 +447,6 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"private type in primary interface of an item"##,
},
Lint {
- label: "proc_macro_back_compat",
- description: r##"detects usage of old versions of certain proc-macro crates"##,
- },
- Lint {
label: "proc_macro_derive_resolution_fallback",
description: r##"detects proc macro derives using inaccessible names from parent modules"##,
},
@@ -423,11 +455,23 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"detect public re-exports of private extern crates"##,
},
Lint {
+ label: "redundant_lifetimes",
+ description: r##"detects lifetime parameters that are redundant because they are equal to some other named lifetime"##,
+ },
+ 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"##,
+ },
+ Lint {
+ label: "refining_impl_trait_internal",
+ description: r##"impl trait in impl method signature does not match trait method signature"##,
+ },
+ Lint {
+ label: "refining_impl_trait_reachable",
description: r##"impl trait in impl method signature does not match trait method signature"##,
},
Lint {
@@ -440,7 +484,7 @@ pub const DEFAULT_LINTS: &[Lint] = &[
},
Lint {
label: "rust_2018_compatibility",
- description: r##"lint group for: keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##,
+ 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",
@@ -468,7 +512,15 @@ pub const DEFAULT_LINTS: &[Lint] = &[
},
Lint {
label: "rust_2024_compatibility",
- description: r##"lint group for: static-mut-refs, unsafe-op-in-unsafe-fn"##,
+ 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"##,
+ },
+ Lint {
+ label: "rust_2024_incompatible_pat",
+ description: r##"detects patterns whose meaning will change in Rust 2024"##,
+ },
+ Lint {
+ label: "self_constructor_from_outer_item",
+ description: r##"detect unsupported use of `Self` from outer item"##,
},
Lint {
label: "semicolon_in_expressions_from_macros",
@@ -547,6 +599,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"functions that cannot return without calling themselves"##,
},
Lint {
+ label: "uncovered_param_in_projection",
+ description: r##"impl contains type parameters that are not covered"##,
+ },
+ Lint {
label: "undefined_naked_function_abi",
description: r##"undefined naked function ABI"##,
},
@@ -595,6 +651,10 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"`pub` items not reachable from crate root"##,
},
Lint {
+ label: "unsafe_attr_outside_unsafe",
+ description: r##"detects unsafe attributes outside of unsafe"##,
+ },
+ Lint {
label: "unsafe_code",
description: r##"usage of `unsafe` code and other potentially unsound constructs"##,
},
@@ -714,8 +774,8 @@ pub const DEFAULT_LINTS: &[Lint] = &[
description: r##"lint group for: all lints that are set to issue warnings"##,
},
Lint {
- label: "where_clauses_object_safety",
- description: r##"checks the object safety of where clauses"##,
+ label: "wasm_c_abi",
+ description: r##"detects dependencies that are incompatible with the Wasm C ABI"##,
},
Lint {
label: "while_true",
@@ -731,7 +791,7 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[
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-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, indirect-structural-match, invalid-doc-attributes, 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, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer"##,
+ 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, 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"##,
},
children: &[
"deref_into_dyn_supertrait",
@@ -741,37 +801,45 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[
"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",
- "indirect_structural_match",
- "invalid_doc_attributes",
"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",
"patterns_in_fns_without_body",
- "pointer_structural_match",
- "proc_macro_back_compat",
"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",
- "where_clauses_object_safety",
+ "wasm_c_abi",
"writes_through_immutable_pointer",
],
},
LintGroup {
lint: Lint {
+ label: "keyword_idents",
+ description: r##"lint group for: keyword-idents-2018, keyword-idents-2024"##,
+ },
+ children: &["keyword_idents_2018", "keyword_idents_2024"],
+ },
+ LintGroup {
+ lint: Lint {
label: "let_underscore",
description: r##"lint group for: let-underscore-drop, let-underscore-lock"##,
},
@@ -786,11 +854,18 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[
},
LintGroup {
lint: Lint {
+ label: "refining_impl_trait",
+ description: r##"lint group for: refining-impl-trait-reachable, refining-impl-trait-internal"##,
+ },
+ children: &["refining_impl_trait_reachable", "refining_impl_trait_internal"],
+ },
+ LintGroup {
+ lint: Lint {
label: "rust_2018_compatibility",
- description: r##"lint group for: keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##,
+ description: r##"lint group for: keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer"##,
},
children: &[
- "keyword_idents",
+ "keyword_idents_2018",
"anonymous_parameters",
"absolute_paths_not_starting_with_crate",
"tyvar_behind_raw_pointer",
@@ -828,9 +903,17 @@ pub const DEFAULT_LINT_GROUPS: &[LintGroup] = &[
LintGroup {
lint: Lint {
label: "rust_2024_compatibility",
- description: r##"lint group for: static-mut-refs, unsafe-op-in-unsafe-fn"##,
+ 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"##,
},
- children: &["static_mut_refs", "unsafe_op_in_unsafe_fn"],
+ children: &[
+ "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",
+ ],
},
LintGroup {
lint: Lint {
@@ -1187,9 +1270,23 @@ This feature has no tracking issue, and is therefore likely internal to the comp
label: "abi_vectorcall",
description: r##"# `abi_vectorcall`
-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: [#124485]
+
+[#124485]: https://github.com/rust-lang/rust/issues/124485
------------------------
+
+Adds support for the Windows `"vectorcall"` ABI, the equivalent of `__vectorcall` in MSVC.
+
+```rust,ignore (only-windows-or-x86-or-x86-64)
+extern "vectorcall" {
+ fn add_f64s(x: f64, y: f64) -> f64;
+}
+
+fn main() {
+ println!("{}", add_f64s(2.0, 4.0));
+}
+```
"##,
},
Lint {
@@ -1204,12 +1301,12 @@ The tracking issue for this feature is: [#40180]
"##,
},
Lint {
- label: "absolute_path",
- description: r##"# `absolute_path`
+ label: "acceptfilter",
+ description: r##"# `acceptfilter`
-The tracking issue for this feature is: [#92750]
+The tracking issue for this feature is: [#121891]
-[#92750]: https://github.com/rust-lang/rust/issues/92750
+[#121891]: https://github.com/rust-lang/rust/issues/121891
------------------------
"##,
@@ -1234,6 +1331,34 @@ The tracking issue for this feature is: [#95174]
[#95174]: https://github.com/rust-lang/rust/issues/95174
------------------------
+
+Allows for using more complex types for const parameters, such as structs or enums.
+
+```rust
+#![feature(adt_const_params)]
+#![allow(incomplete_features)]
+
+use std::marker::ConstParamTy;
+
+#[derive(ConstParamTy, PartialEq, Eq)]
+enum Foo {
+ A,
+ B,
+ C,
+}
+
+#[derive(ConstParamTy, PartialEq, Eq)]
+struct Bar {
+ flag: bool,
+}
+
+fn is_foo_a_and_bar_true<const F: Foo, const B: Bar>() -> bool {
+ match (F, B.flag) {
+ (Foo::A, true) => true,
+ _ => false,
+ }
+}
+```
"##,
},
Lint {
@@ -1380,6 +1505,28 @@ The tracking issue for this feature is: [#91583]
"##,
},
Lint {
+ label: "array_ptr_get",
+ description: r##"# `array_ptr_get`
+
+The tracking issue for this feature is: [#119834]
+
+[#119834]: https://github.com/rust-lang/rust/issues/119834
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "array_repeat",
+ description: r##"# `array_repeat`
+
+The tracking issue for this feature is: [#126695]
+
+[#126695]: https://github.com/rust-lang/rust/issues/126695
+
+------------------------
+"##,
+ },
+ Lint {
label: "array_try_from_fn",
description: r##"# `array_try_from_fn`
@@ -1483,6 +1630,7 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
- M68k
- CSKY
- s390x
+- Arm64EC
## Register classes
@@ -1515,6 +1663,9 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| 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` |
> **Notes**:
> - NVPTX doesn't have a fixed register set, so named registers are not supported.
@@ -1550,6 +1701,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| CSKY | `freg` | None | `f32`, |
| s390x | `reg`, `reg_addr` | None | `i8`, `i16`, `i32`, `i64` |
| s390x | `freg` | None | `f32`, `f64` |
+| 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` |
## Register aliases
@@ -1582,6 +1735,12 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| 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]` |
> **Notes**:
> - TI does not mandate a frame pointer for MSP430, but toolchains are allowed
@@ -1592,8 +1751,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| 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) | The frame pointer cannot be used as an input or output. |
-| All | `r19` (Hexagon) | This is used internally by LLVM as a "base pointer" for functions with complex stack frames. |
+| 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. |
| 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. |
@@ -1609,6 +1768,9 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| CSKY | `r15` | This is the link register. |
| CSKY | `r[26-30]` | Reserved by its ABI. |
| CSKY | `r31` | This is the TLS register. |
+| 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. |
## Template modifiers
@@ -1629,6 +1791,16 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
| s390x | `freg` | None | `%f0` | 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`
@@ -1641,6 +1813,43 @@ These flags registers must be restored upon exiting the asm block if the `preser
- The condition code register `ccr`.
- s390x
- The condition code register `cc`.
+- Arm64EC
+ - Condition flags (`NZCV` register).
+ - Floating-point status (`FPSR` register).
+"##,
+ },
+ Lint {
+ label: "asm_goto",
+ description: r##"# `asm_goto`
+
+The tracking issue for this feature is: [#119364]
+
+[#119364]: https://github.com/rust-lang/rust/issues/119364
+
+------------------------
+
+This feature adds a `label <block>` operand type to `asm!`.
+
+Example:
+```rust,ignore (partial-example, x86-only)
+
+unsafe {
+ asm!(
+ "jmp {}",
+ label {
+ println!("Jumped from asm!");
+ }
+ );
+}
+```
+
+The block must have unit type or diverge.
+
+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
+assembly. In this case, the entire `asm!` expression will have an unit type as
+opposed to diverging, if not all label blocks diverge. The `asm!` expression
+still diverges if `noreturn` option is used and all label blocks diverge.
"##,
},
Lint {
@@ -1679,17 +1888,6 @@ The tracking issue for this feature is: [#92827]
"##,
},
Lint {
- label: "associated_type_bounds",
- description: r##"# `associated_type_bounds`
-
-The tracking issue for this feature is: [#52662]
-
-[#52662]: https://github.com/rust-lang/rust/issues/52662
-
-------------------------
-"##,
- },
- Lint {
label: "associated_type_defaults",
description: r##"# `associated_type_defaults`
@@ -1712,6 +1910,17 @@ The tracking issue for this feature is: [#62290]
"##,
},
Lint {
+ label: "async_drop",
+ description: r##"# `async_drop`
+
+The tracking issue for this feature is: [#126482]
+
+[#126482]: https://github.com/rust-lang/rust/issues/126482
+
+------------------------
+"##,
+ },
+ Lint {
label: "async_fn_track_caller",
description: r##"# `async_fn_track_caller`
@@ -1736,7 +1945,7 @@ for creating custom closure-like types that return futures.
[`AsyncFn*`]: ../../std/ops/trait.AsyncFn.html
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 `AsyncFn::CallFuture` does).
+that borrows from itself (`FnOnce::Output` has no lifetime parameters, while `AsyncFnMut::CallRefFuture` does).
"##,
},
Lint {
@@ -1782,17 +1991,6 @@ The tracking issue for this feature is: [#79024]
"##,
},
Lint {
- label: "atomic_bool_fetch_not",
- description: r##"# `atomic_bool_fetch_not`
-
-The tracking issue for this feature is: [#98485]
-
-[#98485]: https://github.com/rust-lang/rust/issues/98485
-
-------------------------
-"##,
- },
- Lint {
label: "atomic_from_mut",
description: r##"# `atomic_from_mut`
@@ -1947,17 +2145,6 @@ The tracking issue for this feature is: [#85532]
"##,
},
Lint {
- label: "binary_heap_as_slice",
- description: r##"# `binary_heap_as_slice`
-
-The tracking issue for this feature is: [#83659]
-
-[#83659]: https://github.com/rust-lang/rust/issues/83659
-
-------------------------
-"##,
- },
- Lint {
label: "binary_heap_drain_sorted",
description: r##"# `binary_heap_drain_sorted`
@@ -2113,23 +2300,23 @@ The tracking issue for this feature is: [#111735]
"##,
},
Lint {
- label: "builtin_syntax",
- description: r##"# `builtin_syntax`
+ label: "build_hasher_default_const_new",
+ description: r##"# `build_hasher_default_const_new`
-The tracking issue for this feature is: [#110680]
+The tracking issue for this feature is: [#123197]
-[#110680]: https://github.com/rust-lang/rust/issues/110680
+[#123197]: https://github.com/rust-lang/rust/issues/123197
------------------------
"##,
},
Lint {
- label: "byte_slice_trim_ascii",
- description: r##"# `byte_slice_trim_ascii`
+ label: "builtin_syntax",
+ description: r##"# `builtin_syntax`
-The tracking issue for this feature is: [#94035]
+The tracking issue for this feature is: [#110680]
-[#94035]: https://github.com/rust-lang/rust/issues/94035
+[#110680]: https://github.com/rust-lang/rust/issues/110680
------------------------
"##,
@@ -2146,33 +2333,14 @@ The tracking issue for this feature is: [#88345]
"##,
},
Lint {
- label: "c_unwind",
- description: r##"# `c_unwind`
+ label: "c_str_module",
+ description: r##"# `c_str_module`
-The tracking issue for this feature is: [#74990]
+The tracking issue for this feature is: [#112134]
-[#74990]: https://github.com/rust-lang/rust/issues/74990
+[#112134]: https://github.com/rust-lang/rust/issues/112134
------------------------
-
-Introduces new ABI strings:
-- "C-unwind"
-- "cdecl-unwind"
-- "stdcall-unwind"
-- "fastcall-unwind"
-- "vectorcall-unwind"
-- "thiscall-unwind"
-- "aapcs-unwind"
-- "win64-unwind"
-- "sysv64-unwind"
-- "system-unwind"
-
-These enable unwinding from other languages (such as C++) into Rust frames and
-from Rust into other languages.
-
-See [RFC 2945] for more information.
-
-[RFC 2945]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
"##,
},
Lint {
@@ -2424,6 +2592,17 @@ The tracking issue for this feature is: [#29594]
"##,
},
Lint {
+ label: "cfg_ub_checks",
+ description: r##"# `cfg_ub_checks`
+
+The tracking issue for this feature is: [#123499]
+
+[#123499]: https://github.com/rust-lang/rust/issues/123499
+
+------------------------
+"##,
+ },
+ Lint {
label: "cfg_version",
description: r##"# `cfg_version`
@@ -2523,6 +2702,17 @@ The tracking issue for this feature is: [#114298]
"##,
},
Lint {
+ label: "clone_to_uninit",
+ description: r##"# `clone_to_uninit`
+
+The tracking issue for this feature is: [#126799]
+
+[#126799]: https://github.com/rust-lang/rust/issues/126799
+
+------------------------
+"##,
+ },
+ Lint {
label: "closure_lifetime_binder",
description: r##"# `closure_lifetime_binder`
@@ -2657,17 +2847,6 @@ The tracking issue for this feature is: [#18598]
"##,
},
Lint {
- label: "collapse_debuginfo",
- description: r##"# `collapse_debuginfo`
-
-The tracking issue for this feature is: [#100758]
-
-[#100758]: https://github.com/rust-lang/rust/issues/100758
-
-------------------------
-"##,
- },
- Lint {
label: "compiler_builtins",
description: r##"# `compiler_builtins`
@@ -2835,8 +3014,8 @@ The tracking issue for this feature is: [#85532]
"##,
},
Lint {
- label: "const_binary_heap_constructor",
- description: r##"# `const_binary_heap_constructor`
+ label: "const_binary_heap_new_in",
+ description: r##"# `const_binary_heap_new_in`
The tracking issue for this feature is: [#112353]
@@ -2875,17 +3054,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "const_caller_location",
- description: r##"# `const_caller_location`
-
-The tracking issue for this feature is: [#76156]
-
-[#76156]: https://github.com/rust-lang/rust/issues/76156
-
-------------------------
-"##,
- },
- Lint {
label: "const_cell_into_inner",
description: r##"# `const_cell_into_inner`
@@ -2919,17 +3087,6 @@ The tracking issue for this feature is: [#106003]
"##,
},
Lint {
- label: "const_cmp",
- description: r##"# `const_cmp`
-
-The tracking issue for this feature is: [#92391]
-
-[#92391]: https://github.com/rust-lang/rust/issues/92391
-
-------------------------
-"##,
- },
- Lint {
label: "const_collections_with_hasher",
description: r##"# `const_collections_with_hasher`
@@ -2966,7 +3123,9 @@ The tracking issue for this feature is: [#113219]
label: "const_eval_select",
description: r##"# `const_eval_select`
-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: [#124625]
+
+[#124625]: https://github.com/rust-lang/rust/issues/124625
------------------------
"##,
@@ -3076,17 +3235,6 @@ The tracking issue for this feature is: [#79597]
"##,
},
Lint {
- label: "const_hint_assert_unchecked",
- description: r##"# `const_hint_assert_unchecked`
-
-The tracking issue for this feature is: [#119131]
-
-[#119131]: https://github.com/rust-lang/rust/issues/119131
-
-------------------------
-"##,
- },
- Lint {
label: "const_index_range_slice_index",
description: r##"# `const_index_range_slice_index`
@@ -3096,10 +3244,12 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "const_int_unchecked_arith",
- description: r##"# `const_int_unchecked_arith`
+ label: "const_int_from_str",
+ description: r##"# `const_int_from_str`
-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: [#59133]
+
+[#59133]: https://github.com/rust-lang/rust/issues/59133
------------------------
"##,
@@ -3154,17 +3304,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "const_io_structs",
- description: r##"# `const_io_structs`
-
-The tracking issue for this feature is: [#78812]
-
-[#78812]: https://github.com/rust-lang/rust/issues/78812
-
-------------------------
-"##,
- },
- Lint {
label: "const_ip",
description: r##"# `const_ip`
@@ -3207,17 +3346,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "const_location_fields",
- description: r##"# `const_location_fields`
-
-The tracking issue for this feature is: [#102911]
-
-[#102911]: https://github.com/rust-lang/rust/issues/102911
-
-------------------------
-"##,
- },
- Lint {
label: "const_maybe_uninit_array_assume_init",
description: r##"# `const_maybe_uninit_array_assume_init`
@@ -3304,17 +3432,6 @@ The tracking issue for this feature is: [#110840]
"##,
},
Lint {
- label: "const_ops",
- description: r##"# `const_ops`
-
-The tracking issue for this feature is: [#90080]
-
-[#90080]: https://github.com/rust-lang/rust/issues/90080
-
-------------------------
-"##,
- },
- Lint {
label: "const_option",
description: r##"# `const_option`
@@ -3535,6 +3652,17 @@ The tracking issue for this feature is: [#111774]
"##,
},
Lint {
+ label: "const_slice_flatten",
+ description: r##"# `const_slice_flatten`
+
+The tracking issue for this feature is: [#95629]
+
+[#95629]: https://github.com/rust-lang/rust/issues/95629
+
+------------------------
+"##,
+ },
+ Lint {
label: "const_slice_from_mut_ptr_range",
description: r##"# `const_slice_from_mut_ptr_range`
@@ -3588,17 +3716,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "const_slice_ptr_len",
- description: r##"# `const_slice_ptr_len`
-
-The tracking issue for this feature is: [#71146]
-
-[#71146]: https://github.com/rust-lang/rust/issues/71146
-
-------------------------
-"##,
- },
- Lint {
label: "const_slice_split_at_mut",
description: r##"# `const_slice_split_at_mut`
@@ -3665,6 +3782,15 @@ The tracking issue for this feature is: [#83163]
"##,
},
Lint {
+ label: "const_three_way_compare",
+ description: r##"# `const_three_way_compare`
+
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
+
+------------------------
+"##,
+ },
+ Lint {
label: "const_trait_impl",
description: r##"# `const_trait_impl`
@@ -3709,6 +3835,24 @@ The tracking issue for this feature is: [#63084]
"##,
},
Lint {
+ label: "const_typed_swap",
+ description: r##"# `const_typed_swap`
+
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "const_ub_checks",
+ description: r##"# `const_ub_checks`
+
+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`
@@ -3751,6 +3895,17 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
+ label: "context_ext",
+ description: r##"# `context_ext`
+
+The tracking issue for this feature is: [#123392]
+
+[#123392]: https://github.com/rust-lang/rust/issues/123392
+
+------------------------
+"##,
+ },
+ Lint {
label: "control_flow_enum",
description: r##"# `control_flow_enum`
@@ -3793,6 +3948,24 @@ The tracking issue for this feature is: [#117693]
"##,
},
Lint {
+ label: "core_pattern_type",
+ description: r##"# `core_pattern_type`
+
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "core_pattern_types",
+ description: r##"# `core_pattern_types`
+
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
+
+------------------------
+"##,
+ },
+ Lint {
label: "core_private_bignum",
description: r##"# `core_private_bignum`
@@ -3862,7 +4035,7 @@ tweaks to the overall design.
A syntactical example of a coroutine is:
```rust
-#![feature(coroutines, coroutine_trait)]
+#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::{Coroutine, CoroutineState};
use std::pin::Pin;
@@ -3884,7 +4057,8 @@ fn main() {
}
```
-Coroutines are closure-like literals which can contain a `yield` statement. The
+Coroutines are closure-like literals which are annotated with `#[coroutine]`
+and can contain a `yield` statement. The
`yield` statement takes an optional expression of a value to yield out of the
coroutine. All coroutine literals implement the `Coroutine` trait in the
`std::ops` module. The `Coroutine` trait has one main method, `resume`, which
@@ -3894,7 +4068,7 @@ An example of the control flow of coroutines is that the following example
prints all numbers in order:
```rust
-#![feature(coroutines, coroutine_trait)]
+#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::Coroutine;
use std::pin::Pin;
@@ -3914,9 +4088,9 @@ fn main() {
}
```
-At this time the main intended use case of coroutines is an implementation
-primitive for async/await syntax, but coroutines will likely be extended to
-ergonomic implementations of iterators and other primitives in the future.
+At this time the main use case of coroutines is an implementation
+primitive for `async`/`await` and `gen` syntax, but coroutines
+will likely be extended to other primitives in the future.
Feedback on the design and usage is always appreciated!
### The `Coroutine` trait
@@ -3999,7 +4173,7 @@ which point all state is saved off in the coroutine and a value is returned.
Let's take a look at an example to see what's going on here:
```rust
-#![feature(coroutines, coroutine_trait)]
+#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::Coroutine;
use std::pin::Pin;
@@ -4019,7 +4193,7 @@ fn main() {
This coroutine literal will compile down to something similar to:
```rust
-#![feature(arbitrary_self_types, coroutines, coroutine_trait)]
+#![feature(arbitrary_self_types, coroutine_trait)]
use std::ops::{Coroutine, CoroutineState};
use std::pin::Pin;
@@ -4139,12 +4313,12 @@ The tracking issue for this feature is: [#44839]
"##,
},
Lint {
- label: "cstr_count_bytes",
- description: r##"# `cstr_count_bytes`
+ label: "cstr_bytes",
+ description: r##"# `cstr_bytes`
-The tracking issue for this feature is: [#114441]
+The tracking issue for this feature is: [#112115]
-[#114441]: https://github.com/rust-lang/rust/issues/114441
+[#112115]: https://github.com/rust-lang/rust/issues/112115
------------------------
"##,
@@ -4161,17 +4335,6 @@ The tracking issue for this feature is: [#86369]
"##,
},
Lint {
- label: "custom_code_classes_in_docs",
- description: r##"# `custom_code_classes_in_docs`
-
-The tracking issue for this feature is: [#79483]
-
-[#79483]: https://github.com/rust-lang/rust/issues/79483
-
-------------------------
-"##,
- },
- Lint {
label: "custom_inner_attributes",
description: r##"# `custom_inner_attributes`
@@ -4281,15 +4444,6 @@ The tracking issue for this feature is: [#27336]
"##,
},
Lint {
- label: "delayed_debug_assertions",
- description: r##"# `delayed_debug_assertions`
-
-This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
-
-------------------------
-"##,
- },
- Lint {
label: "deprecated_safe",
description: r##"# `deprecated_safe`
@@ -4312,6 +4466,28 @@ The tracking issue for this feature is: [#94785]
"##,
},
Lint {
+ label: "deref_patterns",
+ description: r##"# `deref_patterns`
+
+The tracking issue for this feature is: [#87121]
+
+[#87121]: https://github.com/rust-lang/rust/issues/87121
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "deref_pure_trait",
+ description: r##"# `deref_pure_trait`
+
+The tracking issue for this feature is: [#87121]
+
+[#87121]: https://github.com/rust-lang/rust/issues/87121
+
+------------------------
+"##,
+ },
+ Lint {
label: "derive_clone_copy",
description: r##"# `derive_clone_copy`
@@ -4339,91 +4515,14 @@ This feature is internal to the Rust compiler and is not intended for general us
"##,
},
Lint {
- label: "diagnostic_namespace",
- description: r##"# `diagnostic_namespace`
+ label: "derive_smart_pointer",
+ description: r##"# `derive_smart_pointer`
-The tracking issue for this feature is: [#111996]
+The tracking issue for this feature is: [#123430]
-[#111996]: https://github.com/rust-lang/rust/issues/111996
+[#123430]: https://github.com/rust-lang/rust/issues/123430
------------------------
-
-The `diagnostic_namespace` feature permits customization of compilation errors.
-
-## diagnostic::on_unimplemented
-
-With [#114452] support for `diagnostic::on_unimplemented` was added.
-
-When used on a trait declaration, the following options are available:
-
-* `message` to customize the primary error message
-* `note` to add a customized note message to an error message
-* `label` to customize the label part of the error message
-
-The attribute will hint to the compiler to use these in error messages:
-```rust
-// some library
-#![feature(diagnostic_namespace)]
-
-#[diagnostic::on_unimplemented(
- message = "cannot insert element",
- label = "cannot be put into a table",
- note = "see <link> for more information about the Table api"
-)]
-pub trait Element {
- // ...
-}
-```
-
-```rust,compile_fail,E0277
-# #![feature(diagnostic_namespace)]
-#
-# #[diagnostic::on_unimplemented(
-# message = "cannot insert element",
-# label = "cannot be put into a table",
-# note = "see <link> for more information about the Table api"
-# )]
-# pub trait Element {
-# // ...
-# }
-# struct Table;
-# impl Table {
-# fn insert<T: Element>(&self, element: T) {
-# // ..
-# }
-# }
-# fn main() {
-# let table = Table;
-# let element = ();
-// user code
-table.insert(element);
-# }
-```
-
-```text
-error[E0277]: cannot insert element
- --> src/main.rs:24:18
- |
-24 | table.insert(element);
- | ------ ^^^^^^^ cannot be put into a table
- | |
- | required by a bound introduced by this call
- |
- = help: the trait `Element` is not implemented for `<type>`
- = note: see <link> for more information about the Table api
-note: required by a bound in `Table::insert`
- --> src/main.rs:15:18
- |
-15 | fn insert<T: Element>(&self, element: T) {
- | ^^^^^^^ required by this bound in `Table::insert`
-
-For more information about this error, try `rustc --explain E0277`.
-```
-
-See [RFC 3368] for more information.
-
-[#114452]: https://github.com/rust-lang/rust/pull/114452
-[RFC 3368]: https://github.com/rust-lang/rfcs/blob/master/text/3368-diagnostic-attribute-namespace.md
"##,
},
Lint {
@@ -4456,17 +4555,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "div_duration",
- description: r##"# `div_duration`
-
-The tracking issue for this feature is: [#63139]
-
-[#63139]: https://github.com/rust-lang/rust/issues/63139
-
-------------------------
-"##,
- },
- Lint {
label: "do_not_recommend",
description: r##"# `do_not_recommend`
@@ -4648,17 +4736,6 @@ The tracking issue for this feature is: [#34761]
"##,
},
Lint {
- label: "duration_abs_diff",
- description: r##"# `duration_abs_diff`
-
-The tracking issue for this feature is: [#117618]
-
-[#117618]: https://github.com/rust-lang/rust/issues/117618
-
-------------------------
-"##,
- },
- Lint {
label: "duration_constants",
description: r##"# `duration_constants`
@@ -4694,6 +4771,17 @@ The tracking issue for this feature is: [#72440]
"##,
},
Lint {
+ label: "duration_millis_float",
+ description: r##"# `duration_millis_float`
+
+The tracking issue for this feature is: [#122451]
+
+[#122451]: https://github.com/rust-lang/rust/issues/122451
+
+------------------------
+"##,
+ },
+ Lint {
label: "duration_units",
description: r##"# `duration_units`
@@ -4725,6 +4813,15 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
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`
@@ -4769,17 +4866,6 @@ The tracking issue for this feature is: [#99301]
"##,
},
Lint {
- label: "error_in_core",
- description: r##"# `error_in_core`
-
-The tracking issue for this feature is: [#103765]
-
-[#103765]: https://github.com/rust-lang/rust/issues/103765
-
-------------------------
-"##,
- },
- Lint {
label: "error_iter",
description: r##"# `error_iter`
@@ -4824,36 +4910,6 @@ The tracking issue for this feature is: [#35428]
"##,
},
Lint {
- label: "exclusive_range_pattern",
- description: r##"# `exclusive_range_pattern`
-
-The tracking issue for this feature is: [#37854].
-
-
-[#67264]: https://github.com/rust-lang/rust/issues/67264
-[#37854]: https://github.com/rust-lang/rust/issues/37854
------
-
-The `exclusive_range_pattern` feature allows non-inclusive range
-patterns (`0..10`) to be used in appropriate pattern matching
-contexts. It also can be combined with `#![feature(half_open_range_patterns]`
-to be able to use RangeTo patterns (`..10`).
-
-It also enabled RangeFrom patterns but that has since been
-stabilized.
-
-```rust
-#![feature(exclusive_range_pattern)]
- let x = 5;
- match x {
- 0..10 => println!("single digit"),
- 10 => println!("ten isn't part of the above range"),
- _ => println!("nor is everything else.")
- }
-```
-"##,
- },
- Lint {
label: "exclusive_wrapper",
description: r##"# `exclusive_wrapper`
@@ -4920,6 +4976,17 @@ The tracking issue for this feature is: [#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
+
+------------------------
+"##,
+ },
+ Lint {
label: "extend_one",
description: r##"# `extend_one`
@@ -4967,6 +5034,32 @@ The tracking issue for this feature is: [#43244]
"##,
},
Lint {
+ label: "f128",
+ description: r##"# `f128`
+
+The tracking issue for this feature is: [#116909]
+
+[#116909]: https://github.com/rust-lang/rust/issues/116909
+
+---
+
+Enable the `f128` type for IEEE 128-bit floating numbers (quad precision).
+"##,
+ },
+ Lint {
+ label: "f16",
+ description: r##"# `f16`
+
+The tracking issue for this feature is: [#116909]
+
+[#116909]: https://github.com/rust-lang/rust/issues/116909
+
+---
+
+Enable the `f16` type for IEEE 16-bit floating numbers (half precision).
+"##,
+ },
+ Lint {
label: "fd",
description: r##"# `fd`
@@ -5249,12 +5342,23 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "fs_try_exists",
- description: r##"# `fs_try_exists`
+ label: "freeze",
+ description: r##"# `freeze`
+
+The tracking issue for this feature is: [#121675]
+
+[#121675]: https://github.com/rust-lang/rust/issues/121675
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "freeze_impls",
+ description: r##"# `freeze_impls`
-The tracking issue for this feature is: [#83186]
+The tracking issue for this feature is: [#121675]
-[#83186]: https://github.com/rust-lang/rust/issues/83186
+[#121675]: https://github.com/rust-lang/rust/issues/121675
------------------------
"##,
@@ -5368,17 +5472,6 @@ The tracking issue for this feature is: [#113521]
"##,
},
Lint {
- label: "generic_nonzero",
- description: r##"# `generic_nonzero`
-
-The tracking issue for this feature is: [#120257]
-
-[#120257]: https://github.com/rust-lang/rust/issues/120257
-
-------------------------
-"##,
- },
- Lint {
label: "get_many_mut",
description: r##"# `get_many_mut`
@@ -5401,11 +5494,22 @@ The tracking issue for this feature is: [#63292]
"##,
},
Lint {
+ label: "global_registration",
+ description: r##"# `global_registration`
+
+The tracking issue for this feature is: [#125119]
+
+[#125119]: https://github.com/rust-lang/rust/issues/125119
+
+------------------------
+"##,
+ },
+ Lint {
label: "half_open_range_patterns_in_slices",
description: r##"# `half_open_range_patterns_in_slices`
The tracking issue for this feature is: [#67264]
-It is part of the `exclusive_range_pattern` feature,
+It is a future part of the `exclusive_range_pattern` feature,
tracked at [#37854].
[#67264]: https://github.com/rust-lang/rust/issues/67264
@@ -5416,7 +5520,6 @@ This feature allow using top-level half-open range patterns in slices.
```rust
#![feature(half_open_range_patterns_in_slices)]
-#![feature(exclusive_range_pattern)]
fn main() {
let xs = [13, 1, 5, 2, 3, 1, 21, 8];
@@ -5499,17 +5602,6 @@ The tracking issue for this feature is: [#44839]
"##,
},
Lint {
- label: "hint_assert_unchecked",
- description: r##"# `hint_assert_unchecked`
-
-The tracking issue for this feature is: [#119131]
-
-[#119131]: https://github.com/rust-lang/rust/issues/119131
-
-------------------------
-"##,
- },
- Lint {
label: "hint_must_use",
description: r##"# `hint_must_use`
@@ -5554,17 +5646,6 @@ The tracking issue for this feature is: [#99697]
"##,
},
Lint {
- label: "imported_main",
- description: r##"# `imported_main`
-
-The tracking issue for this feature is: [#28937]
-
-[#28937]: https://github.com/rust-lang/rust/issues/28937
-
-------------------------
-"##,
- },
- Lint {
label: "inherent_associated_types",
description: r##"# `inherent_associated_types`
@@ -5576,49 +5657,11 @@ The tracking issue for this feature is: [#8995]
"##,
},
Lint {
- label: "inline_const",
- description: r##"# `inline_const`
-
-The tracking issue for this feature is: [#76001]
-
-See also [`inline_const_pat`](inline-const-pat.md)
-
-------
-
-This feature allows you to use inline constant expressions. For example, you can
-turn this code:
-
-```rust
-# fn add_one(x: i32) -> i32 { x + 1 }
-const MY_COMPUTATION: i32 = 1 + 2 * 3 / 4;
-
-fn main() {
- let x = add_one(MY_COMPUTATION);
-}
-```
-
-into this code:
-
-```rust
-#![feature(inline_const)]
-
-# fn add_one(x: i32) -> i32 { x + 1 }
-fn main() {
- let x = add_one(const { 1 + 2 * 3 / 4 });
-}
-```
-
-[#76001]: https://github.com/rust-lang/rust/issues/76001
-"##,
- },
- Lint {
label: "inline_const_pat",
description: r##"# `inline_const_pat`
The tracking issue for this feature is: [#76001]
-See also [`inline_const`](inline-const.md)
-
------
This feature allows you to use inline constant expressions in pattern position:
@@ -5671,6 +5714,17 @@ The tracking issue for this feature is: [#99069]
"##,
},
Lint {
+ label: "integer_sign_cast",
+ description: r##"# `integer_sign_cast`
+
+The tracking issue for this feature is: [#125882]
+
+[#125882]: https://github.com/rust-lang/rust/issues/125882
+
+------------------------
+"##,
+ },
+ Lint {
label: "internal_impls_macro",
description: r##"# `internal_impls_macro`
@@ -5729,7 +5783,7 @@ All intrinsic fallback bodies are automatically made cross-crate inlineable (lik
by the codegen backend, but not the MIR inliner.
```rust
-#![feature(rustc_attrs, effects)]
+#![feature(rustc_attrs)]
#![allow(internal_features)]
#[rustc_intrinsic]
@@ -5739,7 +5793,7 @@ const unsafe fn const_deallocate(_ptr: *mut u8, _size: usize, _align: usize) {}
Since these are just regular functions, it is perfectly ok to create the intrinsic twice:
```rust
-#![feature(rustc_attrs, effects)]
+#![feature(rustc_attrs)]
#![allow(internal_features)]
#[rustc_intrinsic]
@@ -5763,12 +5817,23 @@ with any regular function.
Various intrinsics have native MIR operations that they correspond to. Instead of requiring
backends to implement both the intrinsic and the MIR operation, the `lower_intrinsics` pass
will convert the calls to the MIR operation. Backends do not need to know about these intrinsics
-at all.
+at all. These intrinsics only make sense without a body, and can either be declared as a "rust-intrinsic"
+or as a `#[rustc_intrinsic]`. The body is never used, as calls to the intrinsic do not exist
+anymore after MIR analyses.
## Intrinsics without fallback logic
These must be implemented by all backends.
+### `#[rustc_intrinsic]` declarations
+
+These are written like intrinsics with fallback bodies, but the body is irrelevant.
+Use `loop {}` for the body or call the intrinsic recursively and add
+`#[rustc_intrinsic_must_be_overridden]` to the function to ensure that backends don't
+invoke the body.
+
+### Legacy extern ABI based intrinsics
+
These are imported as if they were FFI functions, with the special
`rust-intrinsic` ABI. For example, if one was in a freestanding
context, but wished to be able to `transmute` between types, and
@@ -5792,17 +5857,6 @@ You can add `#[rustc_safe_intrinsic]` to the intrinsic to make it safe to call.
"##,
},
Lint {
- label: "io_error_downcast",
- description: r##"# `io_error_downcast`
-
-The tracking issue for this feature is: [#99262]
-
-[#99262]: https://github.com/rust-lang/rust/issues/99262
-
-------------------------
-"##,
- },
- Lint {
label: "io_error_more",
description: r##"# `io_error_more`
@@ -5845,23 +5899,23 @@ The tracking issue for this feature is: [#27709]
"##,
},
Lint {
- label: "ip_bits",
- description: r##"# `ip_bits`
+ label: "is_ascii_octdigit",
+ description: r##"# `is_ascii_octdigit`
-The tracking issue for this feature is: [#113744]
+The tracking issue for this feature is: [#101288]
-[#113744]: https://github.com/rust-lang/rust/issues/113744
+[#101288]: https://github.com/rust-lang/rust/issues/101288
------------------------
"##,
},
Lint {
- label: "is_ascii_octdigit",
- description: r##"# `is_ascii_octdigit`
+ label: "is_none_or",
+ description: r##"# `is_none_or`
-The tracking issue for this feature is: [#101288]
+The tracking issue for this feature is: [#126383]
-[#101288]: https://github.com/rust-lang/rust/issues/101288
+[#126383]: https://github.com/rust-lang/rust/issues/126383
------------------------
"##,
@@ -5935,6 +5989,17 @@ The tracking issue for this feature is: [#100450]
"##,
},
Lint {
+ label: "iter_chain",
+ description: r##"# `iter_chain`
+
+The tracking issue for this feature is: [#125964]
+
+[#125964]: https://github.com/rust-lang/rust/issues/125964
+
+------------------------
+"##,
+ },
+ Lint {
label: "iter_collect_into",
description: r##"# `iter_collect_into`
@@ -6056,6 +6121,17 @@ The tracking issue for this feature is: [#87053]
"##,
},
Lint {
+ label: "junction_point",
+ description: r##"# `junction_point`
+
+The tracking issue for this feature is: [#121709]
+
+[#121709]: https://github.com/rust-lang/rust/issues/121709
+
+------------------------
+"##,
+ },
+ Lint {
label: "lahfsahf_target_feature",
description: r##"# `lahfsahf_target_feature`
@@ -6208,23 +6284,12 @@ The tracking issue for this feature is: [#69835]
"##,
},
Lint {
- label: "lazy_cell",
- description: r##"# `lazy_cell`
-
-The tracking issue for this feature is: [#109736]
-
-[#109736]: https://github.com/rust-lang/rust/issues/109736
-
-------------------------
-"##,
- },
- Lint {
label: "lazy_cell_consume",
description: r##"# `lazy_cell_consume`
-The tracking issue for this feature is: [#109736]
+The tracking issue for this feature is: [#125623]
-[#109736]: https://github.com/rust-lang/rust/issues/109736
+[#125623]: https://github.com/rust-lang/rust/issues/125623
------------------------
"##,
@@ -6368,17 +6433,6 @@ The tracking issue for this feature is: [#114135]
"##,
},
Lint {
- label: "lint_reasons",
- description: r##"# `lint_reasons`
-
-The tracking issue for this feature is: [#54503]
-
-[#54503]: https://github.com/rust-lang/rust/issues/54503
-
-------------------------
-"##,
- },
- Lint {
label: "linux_pidfd",
description: r##"# `linux_pidfd`
@@ -6434,6 +6488,17 @@ The tracking issue for this feature is: [#83527]
"##,
},
Lint {
+ label: "macro_metavar_expr_concat",
+ description: r##"# `macro_metavar_expr_concat`
+
+The tracking issue for this feature is: [#124225]
+
+[#124225]: https://github.com/rust-lang/rust/issues/124225
+
+------------------------
+"##,
+ },
+ Lint {
label: "map_entry_replace",
description: r##"# `map_entry_replace`
@@ -6539,6 +6604,17 @@ The tracking issue for this feature is: [#93092]
"##,
},
Lint {
+ label: "maybe_uninit_fill",
+ description: r##"# `maybe_uninit_fill`
+
+The tracking issue for this feature is: [#117428]
+
+[#117428]: https://github.com/rust-lang/rust/issues/117428
+
+------------------------
+"##,
+ },
+ Lint {
label: "maybe_uninit_slice",
description: r##"# `maybe_uninit_slice`
@@ -6691,6 +6767,17 @@ The tracking issue for this feature is: [#83310]
"##,
},
Lint {
+ label: "mut_ref",
+ description: r##"# `mut_ref`
+
+The tracking issue for this feature is: [#123076]
+
+[#123076]: https://github.com/rust-lang/rust/issues/123076
+
+------------------------
+"##,
+ },
+ Lint {
label: "naked_functions",
description: r##"# `naked_functions`
@@ -6838,6 +6925,17 @@ The tracking issue for this feature is: [#65992]
"##,
},
Lint {
+ label: "new_range_api",
+ description: r##"# `new_range_api`
+
+The tracking issue for this feature is: [#125687]
+
+[#125687]: https://github.com/rust-lang/rust/issues/125687
+
+------------------------
+"##,
+ },
+ Lint {
label: "new_uninit",
description: r##"# `new_uninit`
@@ -6915,17 +7013,6 @@ The tracking issue for this feature is: [#108185]
"##,
},
Lint {
- label: "non_null_convenience",
- description: r##"# `non_null_convenience`
-
-The tracking issue for this feature is: [#117691]
-
-[#117691]: https://github.com/rust-lang/rust/issues/117691
-
-------------------------
-"##,
- },
- Lint {
label: "non_zero_count_ones",
description: r##"# `non_zero_count_ones`
@@ -7032,6 +7119,17 @@ The tracking issue for this feature is: [#120140]
"##,
},
Lint {
+ label: "offset_of_slice",
+ description: r##"# `offset_of_slice`
+
+The tracking issue for this feature is: [#126151]
+
+[#126151]: https://github.com/rust-lang/rust/issues/126151
+
+------------------------
+"##,
+ },
+ Lint {
label: "omit_gdb_pretty_printer_section",
description: r##"# `omit_gdb_pretty_printer_section`
@@ -7041,6 +7139,17 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
+ label: "once_cell_get_mut",
+ description: r##"# `once_cell_get_mut`
+
+The tracking issue for this feature is: [#121641]
+
+[#121641]: https://github.com/rust-lang/rust/issues/121641
+
+------------------------
+"##,
+ },
+ Lint {
label: "once_cell_try",
description: r##"# `once_cell_try`
@@ -7096,17 +7205,6 @@ The tracking issue for this feature is: [#82901]
"##,
},
Lint {
- label: "option_take_if",
- description: r##"# `option_take_if`
-
-The tracking issue for this feature is: [#98934]
-
-[#98934]: https://github.com/rust-lang/rust/issues/98934
-
-------------------------
-"##,
- },
- Lint {
label: "option_zip",
description: r##"# `option_zip`
@@ -7140,6 +7238,17 @@ The tracking issue for this feature is: [#118485]
"##,
},
Lint {
+ label: "os_string_pathbuf_leak",
+ description: r##"# `os_string_pathbuf_leak`
+
+The tracking issue for this feature is: [#125965]
+
+[#125965]: https://github.com/rust-lang/rust/issues/125965
+
+------------------------
+"##,
+ },
+ Lint {
label: "panic_abort",
description: r##"# `panic_abort`
@@ -7184,21 +7293,21 @@ The tracking issue for this feature is: [#92988]
"##,
},
Lint {
- label: "panic_info_message",
- description: r##"# `panic_info_message`
-
-The tracking issue for this feature is: [#66745]
+ label: "panic_internals",
+ description: r##"# `panic_internals`
-[#66745]: https://github.com/rust-lang/rust/issues/66745
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
------------------------
"##,
},
Lint {
- label: "panic_internals",
- description: r##"# `panic_internals`
+ label: "panic_payload_as_str",
+ description: r##"# `panic_payload_as_str`
-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: [#125175]
+
+[#125175]: https://github.com/rust-lang/rust/issues/125175
------------------------
"##,
@@ -7237,6 +7346,28 @@ The tracking issue for this feature is: [#92649]
"##,
},
Lint {
+ label: "patchable_function_entry",
+ description: r##"# `patchable_function_entry`
+
+The tracking issue for this feature is: [#123115]
+
+[#123115]: https://github.com/rust-lang/rust/issues/123115
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "path_add_extension",
+ description: r##"# `path_add_extension`
+
+The tracking issue for this feature is: [#127292]
+
+[#127292]: https://github.com/rust-lang/rust/issues/127292
+
+------------------------
+"##,
+ },
+ Lint {
label: "path_file_prefix",
description: r##"# `path_file_prefix`
@@ -7268,6 +7399,17 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
+ label: "pattern_types",
+ description: r##"# `pattern_types`
+
+The tracking issue for this feature is: [#123646]
+
+[#123646]: https://github.com/rust-lang/rust/issues/123646
+
+------------------------
+"##,
+ },
+ Lint {
label: "peer_credentials_unix_socket",
description: r##"# `peer_credentials_unix_socket`
@@ -7290,8 +7432,8 @@ The tracking issue for this feature is: [#86918]
"##,
},
Lint {
- label: "pointer_is_aligned",
- description: r##"# `pointer_is_aligned`
+ label: "pointer_is_aligned_to",
+ description: r##"# `pointer_is_aligned_to`
The tracking issue for this feature is: [#96284]
@@ -7321,6 +7463,32 @@ The tracking issue for this feature is: [#86656]
"##,
},
Lint {
+ label: "postfix_match",
+ description: r##"# `postfix-match`
+
+`postfix-match` adds the feature for matching upon values postfix
+the expressions that generate the values.
+
+```rust,edition2021
+#![feature(postfix_match)]
+
+enum Foo {
+ Bar,
+ Baz
+}
+
+fn get_foo() -> Foo {
+ Foo::Bar
+}
+
+get_foo().match {
+ Foo::Bar => {},
+ Foo::Baz => panic!(),
+}
+```
+"##,
+ },
+ Lint {
label: "powerpc_target_feature",
description: r##"# `powerpc_target_feature`
@@ -7332,6 +7500,17 @@ The tracking issue for this feature is: [#44839]
"##,
},
Lint {
+ label: "precise_capturing",
+ description: r##"# `precise_capturing`
+
+The tracking issue for this feature is: [#123432]
+
+[#123432]: https://github.com/rust-lang/rust/issues/123432
+
+------------------------
+"##,
+ },
+ Lint {
label: "prelude_2024",
description: r##"# `prelude_2024`
@@ -7372,28 +7551,6 @@ This feature is internal to the Rust compiler and is not intended for general us
"##,
},
Lint {
- label: "proc_macro_byte_character",
- description: r##"# `proc_macro_byte_character`
-
-The tracking issue for this feature is: [#115268]
-
-[#115268]: https://github.com/rust-lang/rust/issues/115268
-
-------------------------
-"##,
- },
- Lint {
- label: "proc_macro_c_str_literals",
- description: r##"# `proc_macro_c_str_literals`
-
-The tracking issue for this feature is: [#119750]
-
-[#119750]: https://github.com/rust-lang/rust/issues/119750
-
-------------------------
-"##,
- },
- Lint {
label: "proc_macro_def_site",
description: r##"# `proc_macro_def_site`
@@ -7529,6 +7686,17 @@ The tracking issue for this feature is: [#102070]
"##,
},
Lint {
+ label: "ptr_as_ref_unchecked",
+ description: r##"# `ptr_as_ref_unchecked`
+
+The tracking issue for this feature is: [#122034]
+
+[#122034]: https://github.com/rust-lang/rust/issues/122034
+
+------------------------
+"##,
+ },
+ Lint {
label: "ptr_as_uninit",
description: r##"# `ptr_as_uninit`
@@ -7582,17 +7750,6 @@ The tracking issue for this feature is: [#95892]
"##,
},
Lint {
- label: "ptr_to_from_bits",
- description: r##"# `ptr_to_from_bits`
-
-The tracking issue for this feature is: [#91126]
-
-[#91126]: https://github.com/rust-lang/rust/issues/91126
-
-------------------------
-"##,
- },
- Lint {
label: "pub_crate_should_not_need_unstable_attr",
description: r##"# `pub_crate_should_not_need_unstable_attr`
@@ -7686,6 +7843,28 @@ The tracking issue for this feature is: [#121440]
"##,
},
Lint {
+ label: "ref_pat_eat_one_layer_2024",
+ description: r##"# `ref_pat_eat_one_layer_2024`
+
+The tracking issue for this feature is: [#123076]
+
+[#123076]: https://github.com/rust-lang/rust/issues/123076
+
+------------------------
+"##,
+ },
+ Lint {
+ label: "ref_pat_eat_one_layer_2024_structural",
+ description: r##"# `ref_pat_eat_one_layer_2024_structural`
+
+The tracking issue for this feature is: [#123076]
+
+[#123076]: https://github.com/rust-lang/rust/issues/123076
+
+------------------------
+"##,
+ },
+ Lint {
label: "register_tool",
description: r##"# `register_tool`
@@ -7739,6 +7918,24 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
+ label: "result_ffi_guarantees",
+ description: r##"# `result_ffi_guarantees`
+
+The tracking issue for this feature is: [#110503]
+
+[#110503]: https://github.com/rust-lang/rust/issues/110503
+
+------------------------
+
+This feature adds the possibility of using `Result<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
+"##,
+ },
+ Lint {
label: "result_flattening",
description: r##"# `result_flattening`
@@ -7882,6 +8079,15 @@ error: aborting due to 2 previous errors
"##,
},
Lint {
+ label: "rustc_encodable_decodable",
+ description: r##"# `rustc_encodable_decodable`
+
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
+
+------------------------
+"##,
+ },
+ Lint {
label: "rustc_private",
description: r##"# `rustc_private`
@@ -7924,17 +8130,6 @@ This feature has no tracking issue, and is therefore likely internal to the comp
"##,
},
Lint {
- label: "seek_seek_relative",
- description: r##"# `seek_seek_relative`
-
-The tracking issue for this feature is: [#117374]
-
-[#117374]: https://github.com/rust-lang/rust/issues/117374
-
-------------------------
-"##,
- },
- Lint {
label: "seek_stream_len",
description: r##"# `seek_stream_len`
@@ -7979,6 +8174,17 @@ The tracking issue for this feature is: [#56975]
"##,
},
Lint {
+ label: "shorter_tail_lifetimes",
+ description: r##"# `shorter_tail_lifetimes`
+
+The tracking issue for this feature is: [#123739]
+
+[#123739]: https://github.com/rust-lang/rust/issues/123739
+
+------------------------
+"##,
+ },
+ Lint {
label: "simd_ffi",
description: r##"# `simd_ffi`
@@ -8032,17 +8238,6 @@ The tracking issue for this feature is: [#27747]
"##,
},
Lint {
- label: "slice_flatten",
- description: r##"# `slice_flatten`
-
-The tracking issue for this feature is: [#95629]
-
-[#95629]: https://github.com/rust-lang/rust/issues/95629
-
-------------------------
-"##,
- },
- Lint {
label: "slice_from_ptr_range",
description: r##"# `slice_from_ptr_range`
@@ -8116,17 +8311,6 @@ The tracking issue for this feature is: [#74265]
"##,
},
Lint {
- label: "slice_ptr_len",
- description: r##"# `slice_ptr_len`
-
-The tracking issue for this feature is: [#71146]
-
-[#71146]: https://github.com/rust-lang/rust/issues/71146
-
-------------------------
-"##,
- },
- Lint {
label: "slice_range",
description: r##"# `slice_range`
@@ -8138,17 +8322,6 @@ The tracking issue for this feature is: [#76393]
"##,
},
Lint {
- label: "slice_split_at_unchecked",
- description: r##"# `slice_split_at_unchecked`
-
-The tracking issue for this feature is: [#76014]
-
-[#76014]: https://github.com/rust-lang/rust/issues/76014
-
-------------------------
-"##,
- },
- Lint {
label: "slice_split_once",
description: r##"# `slice_split_once`
@@ -8202,24 +8375,6 @@ The tracking issue for this feature is: [#93396]
"##,
},
Lint {
- label: "sort_internals",
- description: r##"# `sort_internals`
-
-This feature is internal to the Rust compiler and is not intended for general use.
-
-------------------------
-"##,
- },
- Lint {
- label: "spec_option_partial_eq",
- description: r##"# `spec_option_partial_eq`
-
-This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
-
-------------------------
-"##,
- },
- Lint {
label: "specialization",
description: r##"# `specialization`
@@ -8253,17 +8408,6 @@ The tracking issue for this feature is: [#96137]
"##,
},
Lint {
- label: "split_at_checked",
- description: r##"# `split_at_checked`
-
-The tracking issue for this feature is: [#119128]
-
-[#119128]: https://github.com/rust-lang/rust/issues/119128
-
-------------------------
-"##,
- },
- Lint {
label: "sse4a_target_feature",
description: r##"# `sse4a_target_feature`
@@ -8696,9 +8840,9 @@ The tracking issue for this feature is: [#96256]
label: "tcplistener_into_incoming",
description: r##"# `tcplistener_into_incoming`
-The tracking issue for this feature is: [#88339]
+The tracking issue for this feature is: [#88373]
-[#88339]: https://github.com/rust-lang/rust/issues/88339
+[#88373]: https://github.com/rust-lang/rust/issues/88373
------------------------
"##,
@@ -9322,6 +9466,17 @@ The tracking issue for this feature is: [#96374]
"##,
},
Lint {
+ label: "try_with_capacity",
+ description: r##"# `try_with_capacity`
+
+The tracking issue for this feature is: [#91913]
+
+[#91913]: https://github.com/rust-lang/rust/issues/91913
+
+------------------------
+"##,
+ },
+ Lint {
label: "tuple_trait",
description: r##"# `tuple_trait`
@@ -9390,12 +9545,10 @@ fn main () {
"##,
},
Lint {
- label: "type_privacy_lints",
- description: r##"# `type_privacy_lints`
-
-The tracking issue for this feature is: [#48054]
+ label: "ub_checks",
+ description: r##"# `ub_checks`
-[#48054]: https://github.com/rust-lang/rust/issues/48054
+This feature has no tracking issue, and is therefore likely internal to the compiler, not being intended for general use.
------------------------
"##,
@@ -9441,17 +9594,6 @@ fn main() {}
"##,
},
Lint {
- label: "unchecked_math",
- description: r##"# `unchecked_math`
-
-The tracking issue for this feature is: [#85122]
-
-[#85122]: https://github.com/rust-lang/rust/issues/85122
-
-------------------------
-"##,
- },
- Lint {
label: "unchecked_neg",
description: r##"# `unchecked_neg`
@@ -9516,72 +9658,6 @@ The tracking issue for this feature is: [#96467]
"##,
},
Lint {
- label: "unix_sigpipe",
- description: r##"# `unix_sigpipe`
-
-The tracking issue for this feature is: [#97889]
-
-[#97889]: https://github.com/rust-lang/rust/issues/97889
-
----
-
-The `#[unix_sigpipe = "..."]` attribute on `fn main()` can be used to specify how libstd shall setup `SIGPIPE` on Unix platforms before invoking `fn main()`. This attribute is ignored on non-Unix targets. There are three variants:
-* `#[unix_sigpipe = "inherit"]`
-* `#[unix_sigpipe = "sig_dfl"]`
-* `#[unix_sigpipe = "sig_ign"]`
-
-## `#[unix_sigpipe = "inherit"]`
-
-Leave `SIGPIPE` untouched before entering `fn main()`. Unless the parent process has changed the default `SIGPIPE` handler from `SIG_DFL` to something else, this will behave the same as `#[unix_sigpipe = "sig_dfl"]`.
-
-## `#[unix_sigpipe = "sig_dfl"]`
-
-Set the `SIGPIPE` handler to `SIG_DFL`. This will result in your program getting killed if it tries to write to a closed pipe. This is normally what you want if your program produces textual output.
-
-### Example
-
-```rust,no_run
-#![feature(unix_sigpipe)]
-#[unix_sigpipe = "sig_dfl"]
-fn main() { loop { println!("hello world"); } }
-```
-
-```bash
-% ./main | head -n 1
-hello world
-```
-
-## `#[unix_sigpipe = "sig_ign"]`
-
-Set the `SIGPIPE` handler to `SIG_IGN` before invoking `fn main()`. This will result in `ErrorKind::BrokenPipe` errors if you program tries to write to a closed pipe. This is normally what you want if you for example write socket servers, socket clients, or pipe peers.
-
-This is what libstd has done by default since 2014. (However, see the note on child processes below.)
-
-### Example
-
-```rust,no_run
-#![feature(unix_sigpipe)]
-#[unix_sigpipe = "sig_ign"]
-fn main() { loop { println!("hello world"); } }
-```
-
-```bash
-% ./main | head -n 1
-hello world
-thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', library/std/src/io/stdio.rs:1016:9
-note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
-```
-
-### Note on child processes
-
-When spawning child processes, the legacy Rust behavior if `#[unix_sigpipe]` is not specified is to
-reset `SIGPIPE` to `SIG_DFL`.
-
-If `#[unix_sigpipe = "..."]` is specified, no matter what its value is, the signal disposition of
-`SIGPIPE` is no longer reset. This means that the child inherits the parent's `SIGPIPE` behavior.
-"##,
- },
- Lint {
label: "unix_socket_ancillary_data",
description: r##"# `unix_socket_ancillary_data`
@@ -9615,6 +9691,17 @@ The tracking issue for this feature is: [#49804]
"##,
},
Lint {
+ label: "unsafe_attributes",
+ description: r##"# `unsafe_attributes`
+
+The tracking issue for this feature is: [#123757]
+
+[#123757]: https://github.com/rust-lang/rust/issues/123757
+
+------------------------
+"##,
+ },
+ Lint {
label: "unsafe_cell_from_mut",
description: r##"# `unsafe_cell_from_mut`
@@ -9626,6 +9713,17 @@ The tracking issue for this feature is: [#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
+
+------------------------
+"##,
+ },
+ Lint {
label: "unsafe_pin_internals",
description: r##"# `unsafe_pin_internals`
@@ -9920,17 +10018,6 @@ The tracking issue for this feature is: [#94919]
"##,
},
Lint {
- label: "utf8_chunks",
- description: r##"# `utf8_chunks`
-
-The tracking issue for this feature is: [#99543]
-
-[#99543]: https://github.com/rust-lang/rust/issues/99543
-
-------------------------
-"##,
- },
- Lint {
label: "variant_count",
description: r##"# `variant_count`
@@ -9953,6 +10040,17 @@ The tracking issue for this feature is: [#65816]
"##,
},
Lint {
+ label: "vec_pop_if",
+ description: r##"# `vec_pop_if`
+
+The tracking issue for this feature is: [#122741]
+
+[#122741]: https://github.com/rust-lang/rust/issues/122741
+
+------------------------
+"##,
+ },
+ Lint {
label: "vec_push_within_capacity",
description: r##"# `vec_push_within_capacity`
@@ -10224,18 +10322,12 @@ checked."##,
description: r##"Checks for usage of the `#[allow]` attribute and suggests replacing it with
the `#[expect]` (See [RFC 2383](https://rust-lang.github.io/rfcs/2383-lint-reasons.html))
-The expect attribute is still unstable and requires the `lint_reasons`
-on nightly. It can be enabled by adding `#![feature(lint_reasons)]` to
-the crate root.
-
This lint only warns outer attributes (`#[allow]`), as inner attributes
(`#![allow]`) are usually used to enable or disable lints on a global scale."##,
},
Lint {
label: "clippy::allow_attributes_without_reason",
- description: r##"Checks for attributes that allow lints without a reason.
-
-(This requires the `lint_reasons` feature)"##,
+ description: r##"Checks for attributes that allow lints without a reason."##,
},
Lint {
label: "clippy::almost_complete_range",
@@ -10309,6 +10401,10 @@ patterns."##,
description: r##"Nothing. This lint has been deprecated."##,
},
Lint {
+ label: "clippy::assigning_clones",
+ description: r##"Checks for code like `foo = bar.clone();`"##,
+ },
+ Lint {
label: "clippy::async_yields_async",
description: r##"Checks for async blocks that yield values of types
that can themselves be awaited."##,
@@ -10401,8 +10497,8 @@ Check the [Box documentation](https://doc.rust-lang.org/std/boxed/index.html) fo
},
Lint {
label: "clippy::box_default",
- description: r##"checks for `Box::new(T::default())`, which is better written as
-`Box::<T>::default()`."##,
+ description: r##"checks for `Box::new(Default::default())`, which can be written as
+`Box::default()`."##,
},
Lint {
label: "clippy::boxed_local",
@@ -10419,6 +10515,11 @@ moved out of the blocks."##,
description: r##"Warns if a generic shadows a built-in type."##,
},
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."##,
+ },
+ Lint {
label: "clippy::bytes_count_to_len",
description: r##"It checks for `str::bytes().count()` and suggests replacing it with
`str::len()`."##,
@@ -10507,6 +10608,10 @@ defined, this lint is `Allow` by default."##,
description: r##"Checks for a raw slice being cast to a slice pointer"##,
},
Lint {
+ label: "clippy::cfg_not_test",
+ description: r##"Checks for usage of `cfg` that excludes code from `test` builds. (i.e., `#{cfg(not(test))]`)"##,
+ },
+ 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."##,
@@ -10595,6 +10700,10 @@ rewritten with `match` and `cmp`."##,
and suggests using `.is_empty()` where applicable."##,
},
Lint {
+ label: "clippy::const_is_empty",
+ description: r##"It identifies calls to `.is_empty()` on constant values."##,
+ },
+ Lint {
label: "clippy::copy_iterator",
description: r##"Checks for types that implement `Copy` as well as
`Iterator`."##,
@@ -10748,6 +10857,13 @@ types are defined in the clippy.toml file."##,
statements."##,
},
Lint {
+ label: "clippy::doc_lazy_continuation",
+ description: r##"In CommonMark Markdown, the language used to write doc comments, a
+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."##,
+ },
+ 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"##,
@@ -10796,6 +10912,10 @@ marked as `#[must_use]`."##,
differing by an underscore."##,
},
Lint {
+ label: "clippy::duplicated_attributes",
+ description: r##"Checks for attributes that appear two or more times."##,
+ },
+ Lint {
label: "clippy::duration_subsec",
description: r##"Checks for calculation of subsecond microseconds or milliseconds
from other `Duration` methods."##,
@@ -10817,11 +10937,11 @@ but without a final `else` branch."##,
},
Lint {
label: "clippy::empty_enum",
- description: r##"Checks for `enum`s with no variants.
+ description: r##"Checks for `enum`s with no variants, which therefore are uninhabited types
+(cannot be instantiated).
-As of this writing, the `never_type` is still a
-nightly-only experimental API. Therefore, this lint is only triggered
-if the `never_type` is enabled."##,
+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."##,
},
Lint {
label: "clippy::empty_enum_variants_with_brackets",
@@ -10890,7 +11010,7 @@ than that supported by the underlying type."##,
},
Lint {
label: "clippy::exhaustive_structs",
- description: r##"Warns on any exported `structs`s that are not tagged `#[non_exhaustive]`"##,
+ description: r##"Warns on any exported `struct`s that are not tagged `#[non_exhaustive]`"##,
},
Lint {
label: "clippy::exit",
@@ -10965,6 +11085,11 @@ anywhere else."##,
with Default::default()."##,
},
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."##,
+ },
+ Lint {
label: "clippy::filetype_is_file",
description: r##"Checks for `FileType::is_file()`."##,
},
@@ -11297,6 +11422,11 @@ unless the annotated function is empty or simply panics."##,
},
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."##,
+ },
+ 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`."##,
@@ -11353,12 +11483,12 @@ create a `Vec`."##,
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 appects the type."##,
+This lint will require additional changes to the follow-up calls as it affects the type."##,
},
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 appects the type."##,
+This lint will require additional changes to the follow-up calls as it affects the type."##,
},
Lint {
label: "clippy::iter_kv_map",
@@ -11376,8 +11506,8 @@ ignoring either the keys or values."##,
},
Lint {
label: "clippy::iter_nth",
- description: r##"Checks for usage of `.iter().nth()` (and the related
-`.iter_mut().nth()`) on standard library types with *O*(1) element access."##,
+ description: r##"Checks for usage of `.iter().nth()`/`.iter_mut().nth()` on standard library types that have
+equivalent `.get()`/`.get_mut()` methods."##,
},
Lint {
label: "clippy::iter_nth_zero",
@@ -11456,7 +11586,7 @@ are too large."##,
Lint {
label: "clippy::large_include_file",
description: r##"Checks for the inclusion of large files via `include_bytes!()`
-and `include_str!()`"##,
+or `include_str!()`."##,
},
Lint {
label: "clippy::large_stack_arrays",
@@ -11481,6 +11611,11 @@ because that might induce API breakage, if the parameter is declared as mutable,
or if the argument is a `self`."##,
},
Lint {
+ label: "clippy::legacy_numeric_constants",
+ description: r##"Checks for usage of `<integer>::max_value()`, `std::<integer>::MAX`,
+`std::<float>::EPSILON`, etc."##,
+ },
+ Lint {
label: "clippy::len_without_is_empty",
description: r##"Checks for items that implement `.len()` but not
`.is_empty()`."##,
@@ -11547,6 +11682,10 @@ is resolved."##,
cannot be represented as the underlying type without loss."##,
},
Lint {
+ label: "clippy::macro_metavars_in_unsafe",
+ description: r##"Looks for macros that expand metavariables in an unsafe block."##,
+ },
+ Lint {
label: "clippy::macro_use_imports",
description: r##"Checks for `#[macro_use] use...`."##,
},
@@ -11567,7 +11706,12 @@ cannot be represented as the underlying type without loss."##,
description: r##"Checks for usage of `std::mem::size_of::<T>() * 8` when
`T::BITS` is available."##,
},
- Lint { label: "clippy::manual_c_str_literals", description: r##""## },
+ 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."##,
+ },
Lint {
label: "clippy::manual_clamp",
description: r##"Identifies good opportunities for a clamp function from std or core, and suggests using it."##,
@@ -11602,6 +11746,10 @@ where only the `Some` or `Ok` variant of the iterator element is used."##,
[`BuildHasher::hash_one`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html#method.hash_one"##,
},
Lint {
+ label: "clippy::manual_inspect",
+ description: r##"Checks for uses of `map` which return the original item."##,
+ },
+ Lint {
label: "clippy::manual_instant_elapsed",
description: r##"Lints subtraction between `Instant::now()` and another `Instant`."##,
},
@@ -11621,7 +11769,10 @@ ascii range"##,
description: r##"Checks for manual `is_infinite` reimplementations
(i.e., `x == <float>::INFINITY || x == <float>::NEG_INFINITY`)."##,
},
- Lint { label: "clippy::manual_is_variant_and", description: r##""## },
+ 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."##,
+ },
Lint {
label: "clippy::manual_let_else",
description: r##"Warn of cases where `let...else` could be used"##,
@@ -11653,6 +11804,10 @@ slices that could be optimized by having a memcpy."##,
description: r##"Finds patterns that reimplement `Option::ok_or`."##,
},
Lint {
+ label: "clippy::manual_pattern_char_comparison",
+ description: r##"Checks for manual `char` comparison in string patterns"##,
+ },
+ 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)`."##,
@@ -11672,6 +11827,11 @@ of `x.rem_euclid(4)`."##,
description: r##"Checks for code to be replaced by `.retain()`."##,
},
Lint {
+ label: "clippy::manual_rotate",
+ description: r##"It detects manual bit rotations that could be rewritten using standard
+functions `rotate_left` or `rotate_right`."##,
+ },
+ Lint {
label: "clippy::manual_saturating_arithmetic",
description: r##"Checks for `.checked_add/sub(x).unwrap_or(MAX/MIN)`."##,
},
@@ -11713,6 +11873,11 @@ Note that the lint will not be emitted in const blocks, as the suggestion would
description: r##"Finds patterns that reimplement `Option::unwrap_or` or `Result::unwrap_or`."##,
},
Lint {
+ label: "clippy::manual_unwrap_or_default",
+ description: r##"Checks if a `match` or `if let` expression can be simplified using
+`.unwrap_or_default()`."##,
+ },
+ 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."##,
@@ -11817,10 +11982,7 @@ and take drastic actions like `panic!`."##,
},
Lint {
label: "clippy::maybe_misused_cfg",
- description: r##"Checks for `#[cfg(features = ...)]` and suggests to replace it with
-`#[cfg(feature = ...)]`.
-
-It also checks if `cfg(test)` was misspelled."##,
+ description: r##"Nothing. This lint has been deprecated."##,
},
Lint {
label: "clippy::mem_forget",
@@ -11844,7 +12006,7 @@ and `mem::replace(&mut _, mem::zeroed())`."##,
},
Lint {
label: "clippy::min_ident_chars",
- description: r##"Checks for idents which comprise of a single letter.
+ description: r##"Checks for identifiers which consist of a single character (or fewer than the configured threshold).
Note: This lint can be very noisy when enabled; it may be desirable to only enable it
temporarily."##,
@@ -11860,7 +12022,7 @@ used to clamp values, but switched so that the result is constant."##,
},
Lint {
label: "clippy::mismatched_target_os",
- description: r##"Checks for cfg attributes having operating systems used in target family position."##,
+ description: r##"Nothing. This lint has been deprecated."##,
},
Lint {
label: "clippy::mismatching_type_param_order",
@@ -11892,8 +12054,12 @@ is greater than the largest index used to index into the slice."##,
description: r##"Suggests the use of `const` in functions and methods where possible."##,
},
Lint {
+ label: "clippy::missing_const_for_thread_local",
+ description: r##"Suggests to use `const` in `thread_local!` macro if possible."##,
+ },
+ Lint {
label: "clippy::missing_docs_in_private_items",
- description: r##"Warns if there is missing doc for any private documentable item"##,
+ description: r##"Warns if there is missing documentation for any private documentable item."##,
},
Lint {
label: "clippy::missing_enforced_import_renames",
@@ -11931,12 +12097,11 @@ unsafe functions and warns if there is no `# Safety` section."##,
Lint {
label: "clippy::missing_trait_methods",
description: r##"Checks if a provided method is used implicitly by a trait
-implementation. A usage example would be a wrapper where every method
-should perform some operation before delegating to the inner type's
-implementation.
-
-This lint should typically be enabled on a specific trait `impl` item
-rather than globally."##,
+implementation."##,
+ },
+ Lint {
+ label: "clippy::missing_transmute_annotations",
+ description: r##"Checks if transmute calls have all generics specified."##,
},
Lint {
label: "clippy::mistyped_literal_suffixes",
@@ -11944,7 +12109,7 @@ rather than globally."##,
},
Lint {
label: "clippy::mixed_attributes_style",
- description: r##"Checks that an item has only one kind of attributes."##,
+ description: r##"Checks for items that have the same kind of attributes with mixed styles (inner/outer)."##,
},
Lint {
label: "clippy::mixed_case_hex_literals",
@@ -11959,7 +12124,7 @@ order of sub-expressions."##,
},
Lint {
label: "clippy::mod_module_files",
- description: r##"Checks that module layout uses only self named module files, bans `mod.rs` files."##,
+ description: r##"Checks that module layout uses only self named module files; bans `mod.rs` files."##,
},
Lint {
label: "clippy::module_inception",
@@ -12025,7 +12190,7 @@ reference with the output lifetime, this lint will not trigger."##,
},
Lint {
label: "clippy::mut_range_bound",
- description: r##"Checks for loops which have a range bound that is a mutable variable"##,
+ description: r##"Checks for loops with a range bound that is a mutable variable."##,
},
Lint {
label: "clippy::mutable_key_type",
@@ -12074,10 +12239,14 @@ value with `&ref`."##,
},
Lint {
label: "clippy::needless_borrows_for_generic_args",
- description: r##"Checks for borrow operations (`&`) that used as a generic argument to a
+ description: r##"Checks for borrow operations (`&`) that are used as a generic argument to a
function when the borrowed value could be used."##,
},
Lint {
+ label: "clippy::needless_character_iteration",
+ description: r##"Checks if an iterator is used to check if a string is ascii."##,
+ },
+ Lint {
label: "clippy::needless_collect",
description: r##"Checks for functions collecting an iterator when collect
is not needed."##,
@@ -12119,6 +12288,10 @@ relying on lifetime elision."##,
when function signatures are the same."##,
},
Lint {
+ label: "clippy::needless_maybe_sized",
+ description: r##"Lints `?Sized` bounds applied to type parameters that cannot be unsized"##,
+ },
+ 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."##,
@@ -12137,7 +12310,7 @@ superfluous."##,
description: r##"Check if a `&mut` function argument is actually used mutably.
Be careful if the function is publicly reexported as it would break compatibility with
-users of this function."##,
+users of this function, when the users pass this function as an argument."##,
},
Lint {
label: "clippy::needless_pass_by_value",
@@ -12369,7 +12542,7 @@ can be eliminated."##,
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 of type result."##,
+ description: r##"Checks for usage of `panic!` or assertions in a function whose return type is `Result`."##,
},
Lint {
label: "clippy::panicking_unwrap",
@@ -12377,7 +12550,7 @@ can be eliminated."##,
},
Lint {
label: "clippy::partial_pub_fields",
- description: r##"Checks whether partial fields of a struct are public.
+ 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"##,
},
@@ -12685,6 +12858,11 @@ and suggests `std::ptr::from_ref` and `std::ptr::from_mut` instead."##,
description: r##"Nothing. This lint has been deprecated."##,
},
Lint {
+ label: "clippy::renamed_function_params",
+ description: r##"Lints when the name of function parameters from trait impl is
+different than its default implementation."##,
+ },
+ Lint {
label: "clippy::repeat_once",
description: r##"Checks for usage of `.repeat(1)` and suggest the following method for each types.
- `.to_string()` for `str`
@@ -12765,8 +12943,8 @@ one from a trait, another not from trait."##,
},
Lint {
label: "clippy::seek_from_current",
- description: r##"Checks an argument of `seek` method of `Seek` trait
-and if it start seek from `SeekFrom::Current(0)`, suggests `stream_position` instead."##,
+ 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."##,
},
Lint {
label: "clippy::seek_to_start_instead_of_rewind",
@@ -12810,6 +12988,11 @@ see the `unseparated_literal_suffix` lint."##,
description: r##"Checks for misuses of the serde API."##,
},
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`."##,
+ },
+ Lint {
label: "clippy::shadow_reuse",
description: r##"Checks for bindings that shadow other bindings already in
scope, while reusing the original value."##,
@@ -13100,10 +13283,6 @@ either `ignore`, `no_run` or `compile_fail`."##,
(marked with `#[cfg(test)]`)."##,
},
Lint {
- label: "clippy::thread_local_initializer_can_be_made_const",
- description: r##"Suggests to use `const` in `thread_local!` macro if possible."##,
- },
- Lint {
label: "clippy::to_digit_is_some",
description: r##"Checks for `.to_digit(..).is_some()` on `char`s."##,
},
@@ -13162,7 +13341,7 @@ syntax specifications for trait bounds are used simultaneously."##,
},
Lint {
label: "clippy::transmute_int_to_non_zero",
- description: r##"Checks for transmutes from integers to `NonZero*` types, and suggests their `new_unchecked`
+ description: r##"Checks for transmutes from `T` to `NonZero<T>`, and suggests the `new_unchecked`
method instead."##,
},
Lint {
@@ -13222,7 +13401,7 @@ declarations above a certain complexity threshold."##,
},
Lint {
label: "clippy::type_id_on_box",
- description: r##"Looks for calls to `<Box<dyn Any> as Any>::type_id`."##,
+ description: r##"Looks for calls to `.type_id()` on a `Box<dyn _>`."##,
},
Lint {
label: "clippy::type_repetition_in_bounds",
@@ -13234,8 +13413,8 @@ declarations above a certain complexity threshold."##,
},
Lint {
label: "clippy::unconditional_recursion",
- description: r##"Checks that there isn't an infinite recursion in `PartialEq` trait
-implementation."##,
+ description: r##"Checks that there isn't an infinite recursion in trait
+implementations."##,
},
Lint {
label: "clippy::undocumented_unsafe_blocks",
@@ -13380,6 +13559,12 @@ simpler code:
is being constructed."##,
},
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"##,
+ },
+ Lint {
label: "clippy::unnecessary_mut_passed",
description: r##"Detects passing a mutable reference to a function that only
requires an immutable reference."##,
@@ -13586,11 +13771,21 @@ lint attributes.
This lint permits lint attributes for lints emitted on the items themself.
For `use` items these lints are:
+* ambiguous_glob_reexports
+* dead_code
* deprecated
+* hidden_glob_reexports
* unreachable_pub
-* unused_imports
+* unused
+* unused_braces
+* unused_import_braces
+* clippy::disallowed_types
* clippy::enum_glob_use
* clippy::macro_use_imports
+* clippy::module_name_repetitions
+* clippy::redundant_pub_crate
+* clippy::single_component_path_imports
+* clippy::unsafe_removed_from_name
* clippy::wildcard_imports
For `extern crate` items these lints are:
@@ -13655,6 +13850,10 @@ to `trailing_zeros`"##,
description: r##"Checks for usage of `waker.clone().wake()`"##,
},
Lint {
+ label: "clippy::while_float",
+ description: r##"Checks for while loops comparing floating point values."##,
+ },
+ Lint {
label: "clippy::while_immutable_condition",
description: r##"Checks whether variables used within while loop condition
can be (and are) mutated in the body."##,
@@ -13746,6 +13945,11 @@ architecture."##,
description: r##"Catch casts from `0` to some pointer type"##,
},
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."##,
+ },
+ Lint {
label: "clippy::zero_sized_map_values",
description: r##"Checks for maps with zero-sized value types anywhere in the code."##,
},
@@ -13772,7 +13976,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
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_filter, clippy::manual_filter_map, clippy::manual_find, clippy::manual_find_map, clippy::manual_flatten, clippy::manual_hash_one, 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::overflow_check_conditional, 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_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_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::overflow_check_conditional, 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"##,
},
children: &[
"clippy::bind_instead_of_map",
@@ -13808,12 +14012,14 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -13887,6 +14093,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -13906,7 +14113,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
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::mismatched_target_os, 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_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::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_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"##,
},
children: &[
"clippy::absurd_extreme_comparisons",
@@ -13942,7 +14149,6 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::match_str_case_mismatch",
"clippy::mem_replace_with_uninit",
"clippy::min_max",
- "clippy::mismatched_target_os",
"clippy::mistyped_literal_suffixes",
"clippy::modulo_one",
"clippy::mut_from_ref",
@@ -13983,7 +14189,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
LintGroup {
lint: Lint {
label: "clippy::deprecated",
- description: r##"lint group for: clippy::assign_ops, clippy::extend_from_slice, clippy::filter_map, clippy::find_map, clippy::if_let_redundant_pattern_matching, clippy::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"##,
+ 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"##,
},
children: &[
"clippy::assign_ops",
@@ -13991,7 +14197,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14007,7 +14215,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
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::manual_clamp, 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::readonly_write_lock, clippy::redundant_clone, clippy::redundant_pub_crate, 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"##,
+ 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"##,
},
children: &[
"clippy::as_ptr_cast_mut",
@@ -14027,7 +14235,6 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::iter_on_single_items",
"clippy::iter_with_drain",
"clippy::large_stack_frames",
- "clippy::manual_clamp",
"clippy::missing_const_for_fn",
"clippy::mutex_integer",
"clippy::needless_collect",
@@ -14038,9 +14245,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::or_fun_call",
"clippy::path_buf_push_overwrite",
"clippy::read_zero_byte_vec",
- "clippy::readonly_write_lock",
"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",
@@ -14058,14 +14265,16 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::unused_rounding",
"clippy::use_self",
"clippy::useless_let_if_seq",
+ "clippy::while_float",
],
},
LintGroup {
lint: Lint {
label: "clippy::pedantic",
- description: r##"lint group for: 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_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_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"##,
},
children: &[
+ "clippy::assigning_clones",
"clippy::bool_to_int_with_if",
"clippy::borrow_as_ptr",
"clippy::case_sensitive_file_extension_comparisons",
@@ -14160,6 +14369,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14189,11 +14399,10 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
LintGroup {
lint: Lint {
label: "clippy::perf",
- description: r##"lint group for: clippy::box_collection, clippy::box_default, 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_nth, 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_spin_loop, clippy::redundant_allocation, clippy::result_large_err, clippy::single_char_pattern, clippy::slow_vector_initialization, clippy::thread_local_initializer_can_be_made_const, clippy::to_string_in_format_args, clippy::unnecessary_to_owned, clippy::useless_vec, clippy::vec_init_then_push, clippy::waker_clone_wake"##,
+ 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"##,
},
children: &[
"clippy::box_collection",
- "clippy::box_default",
"clippy::boxed_local",
"clippy::cmp_owned",
"clippy::collapsible_str_replace",
@@ -14202,7 +14411,6 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::extend_with_drain",
"clippy::format_collect",
"clippy::format_in_format_args",
- "clippy::iter_nth",
"clippy::iter_overeager_cloned",
"clippy::large_const_arrays",
"clippy::large_enum_variant",
@@ -14211,12 +14419,12 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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::single_char_pattern",
"clippy::slow_vector_initialization",
- "clippy::thread_local_initializer_can_be_made_const",
"clippy::to_string_in_format_args",
"clippy::unnecessary_to_owned",
"clippy::useless_vec",
@@ -14227,7 +14435,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
LintGroup {
lint: Lint {
label: "clippy::restriction",
- description: r##"lint group for: clippy::absolute_paths, clippy::alloc_instead_of_core, clippy::allow_attributes, clippy::allow_attributes_without_reason, clippy::arithmetic_side_effects, clippy::as_conversions, clippy::as_underscore, clippy::assertions_on_result_states, clippy::big_endian_bytes, clippy::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::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::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::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::rest_pat_in_fully_bound_structs, clippy::same_name_method, clippy::self_named_module_files, clippy::semicolon_inside_block, clippy::semicolon_outside_block, clippy::separated_literal_suffix, clippy::shadow_reuse, clippy::shadow_same, clippy::shadow_unrelated, clippy::single_call_fn, clippy::single_char_lifetime_names, clippy::std_instead_of_alloc, clippy::std_instead_of_core, clippy::str_to_string, clippy::string_add, clippy::string_lit_chars_any, clippy::string_slice, clippy::string_to_string, clippy::suspicious_xor_used_as_pow, clippy::tests_outside_test_module, clippy::todo, clippy::try_err, clippy::undocumented_unsafe_blocks, clippy::unimplemented, clippy::unnecessary_safety_comment, clippy::unnecessary_safety_doc, clippy::unnecessary_self_imports, clippy::unneeded_field_pattern, clippy::unreachable, clippy::unseparated_literal_suffix, clippy::unwrap_in_result, clippy::unwrap_used, clippy::use_debug, clippy::verbose_file_reads, clippy::wildcard_enum_match_arm"##,
+ description: r##"lint group for: clippy::absolute_paths, clippy::alloc_instead_of_core, clippy::allow_attributes, clippy::allow_attributes_without_reason, clippy::arithmetic_side_effects, clippy::as_conversions, clippy::as_underscore, clippy::assertions_on_result_states, clippy::big_endian_bytes, clippy::cfg_not_test, clippy::clone_on_ref_ptr, clippy::create_dir, clippy::dbg_macro, clippy::decimal_literal_representation, clippy::default_numeric_fallback, clippy::default_union_representation, clippy::deref_by_slicing, clippy::disallowed_script_idents, clippy::else_if_without_else, clippy::empty_drop, clippy::empty_enum_variants_with_brackets, clippy::empty_structs_with_brackets, clippy::error_impl_error, clippy::exhaustive_enums, clippy::exhaustive_structs, clippy::exit, clippy::expect_used, clippy::field_scoped_visibility_modifiers, clippy::filetype_is_file, clippy::float_arithmetic, clippy::float_cmp_const, clippy::fn_to_numeric_cast_any, clippy::format_push_string, clippy::get_unwrap, clippy::host_endian_bytes, clippy::if_then_some_else_none, clippy::impl_trait_in_params, clippy::implicit_return, clippy::indexing_slicing, clippy::infinite_loop, clippy::inline_asm_x86_att_syntax, clippy::inline_asm_x86_intel_syntax, clippy::integer_division, clippy::integer_division_remainder_used, clippy::iter_over_hash_type, clippy::large_include_file, clippy::let_underscore_must_use, clippy::let_underscore_untyped, clippy::little_endian_bytes, clippy::lossy_float_literal, clippy::map_err_ignore, clippy::mem_forget, clippy::min_ident_chars, clippy::missing_assert_message, clippy::missing_asserts_for_indexing, clippy::missing_docs_in_private_items, clippy::missing_inline_in_public_items, clippy::missing_trait_methods, clippy::mixed_read_write_in_expression, clippy::mod_module_files, clippy::modulo_arithmetic, clippy::multiple_inherent_impl, clippy::multiple_unsafe_ops_per_block, clippy::mutex_atomic, clippy::needless_raw_strings, clippy::non_ascii_literal, clippy::panic, clippy::panic_in_result_fn, clippy::partial_pub_fields, clippy::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"##,
},
children: &[
"clippy::absolute_paths",
@@ -14239,6 +14447,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14256,6 +14465,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::exhaustive_structs",
"clippy::exit",
"clippy::expect_used",
+ "clippy::field_scoped_visibility_modifiers",
"clippy::filetype_is_file",
"clippy::float_arithmetic",
"clippy::float_cmp_const",
@@ -14271,6 +14481,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14307,6 +14518,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14347,7 +14559,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
LintGroup {
lint: Lint {
label: "clippy::style",
- description: r##"lint group for: clippy::assertions_on_constants, clippy::assign_op_pattern, clippy::blocks_in_conditions, clippy::bool_assert_comparison, clippy::borrow_interior_mutable_const, clippy::builtin_type_shadow, 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::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_zero, clippy::iter_skip_next, clippy::just_underscores_and_digits, 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_range_contains, 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_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::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"##,
},
children: &[
"clippy::assertions_on_constants",
@@ -14355,7 +14567,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14371,6 +14585,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::disallowed_methods",
"clippy::disallowed_names",
"clippy::disallowed_types",
+ "clippy::doc_lazy_continuation",
"clippy::double_must_use",
"clippy::double_neg",
"clippy::duplicate_underscore_argument",
@@ -14397,9 +14612,11 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14413,7 +14630,9 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14426,6 +14645,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14497,7 +14717,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
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::crate_in_macro_def, clippy::deprecated_clippy_cfg_attr, clippy::drop_non_drop, clippy::duplicate_mod, 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::maybe_misused_cfg, clippy::misnamed_getters, clippy::misrefactored_assign_op, clippy::mixed_attributes_style, clippy::multi_assignments, clippy::multiple_bound_locations, clippy::mut_range_bound, clippy::mutable_key_type, 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"##,
+ 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"##,
},
children: &[
"clippy::almost_complete_range",
@@ -14511,10 +14731,12 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"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",
@@ -14527,14 +14749,17 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::join_absolute_paths",
"clippy::let_underscore_future",
"clippy::lines_filter_map_ok",
- "clippy::maybe_misused_cfg",
+ "clippy::macro_metavars_in_unsafe",
+ "clippy::manual_unwrap_or_default",
"clippy::misnamed_getters",
"clippy::misrefactored_assign_op",
- "clippy::mixed_attributes_style",
+ "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",
@@ -14563,6 +14788,7 @@ pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &[
"clippy::unnecessary_clippy_cfg",
"clippy::unnecessary_get_then_check",
"clippy::unnecessary_result_map_or_else",
+ "clippy::zero_repeat_side_effects",
],
},
];