@@ -6,11 +6,204 @@ document.
6
6
7
7
## Unreleased / Beta / In Rust Nightly
8
8
9
- [ 4f142aa1...master] ( https://github.com/rust-lang/rust-clippy/compare/4f142aa1...master )
9
+ [ d822110d...master] ( https://github.com/rust-lang/rust-clippy/compare/d822110d...master )
10
+
11
+ ## Rust 1.67
12
+
13
+ Current stable, released 2023-01-26
14
+
15
+ [ 4f142aa1...d822110d] ( https://github.com/rust-lang/rust-clippy/compare/4f142aa1...d822110d )
16
+
17
+ ### New Lints
18
+
19
+ * [ ` seek_from_current ` ]
20
+ [ #9681 ] ( https://github.com/rust-lang/rust-clippy/pull/9681 )
21
+ * [ ` from_raw_with_void_ptr ` ]
22
+ [ #9690 ] ( https://github.com/rust-lang/rust-clippy/pull/9690 )
23
+ * [ ` misnamed_getters ` ]
24
+ [ #9770 ] ( https://github.com/rust-lang/rust-clippy/pull/9770 )
25
+ * [ ` seek_to_start_instead_of_rewind ` ]
26
+ [ #9667 ] ( https://github.com/rust-lang/rust-clippy/pull/9667 )
27
+ * [ ` suspicious_xor_used_as_pow ` ]
28
+ [ #9506 ] ( https://github.com/rust-lang/rust-clippy/pull/9506 )
29
+ * [ ` unnecessary_safety_doc ` ]
30
+ [ #9822 ] ( https://github.com/rust-lang/rust-clippy/pull/9822 )
31
+ * [ ` unchecked_duration_subtraction ` ]
32
+ [ #9570 ] ( https://github.com/rust-lang/rust-clippy/pull/9570 )
33
+ * [ ` manual_is_ascii_check ` ]
34
+ [ #9765 ] ( https://github.com/rust-lang/rust-clippy/pull/9765 )
35
+ * [ ` unnecessary_safety_comment ` ]
36
+ [ #9851 ] ( https://github.com/rust-lang/rust-clippy/pull/9851 )
37
+ * [ ` let_underscore_future ` ]
38
+ [ #9760 ] ( https://github.com/rust-lang/rust-clippy/pull/9760 )
39
+ * [ ` manual_let_else ` ]
40
+ [ #8437 ] ( https://github.com/rust-lang/rust-clippy/pull/8437 )
41
+
42
+ ### Moves and Deprecations
43
+
44
+ * Moved [ ` uninlined_format_args ` ] to ` style ` (Now warn-by-default)
45
+ [ #9865 ] ( https://github.com/rust-lang/rust-clippy/pull/9865 )
46
+ * Moved [ ` needless_collect ` ] to ` nursery ` (Now allow-by-default)
47
+ [ #9705 ] ( https://github.com/rust-lang/rust-clippy/pull/9705 )
48
+ * Moved [ ` or_fun_call ` ] to ` nursery ` (Now allow-by-default)
49
+ [ #9829 ] ( https://github.com/rust-lang/rust-clippy/pull/9829 )
50
+ * Uplifted [ ` let_underscore_lock ` ] into rustc
51
+ [ #9697 ] ( https://github.com/rust-lang/rust-clippy/pull/9697 )
52
+ * Uplifted [ ` let_underscore_drop ` ] into rustc
53
+ [ #9697 ] ( https://github.com/rust-lang/rust-clippy/pull/9697 )
54
+ * Moved [ ` bool_to_int_with_if ` ] to ` pedantic ` (Now allow-by-default)
55
+ [ #9830 ] ( https://github.com/rust-lang/rust-clippy/pull/9830 )
56
+ * [ ` manual_swap ` ] : No longer lints in const context
57
+ [ #9871 ] ( https://github.com/rust-lang/rust-clippy/pull/9871 )
58
+ * Move ` index_refutable_slice ` to ` pedantic ` (Now warn-by-default)
59
+ [ #9975 ] ( https://github.com/rust-lang/rust-clippy/pull/9975 )
60
+ * Moved [ ` manual_clamp ` ] to ` nursery ` (Now allow-by-default)
61
+ [ #10101 ] ( https://github.com/rust-lang/rust-clippy/pull/10101 )
62
+
63
+ ### Enhancements
64
+
65
+ * The scope of ` #![clippy::msrv] ` is now tracked correctly
66
+ [ #9924 ] ( https://github.com/rust-lang/rust-clippy/pull/9924 )
67
+ * ` #[clippy::msrv] ` can now be used as an outer attribute
68
+ [ #9860 ] ( https://github.com/rust-lang/rust-clippy/pull/9860 )
69
+ * Clippy will now avoid Cargo's cache, if ` Cargo.toml ` or ` clippy.toml ` have changed
70
+ [ #9707 ] ( https://github.com/rust-lang/rust-clippy/pull/9707 )
71
+ * [ ` uninlined_format_args ` ] : Added a new config ` allow-mixed-uninlined-format-args ` to allow the
72
+ lint, if only some arguments can be inlined
73
+ [ #9865 ] ( https://github.com/rust-lang/rust-clippy/pull/9865 )
74
+ * [ ` needless_lifetimes ` ] : Now provides suggests for individual lifetimes
75
+ [ #9743 ] ( https://github.com/rust-lang/rust-clippy/pull/9743 )
76
+ * [ ` needless_collect ` ] : Now detects needless ` is_empty ` and ` contains ` calls
77
+ [ #8744 ] ( https://github.com/rust-lang/rust-clippy/pull/8744 )
78
+ * [ ` blanket_clippy_restriction_lints ` ] : Now lints, if ` clippy::restriction ` is enabled via the
79
+ command line arguments
80
+ [ #9755 ] ( https://github.com/rust-lang/rust-clippy/pull/9755 )
81
+ * [ ` mutable_key_type ` ] : Now has the ` ignore-interior-mutability ` configuration, to add types which
82
+ should be ignored by the lint
83
+ [ #9692 ] ( https://github.com/rust-lang/rust-clippy/pull/9692 )
84
+ * [ ` uninlined_format_args ` ] : Now works for multiline ` format! ` expressions
85
+ [ #9945 ] ( https://github.com/rust-lang/rust-clippy/pull/9945 )
86
+ * [ ` cognitive_complexity ` ] : Now works for async functions
87
+ [ #9828 ] ( https://github.com/rust-lang/rust-clippy/pull/9828 )
88
+ [ #9836 ] ( https://github.com/rust-lang/rust-clippy/pull/9836 )
89
+ * [ ` vec_box ` ] : Now avoids an off-by-one error when using the ` vec-box-size-threshold ` configuration
90
+ [ #9848 ] ( https://github.com/rust-lang/rust-clippy/pull/9848 )
91
+ * [ ` never_loop ` ] : Now correctly handles breaks in nested labeled blocks
92
+ [ #9858 ] ( https://github.com/rust-lang/rust-clippy/pull/9858 )
93
+ [ #9837 ] ( https://github.com/rust-lang/rust-clippy/pull/9837 )
94
+ * [ ` disallowed_methods ` ] , [ ` disallowed_types ` ] , [ ` disallowed_macros ` ] : Now correctly resolve
95
+ paths, if a crate is used multiple times with different versions
96
+ [ #9800 ] ( https://github.com/rust-lang/rust-clippy/pull/9800 )
97
+ * [ ` disallowed_methods ` ] : Can now be used for local methods
98
+ [ #9800 ] ( https://github.com/rust-lang/rust-clippy/pull/9800 )
99
+ * [ ` print_stdout ` ] , [ ` print_stderr ` ] : Can now be enabled in test with the ` allow-print-in-tests `
100
+ config value
101
+ [ #9797 ] ( https://github.com/rust-lang/rust-clippy/pull/9797 )
102
+ * [ ` from_raw_with_void_ptr ` ] : Now works for ` Rc ` , ` Arc ` , ` alloc::rc::Weak ` and
103
+ ` alloc::sync::Weak ` types.
104
+ [ #9700 ] ( https://github.com/rust-lang/rust-clippy/pull/9700 )
105
+ * [ ` needless_borrowed_reference ` ] : Now works for struct and tuple patterns with wildcards
106
+ [ #9855 ] ( https://github.com/rust-lang/rust-clippy/pull/9855 )
107
+ * [ ` or_fun_call ` ] : Now supports ` map_or ` methods
108
+ [ #9689 ] ( https://github.com/rust-lang/rust-clippy/pull/9689 )
109
+ * [ ` unwrap_used ` ] , [ ` expect_used ` ] : No longer lints in test code
110
+ [ #9686 ] ( https://github.com/rust-lang/rust-clippy/pull/9686 )
111
+ * [ ` fn_params_excessive_bools ` ] : Is now emitted with the lint level at the linted function
112
+ [ #9698 ] ( https://github.com/rust-lang/rust-clippy/pull/9698 )
113
+
114
+ ### False Positive Fixes
115
+
116
+ * [ ` new_ret_no_self ` ] : No longer lints when ` impl Trait<Self> ` is returned
117
+ [ #9733 ] ( https://github.com/rust-lang/rust-clippy/pull/9733 )
118
+ * [ ` unnecessary_lazy_evaluations ` ] : No longer lints, if the type has a significant drop
119
+ [ #9750 ] ( https://github.com/rust-lang/rust-clippy/pull/9750 )
120
+ * [ ` option_if_let_else ` ] : No longer lints, if any arm has guard
121
+ [ #9747 ] ( https://github.com/rust-lang/rust-clippy/pull/9747 )
122
+ * [ ` explicit_auto_deref ` ] : No longer lints, if the target type is a projection with generic
123
+ arguments
124
+ [ #9813 ] ( https://github.com/rust-lang/rust-clippy/pull/9813 )
125
+ * [ ` unnecessary_to_owned ` ] : No longer lints, if the suggestion effects types
126
+ [ #9796 ] ( https://github.com/rust-lang/rust-clippy/pull/9796 )
127
+ * [ ` needless_borrow ` ] : No longer lints, if the suggestion is affected by ` Deref `
128
+ [ #9674 ] ( https://github.com/rust-lang/rust-clippy/pull/9674 )
129
+ * [ ` unused_unit ` ] : No longer lints, if lifetimes are bound to the return type
130
+ [ #9849 ] ( https://github.com/rust-lang/rust-clippy/pull/9849 )
131
+ * [ ` mut_mut ` ] : No longer lints cases with unsized mutable references
132
+ [ #9835 ] ( https://github.com/rust-lang/rust-clippy/pull/9835 )
133
+ * [ ` bool_to_int_with_if ` ] : No longer lints in const context
134
+ [ #9738 ] ( https://github.com/rust-lang/rust-clippy/pull/9738 )
135
+ * [ ` use_self ` ] : No longer lints in macros
136
+ [ #9704 ] ( https://github.com/rust-lang/rust-clippy/pull/9704 )
137
+ * [ ` unnecessary_operation ` ] : No longer lints, if multiple macros are involved
138
+ [ #9981 ] ( https://github.com/rust-lang/rust-clippy/pull/9981 )
139
+ * [ ` allow_attributes_without_reason ` ] : No longer lints inside external macros
140
+ [ #9630 ] ( https://github.com/rust-lang/rust-clippy/pull/9630 )
141
+ * [ ` question_mark ` ] : No longer lints for ` if let Err() ` with an ` else ` branch
142
+ [ #9722 ] ( https://github.com/rust-lang/rust-clippy/pull/9722 )
143
+ * [ ` unnecessary_cast ` ] : No longer lints if the identifier and cast originate from different macros
144
+ [ #9980 ] ( https://github.com/rust-lang/rust-clippy/pull/9980 )
145
+ * [ ` arithmetic_side_effects ` ] : Now detects operations with associated constants
146
+ [ #9592 ] ( https://github.com/rust-lang/rust-clippy/pull/9592 )
147
+ * [ ` explicit_auto_deref ` ] : No longer lints, if the initial value is not a reference or reference
148
+ receiver
149
+ [ #9997 ] ( https://github.com/rust-lang/rust-clippy/pull/9997 )
150
+ * [ ` module_name_repetitions ` ] , [ ` single_component_path_imports ` ] : Now handle ` #[allow] `
151
+ attributes correctly
152
+ [ #9879 ] ( https://github.com/rust-lang/rust-clippy/pull/9879 )
153
+ * [ ` bool_to_int_with_if ` ] : No longer lints ` if let ` statements
154
+ [ #9714 ] ( https://github.com/rust-lang/rust-clippy/pull/9714 )
155
+ * [ ` needless_borrow ` ] : No longer lints, ` if ` -` else ` -statements that require the borrow
156
+ [ #9791 ] ( https://github.com/rust-lang/rust-clippy/pull/9791 )
157
+ * [ ` needless_borrow ` ] : No longer lints borrows, if moves were illegal
158
+ [ #9711 ] ( https://github.com/rust-lang/rust-clippy/pull/9711 )
159
+
160
+ ### Suggestion Fixes/Improvements
161
+
162
+ * [ ` missing_safety_doc ` ] , [ ` missing_errors_doc ` ] , [ ` missing_panics_doc ` ] : No longer show the
163
+ entire item in the lint emission.
164
+ [ #9772 ] ( https://github.com/rust-lang/rust-clippy/pull/9772 )
165
+ * [ ` needless_lifetimes ` ] : Only suggests ` '_ ` when it's applicable
166
+ [ #9743 ] ( https://github.com/rust-lang/rust-clippy/pull/9743 )
167
+ * [ ` use_self ` ] : Now suggests full paths correctly
168
+ [ #9726 ] ( https://github.com/rust-lang/rust-clippy/pull/9726 )
169
+ * [ ` redundant_closure_call ` ] : Now correctly deals with macros during suggestion creation
170
+ [ #9987 ] ( https://github.com/rust-lang/rust-clippy/pull/9987 )
171
+ * [ ` unnecessary_cast ` ] : Suggestions now correctly deal with references
172
+ [ #9996 ] ( https://github.com/rust-lang/rust-clippy/pull/9996 )
173
+ * [ ` unnecessary_join ` ] : Suggestions now correctly use [ turbofish] operators
174
+ [ #9779 ] ( https://github.com/rust-lang/rust-clippy/pull/9779 )
175
+ * [ ` equatable_if_let ` ] : Can now suggest ` matches! ` replacements
176
+ [ #9368 ] ( https://github.com/rust-lang/rust-clippy/pull/9368 )
177
+ * [ ` string_extend_chars ` ] : Suggestions now correctly work for ` str ` slices
178
+ [ #9741 ] ( https://github.com/rust-lang/rust-clippy/pull/9741 )
179
+ * [ ` redundant_closure_for_method_calls ` ] : Suggestions now include angle brackets and generic
180
+ arguments if needed
181
+ [ #9745 ] ( https://github.com/rust-lang/rust-clippy/pull/9745 )
182
+ * [ ` manual_let_else ` ] : Suggestions no longer expand macro calls
183
+ [ #9943 ] ( https://github.com/rust-lang/rust-clippy/pull/9943 )
184
+ * [ ` infallible_destructuring_match ` ] : Suggestions now preserve references
185
+ [ #9850 ] ( https://github.com/rust-lang/rust-clippy/pull/9850 )
186
+ * [ ` result_large_err ` ] : The error now shows the largest enum variant
187
+ [ #9662 ] ( https://github.com/rust-lang/rust-clippy/pull/9662 )
188
+ * [ ` needless_return ` ] : Suggestions are now formatted better
189
+ [ #9967 ] ( https://github.com/rust-lang/rust-clippy/pull/9967 )
190
+ * [ ` unused_rounding ` ] : The suggestion now preserves the original float literal notation
191
+ [ #9870 ] ( https://github.com/rust-lang/rust-clippy/pull/9870 )
192
+
193
+ [ turbofish ] : https://turbo.fish/::%3CClippy%3E
194
+
195
+ ### ICE Fixes
196
+
197
+ * [ ` result_large_err ` ] : Fixed ICE for empty enums
198
+ [ #10007 ] ( https://github.com/rust-lang/rust-clippy/pull/10007 )
199
+ * [ ` redundant_allocation ` ] : Fixed ICE for types with bounded variables
200
+ [ #9773 ] ( https://github.com/rust-lang/rust-clippy/pull/9773 )
201
+ * [ ` unused_rounding ` ] : Fixed ICE, if ` _ ` was used as a separator
202
+ [ #10001 ] ( https://github.com/rust-lang/rust-clippy/pull/10001 )
10
203
11
204
## Rust 1.66
12
205
13
- Current stable, released 2022-12-15
206
+ Released 2022-12-15
14
207
15
208
[ b52fb523...4f142aa1] ( https://github.com/rust-lang/rust-clippy/compare/b52fb523...4f142aa1 )
16
209
@@ -166,6 +359,7 @@ Current stable, released 2022-12-15
166
359
167
360
* [ ` unnecessary_to_owned ` ] : Avoid ICEs in favor of false negatives if information is missing
168
361
[ #9505 ] ( https://github.com/rust-lang/rust-clippy/pull/9505 )
362
+ [ #10027 ] ( https://github.com/rust-lang/rust-clippy/pull/10027 )
169
363
* [ ` manual_range_contains ` ] : No longer ICEs on values behind references
170
364
[ #9627 ] ( https://github.com/rust-lang/rust-clippy/pull/9627 )
171
365
* [ ` needless_pass_by_value ` ] : No longer ICEs on unsized ` dyn Fn ` arguments
0 commit comments