@@ -6,11 +6,161 @@ document.
66
77## Unreleased / In Rust Nightly
88
9- [ d7b5cbf0...master] ( https://github.com/rust-lang/rust-clippy/compare/d7b5cbf0...master )
9+ [ 3c7e7dbc...master] ( https://github.com/rust-lang/rust-clippy/compare/3c7e7dbc...master )
10+
11+ ## Rust 1.64
12+
13+ Current stable, released 2022-09-22
14+
15+ [ d7b5cbf0...3c7e7dbc] ( https://github.com/rust-lang/rust-clippy/compare/d7b5cbf0...3c7e7dbc )
16+
17+ ### New Lints
18+
19+ * [ ` arithmetic_side_effects ` ]
20+ [ #9130 ] ( https://github.com/rust-lang/rust-clippy/pull/9130 )
21+ * [ ` invalid_utf8_in_unchecked ` ]
22+ [ #9105 ] ( https://github.com/rust-lang/rust-clippy/pull/9105 )
23+ * [ ` assertions_on_result_states ` ]
24+ [ #9225 ] ( https://github.com/rust-lang/rust-clippy/pull/9225 )
25+ * [ ` manual_find ` ]
26+ [ #8649 ] ( https://github.com/rust-lang/rust-clippy/pull/8649 )
27+ * [ ` manual_retain ` ]
28+ [ #8972 ] ( https://github.com/rust-lang/rust-clippy/pull/8972 )
29+ * [ ` default_instead_of_iter_empty ` ]
30+ [ #8989 ] ( https://github.com/rust-lang/rust-clippy/pull/8989 )
31+ * [ ` manual_rem_euclid ` ]
32+ [ #9031 ] ( https://github.com/rust-lang/rust-clippy/pull/9031 )
33+ * [ ` obfuscated_if_else ` ]
34+ [ #9148 ] ( https://github.com/rust-lang/rust-clippy/pull/9148 )
35+ * [ ` std_instead_of_core ` ]
36+ [ #9103 ] ( https://github.com/rust-lang/rust-clippy/pull/9103 )
37+ * [ ` std_instead_of_alloc ` ]
38+ [ #9103 ] ( https://github.com/rust-lang/rust-clippy/pull/9103 )
39+ * [ ` alloc_instead_of_core ` ]
40+ [ #9103 ] ( https://github.com/rust-lang/rust-clippy/pull/9103 )
41+ * [ ` explicit_auto_deref ` ]
42+ [ #8355 ] ( https://github.com/rust-lang/rust-clippy/pull/8355 )
43+
44+
45+ ### Moves and Deprecations
46+
47+ * Moved [ ` format_push_string ` ] to ` restriction ` (now allow-by-default)
48+ [ #9161 ] ( https://github.com/rust-lang/rust-clippy/pull/9161 )
49+
50+ ### Enhancements
51+
52+ * [ ` significant_drop_in_scrutinee ` ] : Now gives more context in the lint message
53+ [ #8981 ] ( https://github.com/rust-lang/rust-clippy/pull/8981 )
54+ * [ ` single_match ` ] , [ ` single_match_else ` ] : Now catches more ` Option ` cases
55+ [ #8985 ] ( https://github.com/rust-lang/rust-clippy/pull/8985 )
56+ * [ ` unused_async ` ] : Now works for async methods
57+ [ #9025 ] ( https://github.com/rust-lang/rust-clippy/pull/9025 )
58+ * [ ` manual_filter_map ` ] , [ ` manual_find_map ` ] : Now lint more expressions
59+ [ #8958 ] ( https://github.com/rust-lang/rust-clippy/pull/8958 )
60+ * [ ` question_mark ` ] : Now works for simple ` if let ` expressions
61+ [ #8356 ] ( https://github.com/rust-lang/rust-clippy/pull/8356 )
62+ * [ ` undocumented_unsafe_blocks ` ] : Now finds comments before the start of closures
63+ [ #9117 ] ( https://github.com/rust-lang/rust-clippy/pull/9117 )
64+ * [ ` trait_duplication_in_bounds ` ] : Now catches duplicate bounds in where clauses
65+ [ #8703 ] ( https://github.com/rust-lang/rust-clippy/pull/8703 )
66+ * [ ` shadow_reuse ` ] , [ ` shadow_same ` ] , [ ` shadow_unrelated ` ] : Now lint in const blocks
67+ [ #9124 ] ( https://github.com/rust-lang/rust-clippy/pull/9124 )
68+ * [ ` slow_vector_initialization ` ] : Now detects cases with ` vec.capacity() `
69+ [ #8953 ] ( https://github.com/rust-lang/rust-clippy/pull/8953 )
70+ * [ ` unused_self ` ] : Now respects the ` avoid-breaking-exported-api ` config option
71+ [ #9199 ] ( https://github.com/rust-lang/rust-clippy/pull/9199 )
72+ * [ ` box_collection ` ] : Now supports all std collections
73+ [ #9170 ] ( https://github.com/rust-lang/rust-clippy/pull/9170 )
74+
75+ ### False Positive Fixes
76+
77+ * [ ` significant_drop_in_scrutinee ` ] : Now ignores calls to ` IntoIterator::into_iter `
78+ [ #9140 ] ( https://github.com/rust-lang/rust-clippy/pull/9140 )
79+ * [ ` while_let_loop ` ] : Now ignores cases when the significant drop order would change
80+ [ #8981 ] ( https://github.com/rust-lang/rust-clippy/pull/8981 )
81+ * [ ` branches_sharing_code ` ] : Now ignores cases where moved variables have a significant
82+ drop or variable modifications can affect the conditions
83+ [ #9138 ] ( https://github.com/rust-lang/rust-clippy/pull/9138 )
84+ * [ ` let_underscore_lock ` ] : Now ignores bindings that aren't locked
85+ [ #8990 ] ( https://github.com/rust-lang/rust-clippy/pull/8990 )
86+ * [ ` trivially_copy_pass_by_ref ` ] : Now tracks lifetimes and ignores cases where unsafe
87+ pointers are used
88+ [ #8639 ] ( https://github.com/rust-lang/rust-clippy/pull/8639 )
89+ * [ ` let_unit_value ` ] : No longer ignores ` #[allow] ` attributes on the value
90+ [ #9082 ] ( https://github.com/rust-lang/rust-clippy/pull/9082 )
91+ * [ ` declare_interior_mutable_const ` ] : Now ignores the ` thread_local! ` macro
92+ [ #9015 ] ( https://github.com/rust-lang/rust-clippy/pull/9015 )
93+ * [ ` if_same_then_else ` ] : Now ignores branches with ` todo! ` and ` unimplemented! `
94+ [ #9006 ] ( https://github.com/rust-lang/rust-clippy/pull/9006 )
95+ * [ ` enum_variant_names ` ] : Now ignores names with ` _ ` prefixes
96+ [ #9032 ] ( https://github.com/rust-lang/rust-clippy/pull/9032 )
97+ * [ ` let_unit_value ` ] : Now ignores cases, where the unit type is manually specified
98+ [ #9056 ] ( https://github.com/rust-lang/rust-clippy/pull/9056 )
99+ * [ ` match_same_arms ` ] : Now ignores branches with ` todo! `
100+ [ #9207 ] ( https://github.com/rust-lang/rust-clippy/pull/9207 )
101+ * [ ` assign_op_pattern ` ] : Ignores cases that break borrowing rules
102+ [ #9214 ] ( https://github.com/rust-lang/rust-clippy/pull/9214 )
103+ * [ ` extra_unused_lifetimes ` ] : No longer triggers in derive macros
104+ [ #9037 ] ( https://github.com/rust-lang/rust-clippy/pull/9037 )
105+ * [ ` mismatching_type_param_order ` ] : Now ignores complicated generic parameters
106+ [ #9146 ] ( https://github.com/rust-lang/rust-clippy/pull/9146 )
107+ * [ ` equatable_if_let ` ] : No longer lints in macros
108+ [ #9074 ] ( https://github.com/rust-lang/rust-clippy/pull/9074 )
109+ * [ ` new_without_default ` ] : Now ignores generics and lifetime parameters on ` fn new `
110+ [ #9115 ] ( https://github.com/rust-lang/rust-clippy/pull/9115 )
111+ * [ ` needless_borrow ` ] : Now ignores cases that result in the execution of different traits
112+ [ #9096 ] ( https://github.com/rust-lang/rust-clippy/pull/9096 )
113+ * [ ` declare_interior_mutable_const ` ] : No longer triggers in thread-local initializers
114+ [ #9246 ] ( https://github.com/rust-lang/rust-clippy/pull/9246 )
115+
116+ ### Suggestion Fixes/Improvements
117+
118+ * [ ` type_repetition_in_bounds ` ] : The suggestion now works with maybe bounds
119+ [ #9132 ] ( https://github.com/rust-lang/rust-clippy/pull/9132 )
120+ * [ ` transmute_ptr_to_ref ` ] : Now suggests ` pointer::cast ` when possible
121+ [ #8939 ] ( https://github.com/rust-lang/rust-clippy/pull/8939 )
122+ * [ ` useless_format ` ] : Now suggests the correct variable name
123+ [ #9237 ] ( https://github.com/rust-lang/rust-clippy/pull/9237 )
124+ * [ ` or_fun_call ` ] : The lint emission will now only span over the ` unwrap_or ` call
125+ [ #9144 ] ( https://github.com/rust-lang/rust-clippy/pull/9144 )
126+ * [ ` neg_multiply ` ] : Now suggests adding parentheses around suggestion if needed
127+ [ #9026 ] ( https://github.com/rust-lang/rust-clippy/pull/9026 )
128+ * [ ` unnecessary_lazy_evaluations ` ] : Now suggest for ` bool::then_some ` for lazy evaluation
129+ [ #9099 ] ( https://github.com/rust-lang/rust-clippy/pull/9099 )
130+ * [ ` manual_flatten ` ] : Improved message for long code snippets
131+ [ #9156 ] ( https://github.com/rust-lang/rust-clippy/pull/9156 )
132+ * [ ` explicit_counter_loop ` ] : The suggestion is now machine applicable
133+ [ #9149 ] ( https://github.com/rust-lang/rust-clippy/pull/9149 )
134+ * [ ` needless_borrow ` ] : Now keeps parentheses around fields, when needed
135+ [ #9210 ] ( https://github.com/rust-lang/rust-clippy/pull/9210 )
136+ * [ ` while_let_on_iterator ` ] : The suggestion now works in ` FnOnce ` closures
137+ [ #9134 ] ( https://github.com/rust-lang/rust-clippy/pull/9134 )
138+
139+ ### ICE Fixes
140+
141+ * Fix ICEs related to ` #![feature(generic_const_exprs)] ` usage
142+ [ #9241 ] ( https://github.com/rust-lang/rust-clippy/pull/9241 )
143+ * Fix ICEs related to reference lints
144+ [ #9093 ] ( https://github.com/rust-lang/rust-clippy/pull/9093 )
145+ * [ ` question_mark ` ] : Fix ICE on zero field tuple structs
146+ [ #9244 ] ( https://github.com/rust-lang/rust-clippy/pull/9244 )
147+
148+ ### Documentation Improvements
149+
150+ * [ ` needless_option_take ` ] : Now includes a "What it does" and "Why is this bad?" section.
151+ [ #9022 ] ( https://github.com/rust-lang/rust-clippy/pull/9022 )
152+
153+ ### Others
154+
155+ * Using ` --cap-lints=allow ` and only ` --force-warn ` ing some will now work with Clippy's driver
156+ [ #9036 ] ( https://github.com/rust-lang/rust-clippy/pull/9036 )
157+ * Clippy now tries to read the ` rust-version ` from ` Cargo.toml ` to identify the
158+ minimum supported rust version
159+ [ #8774 ] ( https://github.com/rust-lang/rust-clippy/pull/8774 )
10160
11161## Rust 1.63
12162
13- Current stable, released 2022-08-11
163+ Released 2022-08-11
14164
15165[ 7c21f91b...d7b5cbf0] ( https://github.com/rust-lang/rust-clippy/compare/7c21f91b...d7b5cbf0 )
16166
@@ -3609,6 +3759,7 @@ Released 2018-09-13
36093759[ `borrow_interior_mutable_const` ] : https://rust-lang.github.io/rust-clippy/master/index.html#borrow_interior_mutable_const
36103760[ `borrowed_box` ] : https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box
36113761[ `box_collection` ] : https://rust-lang.github.io/rust-clippy/master/index.html#box_collection
3762+ [ `box_default` ] : https://rust-lang.github.io/rust-clippy/master/index.html#box_default
36123763[ `box_vec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#box_vec
36133764[ `boxed_local` ] : https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local
36143765[ `branches_sharing_code` ] : https://rust-lang.github.io/rust-clippy/master/index.html#branches_sharing_code
@@ -3669,6 +3820,7 @@ Released 2018-09-13
36693820[ `derive_hash_xor_eq` ] : https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq
36703821[ `derive_ord_xor_partial_ord` ] : https://rust-lang.github.io/rust-clippy/master/index.html#derive_ord_xor_partial_ord
36713822[ `derive_partial_eq_without_eq` ] : https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
3823+ [ `disallowed_macros` ] : https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_macros
36723824[ `disallowed_method` ] : https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_method
36733825[ `disallowed_methods` ] : https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_methods
36743826[ `disallowed_names` ] : https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_names
@@ -3766,6 +3918,7 @@ Released 2018-09-13
37663918[ `implicit_clone` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_clone
37673919[ `implicit_hasher` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher
37683920[ `implicit_return` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_return
3921+ [ `implicit_saturating_add` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_add
37693922[ `implicit_saturating_sub` ] : https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub
37703923[ `imprecise_flops` ] : https://rust-lang.github.io/rust-clippy/master/index.html#imprecise_flops
37713924[ `inconsistent_digit_grouping` ] : https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping
@@ -3834,6 +3987,7 @@ Released 2018-09-13
38343987[ `manual_assert` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert
38353988[ `manual_async_fn` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn
38363989[ `manual_bits` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits
3990+ [ `manual_clamp` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
38373991[ `manual_filter_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map
38383992[ `manual_find` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_find
38393993[ `manual_find_map` ] : https://rust-lang.github.io/rust-clippy/master/index.html#manual_find_map
@@ -4124,6 +4278,7 @@ Released 2018-09-13
41244278[ `unimplemented` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unimplemented
41254279[ `uninit_assumed_init` ] : https://rust-lang.github.io/rust-clippy/master/index.html#uninit_assumed_init
41264280[ `uninit_vec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#uninit_vec
4281+ [ `uninlined_format_args` ] : https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
41274282[ `unit_arg` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg
41284283[ `unit_cmp` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp
41294284[ `unit_hash` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unit_hash
0 commit comments