@@ -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
0 commit comments