@@ -6,11 +6,162 @@ document.
66
77## Unreleased / In Rust Nightly
88
9- [7bfc26e...master](https://github.com/rust-lang/rust-clippy/compare/7bfc26e...master)
9+ [b7f3f7f...master](https://github.com/rust-lang/rust-clippy/compare/b7f3f7f...master)
10+
11+ ## Rust 1.57
12+
13+ Current beta, release 2021-12-02
14+
15+ [7bfc26e...b7f3f7f](https://github.com/rust-lang/rust-clippy/compare/7bfc26e...b7f3f7f)
16+
17+ ### New Lints
18+
19+ * [`negative_feature_names`]
20+ [#7539](https://github.com/rust-lang/rust-clippy/pull/7539)
21+ * [`redundant_feature_names`]
22+ [#7539](https://github.com/rust-lang/rust-clippy/pull/7539)
23+ * [`mod_module_files`]
24+ [#7543](https://github.com/rust-lang/rust-clippy/pull/7543)
25+ * [`self_named_module_files`]
26+ [#7543](https://github.com/rust-lang/rust-clippy/pull/7543)
27+ * [`manual_split_once`]
28+ [#7565](https://github.com/rust-lang/rust-clippy/pull/7565)
29+ * [`derivable_impls`]
30+ [#7570](https://github.com/rust-lang/rust-clippy/pull/7570)
31+ * [`needless_option_as_deref`]
32+ [#7596](https://github.com/rust-lang/rust-clippy/pull/7596)
33+ * [`iter_not_returning_iterator`]
34+ [#7610](https://github.com/rust-lang/rust-clippy/pull/7610)
35+ * [`same_name_method`]
36+ [#7653](https://github.com/rust-lang/rust-clippy/pull/7653)
37+ * [`if_then_panic`] [#7669](https://github.com/rust-lang/rust-clippy/pull/7669)
38+ * [`non_send_fields_in_send_ty`]
39+ [#7709](https://github.com/rust-lang/rust-clippy/pull/7709)
40+ * [`equatable_if_let`]
41+ [#7762](https://github.com/rust-lang/rust-clippy/pull/7762)
42+
43+ ### Moves and Deprecations
44+
45+ * Move [`shadow_unrelated`] to `restriction`
46+ [#7338](https://github.com/rust-lang/rust-clippy/pull/7338)
47+ * Move [`option_if_let_else`] to `nursery`
48+ [#7568](https://github.com/rust-lang/rust-clippy/pull/7568)
49+ * Move [`branches_sharing_code`] to `nursery`
50+ [#7595](https://github.com/rust-lang/rust-clippy/pull/7595)
51+ * Rename `if_let_some_result` to [`match_result_ok`] which now also handles
52+ `while let` cases [#7608](https://github.com/rust-lang/rust-clippy/pull/7608)
53+ * Move [`many_single_char_names`] to `pedantic`
54+ [#7671](https://github.com/rust-lang/rust-clippy/pull/7671)
55+ * Move [`float_cmp`] to `pedantic`
56+ [#7692](https://github.com/rust-lang/rust-clippy/pull/7692)
57+ * Rename `box_vec` to [`box_collection`] and lint on more general cases
58+ [#7693](https://github.com/rust-lang/rust-clippy/pull/7693)
59+ * Uplift `invalid_atomic_ordering` to rustc
60+ [rust-lang/rust#84039](https://github.com/rust-lang/rust/pull/84039)
61+
62+ ### Enhancements
63+
64+ * Rewrite the `shadow*` lints, so that they find a lot more shadows and are not
65+ limited to certain patterns
66+ [#7338](https://github.com/rust-lang/rust-clippy/pull/7338)
67+ * The `avoid-breaking-exported-api` configuration now also works for
68+ [`box_collection`], [`redundant_allocation`], [`rc_buffer`], [`vec_box`],
69+ [`option_option`], [`linkedlist`], [`rc_mutex`]
70+ [#7560](https://github.com/rust-lang/rust-clippy/pull/7560)
71+ * [`unnecessary_unwrap`]: Now also checks for `expect`s
72+ [#7584](https://github.com/rust-lang/rust-clippy/pull/7584)
73+ * [`disallowed_method`]: Allow adding a reason that will be displayed with the
74+ lint message
75+ [#7621](https://github.com/rust-lang/rust-clippy/pull/7621)
76+ * [`approx_constant`]: Now checks the MSRV for `LOG10_2` and `LOG2_10`
77+ [#7629](https://github.com/rust-lang/rust-clippy/pull/7629)
78+ * [`approx_constant`]: Add `TAU`
79+ [#7642](https://github.com/rust-lang/rust-clippy/pull/7642)
80+ * [`needless_borrow`]: Now also lints on needless mutable borrows
81+ [#7657](https://github.com/rust-lang/rust-clippy/pull/7657)
82+ * [`missing_safety_doc`]: Now also lints on unsafe traits
83+ [#7734](https://github.com/rust-lang/rust-clippy/pull/7734)
84+
85+ ### False Positive Fixes
86+
87+ * [`manual_map`]: No longer lints when the option is borrowed in the match and
88+ also consumed in the arm
89+ [#7531](https://github.com/rust-lang/rust-clippy/pull/7531)
90+ * [`filter_next`]: No longer lints if `filter` method is not the
91+ `Iterator::filter` method
92+ [#7562](https://github.com/rust-lang/rust-clippy/pull/7562)
93+ * [`manual_flatten`]: No longer lints if expression is used after `if let`
94+ [#7566](https://github.com/rust-lang/rust-clippy/pull/7566)
95+ * [`option_if_let_else`]: Multiple fixes
96+ [#7573](https://github.com/rust-lang/rust-clippy/pull/7573)
97+ * `break` and `continue` statements local to the would-be closure are
98+ allowed
99+ * Don't lint in const contexts
100+ * Don't lint when yield expressions are used
101+ * Don't lint when the captures made by the would-be closure conflict with
102+ the other branch
103+ * Don't lint when a field of a local is used when the type could be
104+ potentially moved from
105+ * In some cases, don't lint when scrutinee expression conflicts with the
106+ captures of the would-be closure
107+ * [`redundant_allocation`]: No longer lints on `Box<Box<dyn T>>` which replaces
108+ wide pointers with thin pointers
109+ [#7592](https://github.com/rust-lang/rust-clippy/pull/7592)
110+ * [`bool_assert_comparison`]: No longer lints on types that do not implement the
111+ `Not` trait with `Output = bool`
112+ [#7605](https://github.com/rust-lang/rust-clippy/pull/7605)
113+ * [`mut_range_bound`]: No longer lints on range bound mutations, that are
114+ immediately followed by a `break;`
115+ [#7607](https://github.com/rust-lang/rust-clippy/pull/7607)
116+ * [`mutable_key_type`]: Improve accuracy and document remaining false positives
117+ and false negatives
118+ [#7640](https://github.com/rust-lang/rust-clippy/pull/7640)
119+ * [`redundant_closure`]: Rewrite the lint to fix various false positives and
120+ false negatives [#7661](https://github.com/rust-lang/rust-clippy/pull/7661)
121+ * [`large_enum_variant`]: No longer wrongly identifies the second largest
122+ variant [#7677](https://github.com/rust-lang/rust-clippy/pull/7677)
123+ * [`needless_return`]: No longer lints on let-else expressions
124+ [#7685](https://github.com/rust-lang/rust-clippy/pull/7685)
125+ * [`suspicious_else_formatting`]: No longer lints in proc-macros
126+ [#7707](https://github.com/rust-lang/rust-clippy/pull/7707)
127+ * [`excessive_precision`]: No longer lints when in some cases the float was
128+ already written in the shortest form
129+ [#7722](https://github.com/rust-lang/rust-clippy/pull/7722)
130+ * [`doc_markdown`]: No longer lints on intra-doc links
131+ [#7772](https://github.com/rust-lang/rust-clippy/pull/7772)
132+
133+ ### Suggestion Fixes/Improvements
134+
135+ * [`unnecessary_operation`]: Recommend using an `assert!` instead of using a
136+ function call in an indexing operation
137+ [#7453](https://github.com/rust-lang/rust-clippy/pull/7453)
138+ * [`manual_split_once`]: Produce semantically equivalent suggestion when
139+ `rsplitn` is used [#7663](https://github.com/rust-lang/rust-clippy/pull/7663)
140+ * [`while_let_on_iterator`]: Produce correct suggestion when using `&mut`
141+ [#7690](https://github.com/rust-lang/rust-clippy/pull/7690)
142+ * [`if_then_panic`]: No better handles complex conditions
143+ [#7741](https://github.com/rust-lang/rust-clippy/pull/7741)
144+ * Correctly handle signs in exponents in numeric literals lints
145+ [#7747](https://github.com/rust-lang/rust-clippy/pull/7747)
146+ * [`suspicious_map`]: Now also suggests to use `inspect` as an alternative
147+ [#7770](https://github.com/rust-lang/rust-clippy/pull/7770)
148+ * Drop exponent from suggestion if it is 0 in numeric literals lints
149+ [#7774](https://github.com/rust-lang/rust-clippy/pull/7774)
150+
151+ ### ICE Fixes
152+
153+ * [`implicit_hasher`]
154+ [#7761](https://github.com/rust-lang/rust-clippy/pull/7761)
155+
156+ ### Others
157+
158+ * Clippy now uses the 2021
159+ [Edition!](https://www.youtube.com/watch?v=q0aNduqb2Ro)
160+ [#7664](https://github.com/rust-lang/rust-clippy/pull/7664)
10161
11162## Rust 1.56
12163
13- Current beta, release 2021-10-21
164+ Current stable, released 2021-10-21
14165
15166[74d1561...7bfc26e](https://github.com/rust-lang/rust-clippy/compare/74d1561...7bfc26e)
16167
@@ -74,13 +225,9 @@ Current beta, release 2021-10-21
74225* [`unnested_or_patterns`]: Removed `or_patterns` feature gate in the code
75226 example [#7507](https://github.com/rust-lang/rust-clippy/pull/7507)
76227
77- ### New Lints
78-
79- * Renamed Lint: `if_let_some_result` is now called [`match_result_ok`]. Now also handles `while let` case.
80-
81228## Rust 1.55
82229
83- Current stable, released 2021-09-09
230+ Released 2021-09-09
84231
85232[3ae8faf...74d1561](https://github.com/rust-lang/rust-clippy/compare/3ae8faf...74d1561)
86233
0 commit comments