@@ -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+ * [ ` manual_assert ` ] [ #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+ * [ ` manual_assert ` ] : 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
@@ -2748,7 +2895,6 @@ Released 2018-09-13
27482895[ `if_let_redundant_pattern_matching` ] : https://rust-lang.github.io/rust-clippy/master/index.html#if_let_redundant_pattern_matching
27492896[ `if_not_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
27502897[ `if_same_then_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else
2751- [ `if_then_panic` ] : https://rust-lang.github.io/rust-clippy/master/index.html#if_then_panic
27522898[ `if_then_some_else_none` ] : https://rust-lang.github.io/rust-clippy/master/index.html#if_then_some_else_none
27532899[ `ifs_same_cond` ] : https://rust-lang.github.io/rust-clippy/master/index.html#ifs_same_cond
27542900[ `implicit_clone` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_clone
@@ -2806,6 +2952,7 @@ Released 2018-09-13
28062952[ `lossy_float_literal` ] : https://rust-lang.github.io/rust-clippy/master/index.html#lossy_float_literal
28072953[ `macro_use_imports` ] : https://rust-lang.github.io/rust-clippy/master/index.html#macro_use_imports
28082954[ `main_recursion` ] : https://rust-lang.github.io/rust-clippy/master/index.html#main_recursion
2955+ [ `manual_assert` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert
28092956[ `manual_async_fn` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn
28102957[ `manual_filter_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map
28112958[ `manual_find_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_find_map
@@ -2976,6 +3123,7 @@ Released 2018-09-13
29763123[ `self_named_constructors` ] : https://rust-lang.github.io/rust-clippy/master/index.html#self_named_constructors
29773124[ `self_named_module_files` ] : https://rust-lang.github.io/rust-clippy/master/index.html#self_named_module_files
29783125[ `semicolon_if_nothing_returned` ] : https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
3126+ [ `separated_literal_suffix` ] : https://rust-lang.github.io/rust-clippy/master/index.html#separated_literal_suffix
29793127[ `serde_api_misuse` ] : https://rust-lang.github.io/rust-clippy/master/index.html#serde_api_misuse
29803128[ `shadow_reuse` ] : https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse
29813129[ `shadow_same` ] : https://rust-lang.github.io/rust-clippy/master/index.html#shadow_same
@@ -3000,6 +3148,7 @@ Released 2018-09-13
30003148[ `string_extend_chars` ] : https://rust-lang.github.io/rust-clippy/master/index.html#string_extend_chars
30013149[ `string_from_utf8_as_bytes` ] : https://rust-lang.github.io/rust-clippy/master/index.html#string_from_utf8_as_bytes
30023150[ `string_lit_as_bytes` ] : https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes
3151+ [ `string_slice` ] : https://rust-lang.github.io/rust-clippy/master/index.html#string_slice
30033152[ `string_to_string` ] : https://rust-lang.github.io/rust-clippy/master/index.html#string_to_string
30043153[ `strlen_on_c_strings` ] : https://rust-lang.github.io/rust-clippy/master/index.html#strlen_on_c_strings
30053154[ `struct_excessive_bools` ] : https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools
@@ -3046,6 +3195,7 @@ Released 2018-09-13
30463195[ `uninit_vec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#uninit_vec
30473196[ `unit_arg` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg
30483197[ `unit_cmp` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp
3198+ [ `unit_hash` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_hash
30493199[ `unit_return_expecting_ord` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_return_expecting_ord
30503200[ `unnecessary_cast` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
30513201[ `unnecessary_filter_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map
0 commit comments