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