Skip to content

Commit 7a17931

Browse files
authored
Changelog for Clippy 1.89 🌽 (#15375)
Violets are red, Roses are blue, As August winds whisper, Take a chance, then rest too. <hr> Appreciate it as always @xFrednet <img width="601" height="744" alt="image" src="https://github.com/user-attachments/assets/a0e4af41-da97-4565-881b-549ed51d7fc5" /> <hr> Cats for the next release can be traditionally nominated in the comments :D Please be more active and cat-minded 😻 changelog: none r? flip1995
2 parents 2b9fb32 + 9f7a8f8 commit 7a17931

File tree

7 files changed

+105
-7
lines changed

7 files changed

+105
-7
lines changed

CHANGELOG.md

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,105 @@ document.
66

77
## Unreleased / Beta / In Rust Nightly
88

9-
[03a5b6b9...master](https://github.com/rust-lang/rust-clippy/compare/03a5b6b9...master)
9+
[4ef75291...master](https://github.com/rust-lang/rust-clippy/compare/4ef75291...master)
10+
11+
## Rust 1.89
12+
13+
Current stable, released 2025-08-07
14+
15+
[View all 137 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2025-05-01T16%3A52%3A57Z..2025-06-13T08%3A33%3A27Z+base%3Amaster)
16+
17+
### New Lints
18+
19+
* Added [`coerce_container_to_any`] to `nursery` [#14812](https://github.com/rust-lang/rust-clippy/pull/14812)
20+
* Added [`ip_constant`] to `pedantic` [#14878](https://github.com/rust-lang/rust-clippy/pull/14878)
21+
* Added [`infallible_try_from`] to `suspicious` [#14813](https://github.com/rust-lang/rust-clippy/pull/14813)
22+
* Added [`doc_suspicious_footnotes`] to `suspicious` [#14708](https://github.com/rust-lang/rust-clippy/pull/14708)
23+
* Added [`pointer_format`] to `restriction` [#14792](https://github.com/rust-lang/rust-clippy/pull/14792)
24+
* Added [`useless_concat`] to `complexity` [#13829](https://github.com/rust-lang/rust-clippy/pull/13829)
25+
* Added [`cloned_ref_to_slice_refs`] to `perf` [#14284](https://github.com/rust-lang/rust-clippy/pull/14284)
26+
* Added [`confusing_method_to_numeric_cast`] to `suspicious` [#13979](https://github.com/rust-lang/rust-clippy/pull/13979)
27+
28+
### Moves and Deprecations
29+
30+
* Removed superseded lints: `transmute_float_to_int`, `transmute_int_to_char`,
31+
`transmute_int_to_float`, `transmute_num_to_bytes` (now in rustc)
32+
[#14703](https://github.com/rust-lang/rust-clippy/pull/14703)
33+
34+
### Enhancements
35+
36+
* [`module_name_repetitions`] added `allow_exact_repetitions` configuration option
37+
[#14261](https://github.com/rust-lang/rust-clippy/pull/14261)
38+
* [`missing_docs_in_private_items`] added `allow_unused` config for underscored fields
39+
[#14453](https://github.com/rust-lang/rust-clippy/pull/14453)
40+
* [`unnecessary_unwrap`] fixed being emitted twice in closure
41+
[#14763](https://github.com/rust-lang/rust-clippy/pull/14763)
42+
* [`needless_return`] lint span no longer wraps to previous line
43+
[#14790](https://github.com/rust-lang/rust-clippy/pull/14790)
44+
* [`trivial-copy-size-limit`] now defaults to `target_pointer_width`
45+
[#13319](https://github.com/rust-lang/rust-clippy/pull/13319)
46+
* [`integer_division`] fixed false negative for NonZero denominators
47+
[#14664](https://github.com/rust-lang/rust-clippy/pull/14664)
48+
* [`arbitrary_source_item_ordering`] no longer lints inside items with `#[repr]` attribute
49+
[#14610](https://github.com/rust-lang/rust-clippy/pull/14610)
50+
* [`excessive_precision`] no longer triggers on exponent with leading zeros
51+
[#14824](https://github.com/rust-lang/rust-clippy/pull/14824)
52+
* [`to_digit_is_some`] no longer lints in const contexts when MSRV is below 1.87
53+
[#14771](https://github.com/rust-lang/rust-clippy/pull/14771)
54+
55+
### False Positive Fixes
56+
57+
* [`std_instead_of_core`] fixed FP when part of the `use` cannot be replaced
58+
[#15016](https://github.com/rust-lang/rust-clippy/pull/15016)
59+
* [`unused_unit`] fixed FP for `Fn` bounds
60+
[#14962](https://github.com/rust-lang/rust-clippy/pull/14962)
61+
* [`unnecessary_debug_formatting`] fixed FP inside `Debug` impl
62+
[#14955](https://github.com/rust-lang/rust-clippy/pull/14955)
63+
* [`assign_op_pattern`] fixed FP on unstable const trait
64+
[#14886](https://github.com/rust-lang/rust-clippy/pull/14886)
65+
* [`useless_conversion`] fixed FP when using `.into_iter().any()`
66+
[#14800](https://github.com/rust-lang/rust-clippy/pull/14800)
67+
* [`collapsible_if`] fixed FP on block stmt before expr
68+
[#14730](https://github.com/rust-lang/rust-clippy/pull/14730)
69+
* [`manual_unwrap_or_default`] fixed FP on ref binding
70+
[#14731](https://github.com/rust-lang/rust-clippy/pull/14731)
71+
* [`unused_async`] fixed FP on default impl
72+
[#14720](https://github.com/rust-lang/rust-clippy/pull/14720)
73+
* [`manual_slice_fill`] fixed FP on `IndexMut` overload
74+
[#14719](https://github.com/rust-lang/rust-clippy/pull/14719)
75+
* [`unnecessary_to_owned`] fixed FP when map key is a reference
76+
[#14834](https://github.com/rust-lang/rust-clippy/pull/14834)
77+
78+
### ICE Fixes
79+
80+
* [`mutable_key_type`] fixed ICE when infinitely associated generic types are used
81+
[#14965](https://github.com/rust-lang/rust-clippy/pull/14965)
82+
* [`zero_sized_map_values`] fixed ICE while computing type layout
83+
[#14837](https://github.com/rust-lang/rust-clippy/pull/14837)
84+
* [`useless_asref`] fixed ICE on trait method
85+
[#14830](https://github.com/rust-lang/rust-clippy/pull/14830)
86+
* [`manual_slice_size_calculation`] fixed ICE in suggestion and triggers in `const` context
87+
[#14804](https://github.com/rust-lang/rust-clippy/pull/14804)
88+
* [`missing_const_for_fn`]: fix ICE with some compilation options
89+
[#14776](https://github.com/rust-lang/rust-clippy/pull/14776)
90+
91+
### Documentation Improvements
92+
93+
* [`manual_contains`] improved documentation wording
94+
[#14917](https://github.com/rust-lang/rust-clippy/pull/14917)
95+
96+
### Performance improvements
97+
98+
* [`strlen_on_c_strings`] optimized by 99.75% (31M → 76k instructions)
99+
[#15043](https://github.com/rust-lang/rust-clippy/pull/15043)
100+
* Reduced documentation lints execution time by 85% (7.5% → 1% of total runtime)
101+
[#14870](https://github.com/rust-lang/rust-clippy/pull/14870)
102+
* [`unit_return_expecting_ord`] optimized to reduce binder instantiation from 95k to 10k calls
103+
[#14905](https://github.com/rust-lang/rust-clippy/pull/14905)
104+
* [`doc_markdown`] optimized by 50%
105+
[#14693](https://github.com/rust-lang/rust-clippy/pull/14693)
106+
* Refactor and speed up `cargo dev fmt`
107+
[#14638](https://github.com/rust-lang/rust-clippy/pull/14638)
10108

11109
## Rust 1.88
12110

clippy_lints/src/casts/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -807,7 +807,7 @@ declare_clippy_lint! {
807807
/// ```no_run
808808
/// let _ = u16::MAX as usize;
809809
/// ```
810-
#[clippy::version = "1.86.0"]
810+
#[clippy::version = "1.89.0"]
811811
pub CONFUSING_METHOD_TO_NUMERIC_CAST,
812812
suspicious,
813813
"casting a primitive method pointer to any integer type"

clippy_lints/src/cloned_ref_to_slice_refs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ declare_clippy_lint! {
3737
/// let data_ref = &data;
3838
/// take_slice(slice::from_ref(data_ref));
3939
/// ```
40-
#[clippy::version = "1.87.0"]
40+
#[clippy::version = "1.89.0"]
4141
pub CLONED_REF_TO_SLICE_REFS,
4242
perf,
4343
"cloning a reference for slice references"

clippy_lints/src/coerce_container_to_any.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ declare_clippy_lint! {
4141
/// // Succeeds since we have a &dyn Any to the inner u32!
4242
/// assert_eq!(dyn_any_of_u32.downcast_ref::<u32>(), Some(&0u32));
4343
/// ```
44-
#[clippy::version = "1.88.0"]
44+
#[clippy::version = "1.89.0"]
4545
pub COERCE_CONTAINER_TO_ANY,
4646
nursery,
4747
"coercing to `&dyn Any` when dereferencing could produce a `dyn Any` without coercion is usually not intended"

clippy_lints/src/doc/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ declare_clippy_lint! {
662662
/// /// [^1]: defined here
663663
/// fn my_fn() {}
664664
/// ```
665-
#[clippy::version = "1.88.0"]
665+
#[clippy::version = "1.89.0"]
666666
pub DOC_SUSPICIOUS_FOOTNOTES,
667667
suspicious,
668668
"looks like a link or footnote ref, but with no definition"

clippy_lints/src/format_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ declare_clippy_lint! {
222222
/// ```
223223
///
224224
/// [pointer format]: https://doc.rust-lang.org/std/fmt/index.html#formatting-traits
225-
#[clippy::version = "1.88.0"]
225+
#[clippy::version = "1.89.0"]
226226
pub POINTER_FORMAT,
227227
restriction,
228228
"formatting a pointer"

clippy_lints/src/infallible_try_from.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ declare_clippy_lint! {
3535
/// }
3636
/// }
3737
/// ```
38-
#[clippy::version = "1.88.0"]
38+
#[clippy::version = "1.89.0"]
3939
pub INFALLIBLE_TRY_FROM,
4040
suspicious,
4141
"TryFrom with infallible Error type"

0 commit comments

Comments
 (0)