@@ -6,11 +6,143 @@ document.
6
6
7
7
## Unreleased / In Rust Nightly
8
8
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 )
10
10
11
- ## Rust 1.59 (beta)
11
+ ## Rust 1.60
12
12
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
14
146
15
147
[ e181011...0eff589] ( https://github.com/rust-lang/rust-clippy/compare/e181011...0eff589 )
16
148
@@ -174,7 +306,7 @@ Current beta, release 2022-02-24
174
306
175
307
## Rust 1.58
176
308
177
- Current stable, released 2022-01-13
309
+ Released 2022-01-13
178
310
179
311
[ 00e31fa...e181011] ( https://github.com/rust-lang/rust-clippy/compare/00e31fa...e181011 )
180
312
@@ -3069,6 +3201,7 @@ Released 2018-09-13
3069
3201
[ `bytes_nth` ] : https://rust-lang.github.io/rust-clippy/master/index.html#bytes_nth
3070
3202
[ `cargo_common_metadata` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cargo_common_metadata
3071
3203
[ `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
3072
3205
[ `cast_enum_constructor` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_enum_constructor
3073
3206
[ `cast_enum_truncation` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_enum_truncation
3074
3207
[ `cast_lossless` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
@@ -3097,6 +3230,7 @@ Released 2018-09-13
3097
3230
[ `comparison_chain` ] : https://rust-lang.github.io/rust-clippy/master/index.html#comparison_chain
3098
3231
[ `comparison_to_empty` ] : https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty
3099
3232
[ `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
3100
3234
[ `create_dir` ] : https://rust-lang.github.io/rust-clippy/master/index.html#create_dir
3101
3235
[ `crosspointer_transmute` ] : https://rust-lang.github.io/rust-clippy/master/index.html#crosspointer_transmute
3102
3236
[ `dbg_macro` ] : https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro
@@ -3123,19 +3257,22 @@ Released 2018-09-13
3123
3257
[ `double_neg` ] : https://rust-lang.github.io/rust-clippy/master/index.html#double_neg
3124
3258
[ `double_parens` ] : https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
3125
3259
[ `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
3126
3261
[ `drop_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref
3127
3262
[ `duplicate_underscore_argument` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument
3128
3263
[ `duration_subsec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec
3129
3264
[ `else_if_without_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#else_if_without_else
3130
3265
[ `empty_enum` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_enum
3131
3266
[ `empty_line_after_outer_attr` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr
3132
3267
[ `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
3133
3269
[ `enum_clike_unportable_variant` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_clike_unportable_variant
3134
3270
[ `enum_glob_use` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_glob_use
3135
3271
[ `enum_variant_names` ] : https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
3136
3272
[ `eq_op` ] : https://rust-lang.github.io/rust-clippy/master/index.html#eq_op
3137
3273
[ `equatable_if_let` ] : https://rust-lang.github.io/rust-clippy/master/index.html#equatable_if_let
3138
3274
[ `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
3139
3276
[ `eval_order_dependence` ] : https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence
3140
3277
[ `excessive_precision` ] : https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision
3141
3278
[ `exhaustive_enums` ] : https://rust-lang.github.io/rust-clippy/master/index.html#exhaustive_enums
@@ -3174,6 +3311,7 @@ Released 2018-09-13
3174
3311
[ `for_kv_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map
3175
3312
[ `for_loops_over_fallibles` ] : https://rust-lang.github.io/rust-clippy/master/index.html#for_loops_over_fallibles
3176
3313
[ `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
3177
3315
[ `forget_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_ref
3178
3316
[ `format_in_format_args` ] : https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args
3179
3317
[ `from_iter_instead_of_collect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect
0 commit comments