@@ -4,13 +4,157 @@ All notable changes to this project will be documented in this file.
44See [ Changelog Update] ( book/src/development/infrastructure/changelog_update.md ) if you want to update this
55document.
66
7- ## Unreleased / In Rust Nightly
7+ ## Unreleased / Beta / In Rust Nightly
88
9- [ 3c7e7dbc...master] ( https://github.com/rust-lang/rust-clippy/compare/3c7e7dbc...master )
9+ [ b52fb523...master] ( https://github.com/rust-lang/rust-clippy/compare/b52fb523...master )
10+
11+ ## Rust 1.65
12+
13+ Current stable, released 2022-11-03
14+
15+ [ 3c7e7dbc...b52fb523] ( https://github.com/rust-lang/rust-clippy/compare/3c7e7dbc...b52fb523 )
16+
17+ ### Important Changes
18+
19+ * Clippy now has an ` --explain <LINT> ` command to show the lint description in the console
20+ [ #8952 ] ( https://github.com/rust-lang/rust-clippy/pull/8952 )
21+
22+ ### New Lints
23+
24+ * [ ` unused_peekable ` ]
25+ [ #9258 ] ( https://github.com/rust-lang/rust-clippy/pull/9258 )
26+ * [ ` collapsible_str_replace ` ]
27+ [ #9269 ] ( https://github.com/rust-lang/rust-clippy/pull/9269 )
28+ * [ ` manual_string_new ` ]
29+ [ #9295 ] ( https://github.com/rust-lang/rust-clippy/pull/9295 )
30+ * [ ` iter_on_empty_collections ` ]
31+ [ #9187 ] ( https://github.com/rust-lang/rust-clippy/pull/9187 )
32+ * [ ` iter_on_single_items ` ]
33+ [ #9187 ] ( https://github.com/rust-lang/rust-clippy/pull/9187 )
34+ * [ ` bool_to_int_with_if ` ]
35+ [ #9412 ] ( https://github.com/rust-lang/rust-clippy/pull/9412 )
36+ * [ ` multi_assignments ` ]
37+ [ #9379 ] ( https://github.com/rust-lang/rust-clippy/pull/9379 )
38+ * [ ` result_large_err ` ]
39+ [ #9373 ] ( https://github.com/rust-lang/rust-clippy/pull/9373 )
40+ * [ ` partialeq_to_none ` ]
41+ [ #9288 ] ( https://github.com/rust-lang/rust-clippy/pull/9288 )
42+ * [ ` suspicious_to_owned ` ]
43+ [ #8984 ] ( https://github.com/rust-lang/rust-clippy/pull/8984 )
44+ * [ ` cast_slice_from_raw_parts ` ]
45+ [ #9247 ] ( https://github.com/rust-lang/rust-clippy/pull/9247 )
46+ * [ ` manual_instant_elapsed ` ]
47+ [ #9264 ] ( https://github.com/rust-lang/rust-clippy/pull/9264 )
48+
49+ ### Moves and Deprecations
50+
51+ * Moved [ ` significant_drop_in_scrutinee ` ] to ` nursery ` (now allow-by-default)
52+ [ #9302 ] ( https://github.com/rust-lang/rust-clippy/pull/9302 )
53+ * Rename ` logic_bug ` to [ ` overly_complex_bool_expr ` ]
54+ [ #9306 ] ( https://github.com/rust-lang/rust-clippy/pull/9306 )
55+ * Rename ` arithmetic ` to [ ` arithmetic_side_effects ` ]
56+ [ #9443 ] ( https://github.com/rust-lang/rust-clippy/pull/9443 )
57+ * Moved [ ` only_used_in_recursion ` ] to complexity (now warn-by-default)
58+ [ #8804 ] ( https://github.com/rust-lang/rust-clippy/pull/8804 )
59+ * Moved [ ` assertions_on_result_states ` ] to restriction (now allow-by-default)
60+ [ #9273 ] ( https://github.com/rust-lang/rust-clippy/pull/9273 )
61+ * Renamed ` blacklisted_name ` to [ ` disallowed_names ` ]
62+ [ #8974 ] ( https://github.com/rust-lang/rust-clippy/pull/8974 )
63+
64+ ### Enhancements
65+
66+ * [ ` option_if_let_else ` ] : Now also checks for match expressions
67+ [ #8696 ] ( https://github.com/rust-lang/rust-clippy/pull/8696 )
68+ * [ ` explicit_auto_deref ` ] : Now lints on implicit returns in closures
69+ [ #9126 ] ( https://github.com/rust-lang/rust-clippy/pull/9126 )
70+ * [ ` needless_borrow ` ] : Now considers trait implementations
71+ [ #9136 ] ( https://github.com/rust-lang/rust-clippy/pull/9136 )
72+ * [ ` suboptimal_flops ` ] , [ ` imprecise_flops ` ] : Now lint on constant expressions
73+ [ #9404 ] ( https://github.com/rust-lang/rust-clippy/pull/9404 )
74+ * [ ` if_let_mutex ` ] : Now detects mutex behind references and warns about deadlocks
75+ [ #9318 ] ( https://github.com/rust-lang/rust-clippy/pull/9318 )
76+
77+ ### False Positive Fixes
78+
79+ * [ ` unit_arg ` ] [ ` default_trait_access ` ] [ ` missing_docs_in_private_items ` ] : No longer
80+ trigger in code generated from proc-macros
81+ [ #8694 ] ( https://github.com/rust-lang/rust-clippy/pull/8694 )
82+ * [ ` unwrap_used ` ] : Now lints uses of ` unwrap_err `
83+ [ #9338 ] ( https://github.com/rust-lang/rust-clippy/pull/9338 )
84+ * [ ` expect_used ` ] : Now lints uses of ` expect_err `
85+ [ #9338 ] ( https://github.com/rust-lang/rust-clippy/pull/9338 )
86+ * [ ` transmute_undefined_repr ` ] : Now longer lints if the first field is compatible
87+ with the other type
88+ [ #9287 ] ( https://github.com/rust-lang/rust-clippy/pull/9287 )
89+ * [ ` unnecessary_to_owned ` ] : No longer lints, if type change cased errors in
90+ the caller function
91+ [ #9424 ] ( https://github.com/rust-lang/rust-clippy/pull/9424 )
92+ * [ ` match_like_matches_macro ` ] : No longer lints, if there are comments inside the
93+ match expression
94+ [ #9276 ] ( https://github.com/rust-lang/rust-clippy/pull/9276 )
95+ * [ ` partialeq_to_none ` ] : No longer trigger in code generated from macros
96+ [ #9389 ] ( https://github.com/rust-lang/rust-clippy/pull/9389 )
97+ * [ ` arithmetic_side_effects ` ] : No longer lints expressions that only use literals
98+ [ #9365 ] ( https://github.com/rust-lang/rust-clippy/pull/9365 )
99+ * [ ` explicit_auto_deref ` ] : Now ignores references on block expressions when the type
100+ is ` Sized ` , on ` dyn Trait ` returns and when the suggestion is non-trivial
101+ [ #9126 ] ( https://github.com/rust-lang/rust-clippy/pull/9126 )
102+ * [ ` trait_duplication_in_bounds ` ] : Now better tracks bounds to avoid false positives
103+ [ #9167 ] ( https://github.com/rust-lang/rust-clippy/pull/9167 )
104+ * [ ` format_in_format_args ` ] : Now suggests cases where the result is formatted again
105+ [ #9349 ] ( https://github.com/rust-lang/rust-clippy/pull/9349 )
106+ * [ ` only_used_in_recursion ` ] : No longer lints on function without recursions and
107+ takes external functions into account
108+ [ #8804 ] ( https://github.com/rust-lang/rust-clippy/pull/8804 )
109+ * [ ` missing_const_for_fn ` ] : No longer lints in proc-macros
110+ [ #9308 ] ( https://github.com/rust-lang/rust-clippy/pull/9308 )
111+ * [ ` non_ascii_literal ` ] : Allow non-ascii comments in tests and make sure ` #[allow] `
112+ attributes work in tests
113+ [ #9327 ] ( https://github.com/rust-lang/rust-clippy/pull/9327 )
114+ * [ ` question_mark ` ] : No longer lint ` if let ` s with subpatterns
115+ [ #9348 ] ( https://github.com/rust-lang/rust-clippy/pull/9348 )
116+ * [ ` needless_collect ` ] : No longer lints in loops
117+ [ #8992 ] ( https://github.com/rust-lang/rust-clippy/pull/8992 )
118+ * [ ` mut_mutex_lock ` ] : No longer lints if the mutex is behind an immutable reference
119+ [ #9418 ] ( https://github.com/rust-lang/rust-clippy/pull/9418 )
120+ * [ ` needless_return ` ] : Now ignores returns with arguments
121+ [ #9381 ] ( https://github.com/rust-lang/rust-clippy/pull/9381 )
122+ * [ ` range_plus_one ` ] , [ ` range_minus_one ` ] : Now ignores code with macros
123+ [ #9446 ] ( https://github.com/rust-lang/rust-clippy/pull/9446 )
124+ * [ ` assertions_on_result_states ` ] : No longer lints on the unit type
125+ [ #9273 ] ( https://github.com/rust-lang/rust-clippy/pull/9273 )
126+
127+ ### Suggestion Fixes/Improvements
128+
129+ * [ ` unwrap_or_else_default ` ] : Now suggests ` unwrap_or_default() ` for empty strings
130+ [ #9421 ] ( https://github.com/rust-lang/rust-clippy/pull/9421 )
131+ * [ ` if_then_some_else_none ` ] : Now also suggests ` bool::then_some `
132+ [ #9289 ] ( https://github.com/rust-lang/rust-clippy/pull/9289 )
133+ * [ ` redundant_closure_call ` ] : The suggestion now works for async closures
134+ [ #9053 ] ( https://github.com/rust-lang/rust-clippy/pull/9053 )
135+ * [ ` suboptimal_flops ` ] : Now suggests parenthesis when they are required
136+ [ #9394 ] ( https://github.com/rust-lang/rust-clippy/pull/9394 )
137+ * [ ` case_sensitive_file_extension_comparisons ` ] : Now suggests ` map_or(..) ` instead of ` map(..).unwrap_or `
138+ [ #9341 ] ( https://github.com/rust-lang/rust-clippy/pull/9341 )
139+ * Deprecated configuration values can now be updated automatically
140+ [ #9252 ] ( https://github.com/rust-lang/rust-clippy/pull/9252 )
141+ * [ ` or_fun_call ` ] : Now suggest ` Entry::or_default ` for ` Entry::or_insert(Default::default()) `
142+ [ #9342 ] ( https://github.com/rust-lang/rust-clippy/pull/9342 )
143+ * [ ` unwrap_used ` ] : Only suggests ` expect ` if [ ` expect_used ` ] is allowed
144+ [ #9223 ] ( https://github.com/rust-lang/rust-clippy/pull/9223 )
145+
146+ ### ICE Fixes
147+
148+ * Fix ICE in [ ` useless_format ` ] for literals
149+ [ #9406 ] ( https://github.com/rust-lang/rust-clippy/pull/9406 )
150+ * Fix infinite loop in [ ` vec_init_then_push ` ]
151+ [ #9441 ] ( https://github.com/rust-lang/rust-clippy/pull/9441 )
152+ * Fix ICE when reading literals with weird proc-macro spans
153+ [ #9303 ] ( https://github.com/rust-lang/rust-clippy/pull/9303 )
10154
11155## Rust 1.64
12156
13- Current stable, released 2022-09-22
157+ Released 2022-09-22
14158
15159[ d7b5cbf0...3c7e7dbc] ( https://github.com/rust-lang/rust-clippy/compare/d7b5cbf0...3c7e7dbc )
16160
@@ -3903,6 +4047,7 @@ Released 2018-09-13
39034047[ `format_push_string` ] : https://rust-lang.github.io/rust-clippy/master/index.html#format_push_string
39044048[ `from_iter_instead_of_collect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect
39054049[ `from_over_into` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into
4050+ [ `from_raw_with_void_ptr` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_raw_with_void_ptr
39064051[ `from_str_radix_10` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10
39074052[ `future_not_send` ] : https://rust-lang.github.io/rust-clippy/master/index.html#future_not_send
39084053[ `get_first` ] : https://rust-lang.github.io/rust-clippy/master/index.html#get_first
@@ -3978,6 +4123,7 @@ Released 2018-09-13
39784123[ `len_zero` ] : https://rust-lang.github.io/rust-clippy/master/index.html#len_zero
39794124[ `let_and_return` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
39804125[ `let_underscore_drop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_drop
4126+ [ `let_underscore_future` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future
39814127[ `let_underscore_lock` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_lock
39824128[ `let_underscore_must_use` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_must_use
39834129[ `let_unit_value` ] : https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value
@@ -3996,6 +4142,8 @@ Released 2018-09-13
39964142[ `manual_find_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_find_map
39974143[ `manual_flatten` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten
39984144[ `manual_instant_elapsed` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_instant_elapsed
4145+ [ `manual_is_ascii_check` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check
4146+ [ `manual_let_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
39994147[ `manual_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_map
40004148[ `manual_memcpy` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy
40014149[ `manual_non_exhaustive` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_non_exhaustive
@@ -4198,6 +4346,8 @@ Released 2018-09-13
41984346[ `same_item_push` ] : https://rust-lang.github.io/rust-clippy/master/index.html#same_item_push
41994347[ `same_name_method` ] : https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method
42004348[ `search_is_some` ] : https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some
4349+ [ `seek_from_current` ] : https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current
4350+ [ `seek_to_start_instead_of_rewind` ] : https://rust-lang.github.io/rust-clippy/master/index.html#seek_to_start_instead_of_rewind
42014351[ `self_assignment` ] : https://rust-lang.github.io/rust-clippy/master/index.html#self_assignment
42024352[ `self_named_constructors` ] : https://rust-lang.github.io/rust-clippy/master/index.html#self_named_constructors
42034353[ `self_named_module_files` ] : https://rust-lang.github.io/rust-clippy/master/index.html#self_named_module_files
@@ -4247,6 +4397,7 @@ Released 2018-09-13
42474397[ `suspicious_splitn` ] : https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_splitn
42484398[ `suspicious_to_owned` ] : https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned
42494399[ `suspicious_unary_op_formatting` ] : https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_unary_op_formatting
4400+ [ `suspicious_xor_used_as_pow` ] : https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_xor_used_as_pow
42504401[ `swap_ptr_to_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#swap_ptr_to_ref
42514402[ `tabs_in_doc_comments` ] : https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments
42524403[ `temporary_assignment` ] : https://rust-lang.github.io/rust-clippy/master/index.html#temporary_assignment
@@ -4277,6 +4428,7 @@ Released 2018-09-13
42774428[ `try_err` ] : https://rust-lang.github.io/rust-clippy/master/index.html#try_err
42784429[ `type_complexity` ] : https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
42794430[ `type_repetition_in_bounds` ] : https://rust-lang.github.io/rust-clippy/master/index.html#type_repetition_in_bounds
4431+ [ `unchecked_duration_subtraction` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unchecked_duration_subtraction
42804432[ `undocumented_unsafe_blocks` ] : https://rust-lang.github.io/rust-clippy/master/index.html#undocumented_unsafe_blocks
42814433[ `undropped_manually_drops` ] : https://rust-lang.github.io/rust-clippy/master/index.html#undropped_manually_drops
42824434[ `unicode_not_nfc` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unicode_not_nfc
@@ -4298,6 +4450,7 @@ Released 2018-09-13
42984450[ `unnecessary_mut_passed` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
42994451[ `unnecessary_operation` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation
43004452[ `unnecessary_owned_empty_strings` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_owned_empty_strings
4453+ [ `unnecessary_safety_doc` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_safety_doc
43014454[ `unnecessary_self_imports` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_self_imports
43024455[ `unnecessary_sort_by` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by
43034456[ `unnecessary_to_owned` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
0 commit comments