Skip to content

Commit bbcde66

Browse files
committed
Merge remote-tracking branch 'upstream/master' into rustup
2 parents e5ce6d1 + 0f6932a commit bbcde66

File tree

323 files changed

+3672
-1719
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

323 files changed

+3672
-1719
lines changed

CHANGELOG.md

Lines changed: 154 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

@@ -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
@@ -4124,6 +4275,7 @@ Released 2018-09-13
41244275
[`unimplemented`]: https://rust-lang.github.io/rust-clippy/master/index.html#unimplemented
41254276
[`uninit_assumed_init`]: https://rust-lang.github.io/rust-clippy/master/index.html#uninit_assumed_init
41264277
[`uninit_vec`]: https://rust-lang.github.io/rust-clippy/master/index.html#uninit_vec
4278+
[`uninlined_format_args`]: https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
41274279
[`unit_arg`]: https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg
41284280
[`unit_cmp`]: https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp
41294281
[`unit_hash`]: https://rust-lang.github.io/rust-clippy/master/index.html#unit_hash

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ tempfile = { version = "3.2", optional = true }
2828
termize = "0.1"
2929

3030
[dev-dependencies]
31-
compiletest_rs = { version = "0.8", features = ["tmp"] }
31+
compiletest_rs = { version = "0.9", features = ["tmp"] }
3232
tester = "0.9"
3333
regex = "1.5"
3434
toml = "0.5"
@@ -42,6 +42,7 @@ filetime = "0.2"
4242
rustc-workspace-hack = "1.0"
4343

4444
# UI test dependencies
45+
clap = { version = "3.1", features = ["derive"] }
4546
clippy_utils = { path = "clippy_utils" }
4647
derive-new = "0.5"
4748
if_chain = "1.0"

clippy_dev/src/fmt.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,16 @@ pub fn run(check: bool, verbose: bool) {
8282
fn output_err(err: CliError) {
8383
match err {
8484
CliError::CommandFailed(command, stderr) => {
85-
eprintln!("error: A command failed! `{}`\nstderr: {}", command, stderr);
85+
eprintln!("error: A command failed! `{command}`\nstderr: {stderr}");
8686
},
8787
CliError::IoError(err) => {
88-
eprintln!("error: {}", err);
88+
eprintln!("error: {err}");
8989
},
9090
CliError::RustfmtNotInstalled => {
9191
eprintln!("error: rustfmt nightly is not installed.");
9292
},
9393
CliError::WalkDirError(err) => {
94-
eprintln!("error: {}", err);
94+
eprintln!("error: {err}");
9595
},
9696
CliError::IntellijSetupActive => {
9797
eprintln!(

clippy_dev/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ fn main() {
4141
matches.contains_id("msrv"),
4242
) {
4343
Ok(_) => update_lints::update(update_lints::UpdateMode::Change),
44-
Err(e) => eprintln!("Unable to create lint: {}", e),
44+
Err(e) => eprintln!("Unable to create lint: {e}"),
4545
}
4646
},
4747
Some(("setup", sub_command)) => match sub_command.subcommand() {

0 commit comments

Comments
 (0)