@@ -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