@@ -6,11 +6,143 @@ document.
66
77## Unreleased / In Rust Nightly
88
9- [ 0eff589 ...master] ( https://github.com/rust-lang/rust-clippy/compare/0eff589 ...master )
9+ [ 57b3c4b ...master] ( https://github.com/rust-lang/rust-clippy/compare/57b3c4b ...master )
1010
11- ## Rust 1.59 (beta)
11+ ## Rust 1.60
1212
13- Current beta, release 2022-02-24
13+ Current stable, released 2022-04-07
14+
15+ [ 0eff589...57b3c4b] ( https://github.com/rust-lang/rust-clippy/compare/0eff589...57b3c4b )
16+
17+ ### New Lints
18+
19+ * [ ` single_char_lifetime_names ` ]
20+ [ #8236 ] ( https://github.com/rust-lang/rust-clippy/pull/8236 )
21+ * [ ` iter_overeager_cloned ` ]
22+ [ #8203 ] ( https://github.com/rust-lang/rust-clippy/pull/8203 )
23+ * [ ` transmute_undefined_repr ` ]
24+ [ #8398 ] ( https://github.com/rust-lang/rust-clippy/pull/8398 )
25+ * [ ` default_union_representation ` ]
26+ [ #8289 ] ( https://github.com/rust-lang/rust-clippy/pull/8289 )
27+ * [ ` manual_bits ` ]
28+ [ #8213 ] ( https://github.com/rust-lang/rust-clippy/pull/8213 )
29+ * [ ` borrow_as_ptr ` ]
30+ [ #8210 ] ( https://github.com/rust-lang/rust-clippy/pull/8210 )
31+
32+ ### Moves and Deprecations
33+
34+ * Moved [ ` disallowed_methods ` ] and [ ` disallowed_types ` ] to ` style ` (now warn-by-default)
35+ [ #8261 ] ( https://github.com/rust-lang/rust-clippy/pull/8261 )
36+ * Rename ` ref_in_deref ` to [ ` needless_borrow ` ]
37+ [ #8217 ] ( https://github.com/rust-lang/rust-clippy/pull/8217 )
38+ * Moved [ ` mutex_atomic ` ] to ` nursery ` (now allow-by-default)
39+ [ #8260 ] ( https://github.com/rust-lang/rust-clippy/pull/8260 )
40+
41+ ### Enhancements
42+
43+ * [ ` ptr_arg ` ] : Now takes the argument usage into account and lints for mutable references
44+ [ #8271 ] ( https://github.com/rust-lang/rust-clippy/pull/8271 )
45+ * [ ` unused_io_amount ` ] : Now supports async read and write traits
46+ [ #8179 ] ( https://github.com/rust-lang/rust-clippy/pull/8179 )
47+ * [ ` while_let_on_iterator ` ] : Improved detection to catch more cases
48+ [ #8221 ] ( https://github.com/rust-lang/rust-clippy/pull/8221 )
49+ * [ ` trait_duplication_in_bounds ` ] : Now covers trait functions with ` Self ` bounds
50+ [ #8252 ] ( https://github.com/rust-lang/rust-clippy/pull/8252 )
51+ * [ ` unwrap_used ` ] : Now works for ` .get(i).unwrap() ` and ` .get_mut(i).unwrap() `
52+ [ #8372 ] ( https://github.com/rust-lang/rust-clippy/pull/8372 )
53+ * [ ` map_clone ` ] : The suggestion takes ` msrv ` into account
54+ [ #8280 ] ( https://github.com/rust-lang/rust-clippy/pull/8280 )
55+ * [ ` manual_bits ` ] and [ ` borrow_as_ptr ` ] : Now track the ` clippy::msrv ` attribute
56+ [ #8280 ] ( https://github.com/rust-lang/rust-clippy/pull/8280 )
57+ * [ ` disallowed_methods ` ] : Now works for methods on primitive types
58+ [ #8112 ] ( https://github.com/rust-lang/rust-clippy/pull/8112 )
59+ * [ ` not_unsafe_ptr_arg_deref ` ] : Now works for type aliases
60+ [ #8273 ] ( https://github.com/rust-lang/rust-clippy/pull/8273 )
61+ * [ ` needless_question_mark ` ] : Now works for async functions
62+ [ #8311 ] ( https://github.com/rust-lang/rust-clippy/pull/8311 )
63+ * [ ` iter_not_returning_iterator ` ] : Now handles type projections
64+ [ #8228 ] ( https://github.com/rust-lang/rust-clippy/pull/8228 )
65+ * [ ` wrong_self_convention ` ] : Now detects wrong ` self ` references in more cases
66+ [ #8208 ] ( https://github.com/rust-lang/rust-clippy/pull/8208 )
67+ * [ ` single_match ` ] : Now works for ` match ` statements with tuples
68+ [ #8322 ] ( https://github.com/rust-lang/rust-clippy/pull/8322 )
69+
70+ ### False Positive Fixes
71+
72+ * [ ` erasing_op ` ] : No longer triggers if the output type changes
73+ [ #8204 ] ( https://github.com/rust-lang/rust-clippy/pull/8204 )
74+ * [ ` if_same_then_else ` ] : No longer triggers for ` if let ` statements
75+ [ #8297 ] ( https://github.com/rust-lang/rust-clippy/pull/8297 )
76+ * [ ` manual_memcpy ` ] : No longer lints on ` VecDeque `
77+ [ #8226 ] ( https://github.com/rust-lang/rust-clippy/pull/8226 )
78+ * [ ` trait_duplication_in_bounds ` ] : Now takes path segments into account
79+ [ #8315 ] ( https://github.com/rust-lang/rust-clippy/pull/8315 )
80+ * [ ` deref_addrof ` ] : No longer lints when the dereference or borrow occurs in different a context
81+ [ #8268 ] ( https://github.com/rust-lang/rust-clippy/pull/8268 )
82+ * [ ` type_repetition_in_bounds ` ] : Now checks for full equality to prevent false positives
83+ [ #8224 ] ( https://github.com/rust-lang/rust-clippy/pull/8224 )
84+ * [ ` ptr_arg ` ] : No longer lint for mutable references in traits
85+ [ #8369 ] ( https://github.com/rust-lang/rust-clippy/pull/8369 )
86+ * [ ` implicit_clone ` ] : No longer lints for double references
87+ [ #8231 ] ( https://github.com/rust-lang/rust-clippy/pull/8231 )
88+ * [ ` needless_lifetimes ` ] : No longer lints lifetimes for explicit ` self ` types
89+ [ #8278 ] ( https://github.com/rust-lang/rust-clippy/pull/8278 )
90+ * [ ` op_ref ` ] : No longer lints in ` BinOp ` impl if that can cause recursion
91+ [ #8298 ] ( https://github.com/rust-lang/rust-clippy/pull/8298 )
92+ * [ ` enum_variant_names ` ] : No longer triggers for empty variant names
93+ [ #8329 ] ( https://github.com/rust-lang/rust-clippy/pull/8329 )
94+ * [ ` redundant_closure ` ] : No longer lints for ` Arc<T> ` or ` Rc<T> `
95+ [ #8193 ] ( https://github.com/rust-lang/rust-clippy/pull/8193 )
96+ * [ ` iter_not_returning_iterator ` ] : No longer lints on trait implementations but therefore on trait definitions
97+ [ #8228 ] ( https://github.com/rust-lang/rust-clippy/pull/8228 )
98+ * [ ` single_match ` ] : No longer lints on exhaustive enum patterns without a wildcard
99+ [ #8322 ] ( https://github.com/rust-lang/rust-clippy/pull/8322 )
100+ * [ ` manual_swap ` ] : No longer lints on cases that involve automatic dereferences
101+ [ #8220 ] ( https://github.com/rust-lang/rust-clippy/pull/8220 )
102+ * [ ` useless_format ` ] : Now works for implicit named arguments
103+ [ #8295 ] ( https://github.com/rust-lang/rust-clippy/pull/8295 )
104+
105+ ### Suggestion Fixes/Improvements
106+
107+ * [ ` needless_borrow ` ] : Prevent mutable borrows being moved and suggest removing the borrow on method calls
108+ [ #8217 ] ( https://github.com/rust-lang/rust-clippy/pull/8217 )
109+ * [ ` chars_next_cmp ` ] : Correctly excapes the suggestion
110+ [ #8376 ] ( https://github.com/rust-lang/rust-clippy/pull/8376 )
111+ * [ ` explicit_write ` ] : Add suggestions for ` write! ` s with format arguments
112+ [ #8365 ] ( https://github.com/rust-lang/rust-clippy/pull/8365 )
113+ * [ ` manual_memcpy ` ] : Suggests ` copy_from_slice ` when applicable
114+ [ #8226 ] ( https://github.com/rust-lang/rust-clippy/pull/8226 )
115+ * [ ` or_fun_call ` ] : Improved suggestion display for long arguments
116+ [ #8292 ] ( https://github.com/rust-lang/rust-clippy/pull/8292 )
117+ * [ ` unnecessary_cast ` ] : Now correctly includes the sign
118+ [ #8350 ] ( https://github.com/rust-lang/rust-clippy/pull/8350 )
119+ * [ ` cmp_owned ` ] : No longer flips the comparison order
120+ [ #8299 ] ( https://github.com/rust-lang/rust-clippy/pull/8299 )
121+ * [ ` explicit_counter_loop ` ] : Now correctly suggests ` iter() ` on references
122+ [ #8382 ] ( https://github.com/rust-lang/rust-clippy/pull/8382 )
123+
124+ ### ICE Fixes
125+
126+ * [ ` manual_split_once ` ]
127+ [ #8250 ] ( https://github.com/rust-lang/rust-clippy/pull/8250 )
128+
129+ ### Documentation Improvements
130+
131+ * [ ` map_flatten ` ] : Add documentation for the ` Option ` type
132+ [ #8354 ] ( https://github.com/rust-lang/rust-clippy/pull/8354 )
133+ * Document that Clippy's driver might use a different code generation than rustc
134+ [ #8037 ] ( https://github.com/rust-lang/rust-clippy/pull/8037 )
135+ * Clippy's lint list will now automatically focus the search box
136+ [ #8343 ] ( https://github.com/rust-lang/rust-clippy/pull/8343 )
137+
138+ ### Others
139+
140+ * Clippy now warns if we find multiple Clippy config files exist
141+ [ #8326 ] ( https://github.com/rust-lang/rust-clippy/pull/8326 )
142+
143+ ## Rust 1.59
144+
145+ Released 2022-02-24
14146
15147[ e181011...0eff589] ( https://github.com/rust-lang/rust-clippy/compare/e181011...0eff589 )
16148
@@ -174,7 +306,7 @@ Current beta, release 2022-02-24
174306
175307## Rust 1.58
176308
177- Current stable, released 2022-01-13
309+ Released 2022-01-13
178310
179311[ 00e31fa...e181011] ( https://github.com/rust-lang/rust-clippy/compare/00e31fa...e181011 )
180312
@@ -3069,6 +3201,7 @@ Released 2018-09-13
30693201[ `bytes_nth` ] : https://rust-lang.github.io/rust-clippy/master/index.html#bytes_nth
30703202[ `cargo_common_metadata` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cargo_common_metadata
30713203[ `case_sensitive_file_extension_comparisons` ] : https://rust-lang.github.io/rust-clippy/master/index.html#case_sensitive_file_extension_comparisons
3204+ [ `cast_abs_to_unsigned` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned
30723205[ `cast_enum_constructor` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_enum_constructor
30733206[ `cast_enum_truncation` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_enum_truncation
30743207[ `cast_lossless` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
@@ -3097,6 +3230,7 @@ Released 2018-09-13
30973230[ `comparison_chain` ] : https://rust-lang.github.io/rust-clippy/master/index.html#comparison_chain
30983231[ `comparison_to_empty` ] : https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty
30993232[ `copy_iterator` ] : https://rust-lang.github.io/rust-clippy/master/index.html#copy_iterator
3233+ [ `crate_in_macro_def` ] : https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def
31003234[ `create_dir` ] : https://rust-lang.github.io/rust-clippy/master/index.html#create_dir
31013235[ `crosspointer_transmute` ] : https://rust-lang.github.io/rust-clippy/master/index.html#crosspointer_transmute
31023236[ `dbg_macro` ] : https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro
@@ -3123,19 +3257,22 @@ Released 2018-09-13
31233257[ `double_neg` ] : https://rust-lang.github.io/rust-clippy/master/index.html#double_neg
31243258[ `double_parens` ] : https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
31253259[ `drop_copy` ] : https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy
3260+ [ `drop_non_drop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop
31263261[ `drop_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref
31273262[ `duplicate_underscore_argument` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument
31283263[ `duration_subsec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec
31293264[ `else_if_without_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#else_if_without_else
31303265[ `empty_enum` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_enum
31313266[ `empty_line_after_outer_attr` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr
31323267[ `empty_loop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
3268+ [ `empty_structs_with_brackets` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_structs_with_brackets
31333269[ `enum_clike_unportable_variant` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_clike_unportable_variant
31343270[ `enum_glob_use` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_glob_use
31353271[ `enum_variant_names` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
31363272[ `eq_op` ] : https://rust-lang.github.io/rust-clippy/master/index.html#eq_op
31373273[ `equatable_if_let` ] : https://rust-lang.github.io/rust-clippy/master/index.html#equatable_if_let
31383274[ `erasing_op` ] : https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op
3275+ [ `err_expect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#err_expect
31393276[ `eval_order_dependence` ] : https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence
31403277[ `excessive_precision` ] : https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision
31413278[ `exhaustive_enums` ] : https://rust-lang.github.io/rust-clippy/master/index.html#exhaustive_enums
@@ -3174,6 +3311,7 @@ Released 2018-09-13
31743311[ `for_kv_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map
31753312[ `for_loops_over_fallibles` ] : https://rust-lang.github.io/rust-clippy/master/index.html#for_loops_over_fallibles
31763313[ `forget_copy` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy
3314+ [ `forget_non_drop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_non_drop
31773315[ `forget_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_ref
31783316[ `format_in_format_args` ] : https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args
31793317[ `from_iter_instead_of_collect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect
0 commit comments