Skip to content

Commit e279f22

Browse files
committed
Changelog for Rust 1.64 🍎
1 parent 5c3c6a2 commit e279f22

File tree

6 files changed

+157
-7
lines changed

6 files changed

+157
-7
lines changed

CHANGELOG.md

Lines changed: 152 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

clippy_lints/src/default_instead_of_iter_empty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ declare_clippy_lint! {
2323
/// let _ = std::iter::empty::<usize>();
2424
/// let iter: std::iter::Empty<usize> = std::iter::empty();
2525
/// ```
26-
#[clippy::version = "1.63.0"]
26+
#[clippy::version = "1.64.0"]
2727
pub DEFAULT_INSTEAD_OF_ITER_EMPTY,
2828
style,
2929
"check `std::iter::Empty::default()` and replace with `std::iter::empty()`"

clippy_lints/src/dereference.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ declare_clippy_lint! {
135135
/// let x = String::new();
136136
/// let y: &str = &x;
137137
/// ```
138-
#[clippy::version = "1.60.0"]
138+
#[clippy::version = "1.64.0"]
139139
pub EXPLICIT_AUTO_DEREF,
140140
complexity,
141141
"dereferencing when the compiler would automatically dereference"

clippy_lints/src/loops/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ declare_clippy_lint! {
635635
/// arr.into_iter().find(|&el| el == 1)
636636
/// }
637637
/// ```
638-
#[clippy::version = "1.61.0"]
638+
#[clippy::version = "1.64.0"]
639639
pub MANUAL_FIND,
640640
complexity,
641641
"manual implementation of `Iterator::find`"

clippy_lints/src/manual_rem_euclid.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ declare_clippy_lint! {
2727
/// let x: i32 = 24;
2828
/// let rem = x.rem_euclid(4);
2929
/// ```
30-
#[clippy::version = "1.63.0"]
30+
#[clippy::version = "1.64.0"]
3131
pub MANUAL_REM_EUCLID,
3232
complexity,
3333
"manually reimplementing `rem_euclid`"

clippy_lints/src/manual_retain.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ declare_clippy_lint! {
4343
/// let mut vec = vec![0, 1, 2];
4444
/// vec.retain(|x| x % 2 == 0);
4545
/// ```
46-
#[clippy::version = "1.63.0"]
46+
#[clippy::version = "1.64.0"]
4747
pub MANUAL_RETAIN,
4848
perf,
4949
"`retain()` is simpler and the same functionalitys"

0 commit comments

Comments
 (0)