Skip to content

Commit c2c170a

Browse files
committed
Auto merge of rust-lang#9501 - xFrednet:changelog-1.64, r=llogiq
Changelog for Rust 1.64 🍎 The normal release preparation dance. I've written the changelog like the version has already been released. The PR can be approved and then merged by anyone after the release of Rust 1.64 🙃 --- changelog: none
2 parents 7248d06 + e279f22 commit c2c170a

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)