Skip to content

Commit 63a5be9

Browse files
authored
Changelog for Clippy 1.97 🍹 (#17344)
Violets are red, Roses are blue, Summer brings sunshine, And good vibes too. ---- Maya from @tunamayo04 was recognized even in camouflage <img width="1795" height="1751" alt="image" src="https://github.com/user-attachments/assets/45e211a2-b45d-4bff-85d7-601a0edb34b2" /> ---- Cats for the next release can be nominated in the comments changelog: none r? flip1995
2 parents 4e5744d + 490da02 commit 63a5be9

1 file changed

Lines changed: 109 additions & 1 deletion

File tree

CHANGELOG.md

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

77
## Unreleased / Beta / In Rust Nightly
88

9-
[88f787...master](https://github.com/rust-lang/rust-clippy/compare/88f787...master)
9+
[b147b68...master](https://github.com/rust-lang/rust-clippy/compare/b147b68...master)
10+
11+
## Rust 1.97
12+
13+
Current stable, released 2026-07-09
14+
15+
[View all 55 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2026-04-04T13%3A32%3A00Z..2026-05-13T17%3A35%3A43Z+base%3Amaster)
16+
17+
### New Lints
18+
19+
* Added [`manual_assert_eq`] to `pedantic`
20+
[#16025](https://github.com/rust-lang/rust-clippy/pull/16025)
21+
* Added [`manual_clear`] to `perf`
22+
[#16617](https://github.com/rust-lang/rust-clippy/pull/16617)
23+
* Added [`useless_borrows_in_formatting`] to `perf`
24+
[#16523](https://github.com/rust-lang/rust-clippy/pull/16523)
25+
* Added [`inline_trait_bounds`] to `restriction`
26+
[#16486](https://github.com/rust-lang/rust-clippy/pull/16486)
27+
* Added [`inline_modules`] to `restriction`
28+
[#16732](https://github.com/rust-lang/rust-clippy/pull/16732)
29+
30+
### Moves and Deprecations
31+
32+
* Moved [`nonminimal_bool`] from `complexity` to `pedantic`
33+
[#16761](https://github.com/rust-lang/rust-clippy/pull/16761)
34+
* Moved [`overly_complex_bool_expr`] from `correctness` to `pedantic`
35+
[#16761](https://github.com/rust-lang/rust-clippy/pull/16761)
36+
37+
### Enhancements
38+
39+
* [`unused_format_specs`] detect format width below the minimum output size for `#x`/`#o`/`#b`,
40+
exponent, and pointer formats
41+
[#16542](https://github.com/rust-lang/rust-clippy/pull/16542)
42+
* [`zst_offset`] detect zero-sized `NonNull<T>` offset calculations
43+
[#16888](https://github.com/rust-lang/rust-clippy/pull/16888)
44+
* [`byte_char_slices`] enhance to cover arrays
45+
[#16770](https://github.com/rust-lang/rust-clippy/pull/16770)
46+
* [`manual_filter`] enhance to cover `and_then`
47+
[#16456](https://github.com/rust-lang/rust-clippy/pull/16456)
48+
* [`unneeded_wildcard_pattern`] add support for struct constructs
49+
[#16733](https://github.com/rust-lang/rust-clippy/pull/16733)
50+
* [`needless_late_init`] enhance to cover grouped assignments
51+
[#16746](https://github.com/rust-lang/rust-clippy/pull/16746)
52+
* [`needless_return_with_question_mark`] fix FN in async function bodies
53+
[#16952](https://github.com/rust-lang/rust-clippy/pull/16952)
54+
* [`needless_ifs`] fix FN when code contains a vertical tab (`\x0B`) whitespace
55+
[#16845](https://github.com/rust-lang/rust-clippy/pull/16845)
56+
* [`cloned_ref_to_slice_refs`] fix FN on `to_owned()`
57+
[#16329](https://github.com/rust-lang/rust-clippy/pull/16329)
58+
* [`for_kv_map`] fix FN when using `iter` and `iter_mut`
59+
[#16830](https://github.com/rust-lang/rust-clippy/pull/16830)
60+
* [`question_mark`] fix FN for manual unwrap with `if let` or `match`, when the scrutinee is behind
61+
a reference, and when the binding is behind `ref` or `mut`
62+
[#16769](https://github.com/rust-lang/rust-clippy/pull/16769)
63+
* [`question_mark`] fix wrong suggestion when the match arm body is a destructuring assignment
64+
[#16863](https://github.com/rust-lang/rust-clippy/pull/16863)
65+
* [`expect_fun_call`] fix wrong suggestions for string slicing
66+
[#16752](https://github.com/rust-lang/rust-clippy/pull/16752)
67+
* [`println_empty_string`] fix wrong suggestion with non-parenthesis delimiters
68+
[#16846](https://github.com/rust-lang/rust-clippy/pull/16846)
69+
* [`int_plus_one`] parenthesize an `as` cast in the suggestion when the replacement operator is `<`
70+
to avoid a parse error
71+
[#16848](https://github.com/rust-lang/rust-clippy/pull/16848)
72+
* [`bad_bit_mask`] truncate the constant to the target type before warning about impossible equality
73+
[#16782](https://github.com/rust-lang/rust-clippy/pull/16782)
74+
* [`manual_rotate`], [`map_with_unused_argument_over_ranges`], [`needless_bool`],
75+
[`manual_is_power_of_two`], [`manual_div_ceil`], [`implicit_saturating_sub`], [`range_minus_one`],
76+
[`range_plus_one`], [`manual_swap`], [`let_and_return`] fix wrongly unmangled macros
77+
[#16443](https://github.com/rust-lang/rust-clippy/pull/16443)
78+
* [`manual_noop_waker`] add an MSRV check
79+
[#16850](https://github.com/rust-lang/rust-clippy/pull/16850)
80+
81+
### False Positive Fixes
82+
83+
* [`manual_option_zip`] fix FP when the outer param is used in a closure
84+
[#16970](https://github.com/rust-lang/rust-clippy/pull/16970)
85+
* [`non_canonical_clone_impl`] fix incompatibility with [`implicit_return`]
86+
[#16949](https://github.com/rust-lang/rust-clippy/pull/16949)
87+
* [`from_over_into`] don't lint when a blanket `From` impl would cause a coherence conflict
88+
[#16881](https://github.com/rust-lang/rust-clippy/pull/16881)
89+
* [`collapsible_match`] no longer suggests collapsing `pattern => { if test { body } }` into a match
90+
guard when non-wildcard arms follow, as this changes the semantics of the match
91+
[#16878](https://github.com/rust-lang/rust-clippy/pull/16878)
92+
* [`unused_async`] fix FP for stubs with args
93+
[#16832](https://github.com/rust-lang/rust-clippy/pull/16832)
94+
* [`useless_conversion`] do not lint on `(a..b).into_iter()`, for compatibility with future range
95+
syntax changes
96+
[#16891](https://github.com/rust-lang/rust-clippy/pull/16891)
97+
* [`bind_instead_of_map`] do not propose a rewrite when the only way to leave the closure is through
98+
a divergent statement other than `return`
99+
[#16867](https://github.com/rust-lang/rust-clippy/pull/16867)
100+
* [`let_and_return`] do not trigger on the `let else` construct
101+
[#16829](https://github.com/rust-lang/rust-clippy/pull/16829)
102+
* [`fn_to_numeric_cast_any`] fix FP on a cast to a raw pointer
103+
[#14109](https://github.com/rust-lang/rust-clippy/pull/14109)
104+
* [`unnecessary_cast`] no longer suggests removing a cast that can cause a compilation error
105+
[#16796](https://github.com/rust-lang/rust-clippy/pull/16796)
106+
* [`unsafe_removed_from_name`] skip linting when renaming to `_`
107+
[#16802](https://github.com/rust-lang/rust-clippy/pull/16802)
108+
109+
### ICE Fixes
110+
111+
* [`bad_bit_mask`] fix ICE for overloaded bit ops
112+
[#16937](https://github.com/rust-lang/rust-clippy/pull/16937)
113+
114+
### Performance Improvements
115+
116+
* Fold all late lint passes into one statically-combined pass
117+
[#17124](https://github.com/rust-lang/rust-clippy/pull/17124)
10118

11119
## Rust 1.96
12120

0 commit comments

Comments
 (0)