Skip to content

Commit d2f67a8

Browse files
committed
Merge remote-tracking branch 'upstream/master' into rustup
2 parents 17bda0c + b583568 commit d2f67a8

File tree

2,557 files changed

+33040
-14127
lines changed

Some content is hidden

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

2,557 files changed

+33040
-14127
lines changed

CHANGELOG.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,53 @@ document.
66

77
## Unreleased / Beta / In Rust Nightly
88

9-
[786fbd6d...master](https://github.com/rust-lang/rust-clippy/compare/786fbd6d...master)
9+
[609cd310...master](https://github.com/rust-lang/rust-clippy/compare/609cd310...master)
10+
11+
## Rust 1.85
12+
13+
Current stable, released 2025-02-20
14+
15+
[View all 72 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2024-11-15T19%3A31%3A08Z..2024-12-26T13%3A59%3A48Z+base%3Amaster)
16+
17+
### New Lints
18+
19+
* Added [`repr_packed_without_abi`] to `suspicious`
20+
[#13398](https://github.com/rust-lang/rust-clippy/pull/13398)
21+
* Added [`as_pointer_underscore`] to `restriction`
22+
[#13251](https://github.com/rust-lang/rust-clippy/pull/13251)
23+
* Added [`doc_nested_refdefs`] to `suspicious`
24+
[#13707](https://github.com/rust-lang/rust-clippy/pull/13707)
25+
* Added [`literal_string_with_formatting_args`] to `nursery`
26+
[#13410](https://github.com/rust-lang/rust-clippy/pull/13410)
27+
* Added [`doc_include_without_cfg`] to `restriction`
28+
[#13625](https://github.com/rust-lang/rust-clippy/pull/13625)
29+
30+
### Enhancements
31+
32+
* [`indexing_slicing`]: Can now be allowed in tests using the [`allow-indexing-slicing-in-tests`]
33+
configuration
34+
[#13854](https://github.com/rust-lang/rust-clippy/pull/13854)
35+
* [`if_let_mutex`]: disable lint from Edition 2024 since
36+
[if_let_rescope](https://github.com/rust-lang/rust/issues/131154) was stabilized
37+
[#13695](https://github.com/rust-lang/rust-clippy/pull/13695)
38+
* [`format_in_format_args`], [`recursive_format_impl`], [`to_string_in_format_args`],
39+
[`uninlined_format_args`], [`unused_format_specs`]: Can now support 3rd party format macros
40+
if they're marked with the `#[clippy::format_args]` attribute
41+
[#9948](https://github.com/rust-lang/rust-clippy/pull/9948)
42+
43+
### ICE Fixes
44+
45+
* [`trait_duplication_in_bounds`]: fix ICE on duplicate type or constant bound
46+
[#13722](https://github.com/rust-lang/rust-clippy/pull/13722)
47+
48+
### Others
49+
50+
* `clippy_utils` is now published to crates.io. Note that this crate is and will remain unstable.
51+
[#13700](https://github.com/rust-lang/rust-clippy/pull/13700)
1052

1153
## Rust 1.84
1254

13-
Current stable, released 2025-01-09
55+
Released 2025-01-09
1456

1557
[View all 84 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2024-10-03T21%3A23%3A58Z..2024-11-14T17%3A41%3A37Z+base%3Amaster)
1658

@@ -5530,6 +5572,7 @@ Released 2018-09-13
55305572
[`diverging_sub_expression`]: https://rust-lang.github.io/rust-clippy/master/index.html#diverging_sub_expression
55315573
[`doc_include_without_cfg`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_include_without_cfg
55325574
[`doc_lazy_continuation`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
5575+
[`doc_link_code`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_code
55335576
[`doc_link_with_quotes`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
55345577
[`doc_markdown`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
55355578
[`doc_nested_refdefs`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_nested_refdefs
@@ -5683,6 +5726,7 @@ Released 2018-09-13
56835726
[`invalid_utf8_in_unchecked`]: https://rust-lang.github.io/rust-clippy/master/index.html#invalid_utf8_in_unchecked
56845727
[`inverted_saturating_sub`]: https://rust-lang.github.io/rust-clippy/master/index.html#inverted_saturating_sub
56855728
[`invisible_characters`]: https://rust-lang.github.io/rust-clippy/master/index.html#invisible_characters
5729+
[`io_other_error`]: https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error
56865730
[`is_digit_ascii_radix`]: https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix
56875731
[`items_after_statements`]: https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements
56885732
[`items_after_test_module`]: https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module
@@ -5742,6 +5786,7 @@ Released 2018-09-13
57425786
[`manual_bits`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits
57435787
[`manual_c_str_literals`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals
57445788
[`manual_clamp`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
5789+
[`manual_contains`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains
57455790
[`manual_div_ceil`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil
57465791
[`manual_filter`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter
57475792
[`manual_filter_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map
@@ -5812,6 +5857,7 @@ Released 2018-09-13
58125857
[`mem_discriminant_non_enum`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_discriminant_non_enum
58135858
[`mem_forget`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_forget
58145859
[`mem_replace_option_with_none`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none
5860+
[`mem_replace_option_with_some`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some
58155861
[`mem_replace_with_default`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
58165862
[`mem_replace_with_uninit`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_uninit
58175863
[`min_ident_chars`]: https://rust-lang.github.io/rust-clippy/master/index.html#min_ident_chars
@@ -5939,6 +5985,7 @@ Released 2018-09-13
59395985
[`out_of_bounds_indexing`]: https://rust-lang.github.io/rust-clippy/master/index.html#out_of_bounds_indexing
59405986
[`overflow_check_conditional`]: https://rust-lang.github.io/rust-clippy/master/index.html#overflow_check_conditional
59415987
[`overly_complex_bool_expr`]: https://rust-lang.github.io/rust-clippy/master/index.html#overly_complex_bool_expr
5988+
[`owned_cow`]: https://rust-lang.github.io/rust-clippy/master/index.html#owned_cow
59425989
[`panic`]: https://rust-lang.github.io/rust-clippy/master/index.html#panic
59435990
[`panic_in_result_fn`]: https://rust-lang.github.io/rust-clippy/master/index.html#panic_in_result_fn
59445991
[`panic_params`]: https://rust-lang.github.io/rust-clippy/master/index.html#panic_params
@@ -6067,6 +6114,7 @@ Released 2018-09-13
60676114
[`single_element_loop`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_element_loop
60686115
[`single_match`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_match
60696116
[`single_match_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else
6117+
[`single_option_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_option_map
60706118
[`single_range_in_vec_init`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_range_in_vec_init
60716119
[`size_of_in_element_count`]: https://rust-lang.github.io/rust-clippy/master/index.html#size_of_in_element_count
60726120
[`size_of_ref`]: https://rust-lang.github.io/rust-clippy/master/index.html#size_of_ref
@@ -6143,6 +6191,7 @@ Released 2018-09-13
61436191
[`type_complexity`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
61446192
[`type_id_on_box`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_id_on_box
61456193
[`type_repetition_in_bounds`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_repetition_in_bounds
6194+
[`unbuffered_bytes`]: https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes
61466195
[`unchecked_duration_subtraction`]: https://rust-lang.github.io/rust-clippy/master/index.html#unchecked_duration_subtraction
61476196
[`unconditional_recursion`]: https://rust-lang.github.io/rust-clippy/master/index.html#unconditional_recursion
61486197
[`undocumented_unsafe_blocks`]: https://rust-lang.github.io/rust-clippy/master/index.html#undocumented_unsafe_blocks
@@ -6161,6 +6210,7 @@ Released 2018-09-13
61616210
[`unnecessary_box_returns`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_box_returns
61626211
[`unnecessary_cast`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
61636212
[`unnecessary_clippy_cfg`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_clippy_cfg
6213+
[`unnecessary_debug_formatting`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting
61646214
[`unnecessary_fallible_conversions`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
61656215
[`unnecessary_filter_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map
61666216
[`unnecessary_find_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map
@@ -6267,6 +6317,7 @@ Released 2018-09-13
62676317
[`accept-comment-above-statement`]: https://doc.rust-lang.org/clippy/lint_configuration.html#accept-comment-above-statement
62686318
[`allow-comparison-to-zero`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-comparison-to-zero
62696319
[`allow-dbg-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-dbg-in-tests
6320+
[`allow-expect-in-consts`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-expect-in-consts
62706321
[`allow-expect-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-expect-in-tests
62716322
[`allow-indexing-slicing-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-indexing-slicing-in-tests
62726323
[`allow-mixed-uninlined-format-args`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-mixed-uninlined-format-args
@@ -6275,6 +6326,7 @@ Released 2018-09-13
62756326
[`allow-print-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-print-in-tests
62766327
[`allow-private-module-inception`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-private-module-inception
62776328
[`allow-renamed-params-for`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-renamed-params-for
6329+
[`allow-unwrap-in-consts`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-unwrap-in-consts
62786330
[`allow-unwrap-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-unwrap-in-tests
62796331
[`allow-useless-vec-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-useless-vec-in-tests
62806332
[`allowed-dotfiles`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allowed-dotfiles

Cargo.toml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "clippy"
33
# begin autogenerated version
4-
version = "0.1.86"
4+
version = "0.1.87"
55
# end autogenerated version
66
description = "A bunch of helpful lints to avoid common pitfalls in Rust"
77
repository = "https://github.com/rust-lang/rust-clippy"
@@ -25,7 +25,7 @@ path = "src/driver.rs"
2525
[dependencies]
2626
clippy_config = { path = "clippy_config" }
2727
clippy_lints = { path = "clippy_lints" }
28-
rustc_tools_util = "0.4.0"
28+
rustc_tools_util = { path = "rustc_tools_util", version = "0.4.2" }
2929
tempfile = { version = "3.3", optional = true }
3030
termize = "0.1"
3131
color-print = "0.3.4"
@@ -54,7 +54,7 @@ parking_lot = "0.12"
5454
tokio = { version = "1", features = ["io-util"] }
5555

5656
[build-dependencies]
57-
rustc_tools_util = "0.4.0"
57+
rustc_tools_util = { path = "rustc_tools_util", version = "0.4.2" }
5858

5959
[features]
6060
integration = ["tempfile"]
@@ -71,3 +71,10 @@ harness = false
7171
[[test]]
7272
name = "dogfood"
7373
harness = false
74+
75+
# quine-mc_cluskey makes up a significant part of the runtime in dogfood
76+
# due to the number of conditions in the clippy_lints crate
77+
# and enabling optimizations for that specific dependency helps a bit
78+
# without increasing total build times.
79+
[profile.dev.package.quine-mc_cluskey]
80+
opt-level = 3

book/src/development/adding_lints.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ from the lint to the code of the test file and compare that to the contents of a
169169
Use `cargo bless` to automatically generate the `.fixed` file while running
170170
the tests.
171171

172-
[rustfix]: https://github.com/rust-lang/rustfix
172+
[rustfix]: https://github.com/rust-lang/cargo/tree/master/crates/rustfix
173173

174174
## Testing manually
175175

book/src/development/basics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ or if you modify a test file to add a test case.
7575
> _Note:_ This command may update more files than you intended. In that case
7676
> only commit the files you wanted to update.
7777
78-
[UI test]: https://rustc-dev-guide.rust-lang.org/tests/adding.html#guide-to-the-ui-tests
78+
[UI test]: https://rustc-dev-guide.rust-lang.org/tests/adding.html#ui-test-walkthrough
7979

8080
## `cargo dev`
8181

book/src/development/writing_tests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ We'll talk about suggestions more in depth in a [later chapter](emitting_lints.m
203203
Use `cargo bless` to automatically generate the `.fixed` file after running
204204
the tests.
205205

206-
[`rustfix`]: https://github.com/rust-lang/rustfix
206+
[`rustfix`]: https://github.com/rust-lang/cargo/tree/master/crates/rustfix
207207
[`span_lint_and_sugg`]: https://doc.rust-lang.org/beta/nightly-rustc/clippy_utils/diagnostics/fn.span_lint_and_sugg.html
208208

209209
## Testing Manually

book/src/lint_configuration.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ Whether `dbg!` should be allowed in test functions or `#[cfg(test)]`
7171
* [`dbg_macro`](https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro)
7272

7373

74+
## `allow-expect-in-consts`
75+
Whether `expect` should be allowed in code always evaluated at compile time
76+
77+
**Default Value:** `true`
78+
79+
---
80+
**Affected lints:**
81+
* [`expect_used`](https://rust-lang.github.io/rust-clippy/master/index.html#expect_used)
82+
83+
7484
## `allow-expect-in-tests`
7585
Whether `expect` should be allowed in test functions or `#[cfg(test)]`
7686

@@ -108,7 +118,7 @@ Whether to allow `r#""#` when `r""` can be used
108118

109119
---
110120
**Affected lints:**
111-
* [`unnecessary_raw_string_hashes`](https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_raw_string_hashes)
121+
* [`needless_raw_string_hashes`](https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes)
112122

113123

114124
## `allow-panic-in-tests`
@@ -164,6 +174,16 @@ default configuration of Clippy. By default, any configuration will replace the
164174
* [`renamed_function_params`](https://rust-lang.github.io/rust-clippy/master/index.html#renamed_function_params)
165175

166176

177+
## `allow-unwrap-in-consts`
178+
Whether `unwrap` should be allowed in code always evaluated at compile time
179+
180+
**Default Value:** `true`
181+
182+
---
183+
**Affected lints:**
184+
* [`unwrap_used`](https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used)
185+
186+
167187
## `allow-unwrap-in-tests`
168188
Whether `unwrap` should be allowed in test functions or `#[cfg(test)]`
169189

@@ -360,6 +380,7 @@ Suppress lints whenever the suggested change would cause breakage for other crat
360380
* [`linkedlist`](https://rust-lang.github.io/rust-clippy/master/index.html#linkedlist)
361381
* [`needless_pass_by_ref_mut`](https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut)
362382
* [`option_option`](https://rust-lang.github.io/rust-clippy/master/index.html#option_option)
383+
* [`owned_cow`](https://rust-lang.github.io/rust-clippy/master/index.html#owned_cow)
363384
* [`rc_buffer`](https://rust-lang.github.io/rust-clippy/master/index.html#rc_buffer)
364385
* [`rc_mutex`](https://rust-lang.github.io/rust-clippy/master/index.html#rc_mutex)
365386
* [`redundant_allocation`](https://rust-lang.github.io/rust-clippy/master/index.html#redundant_allocation)
@@ -738,15 +759,20 @@ The minimum rust version that the project supports. Defaults to the `rust-versio
738759
* [`from_over_into`](https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into)
739760
* [`if_then_some_else_none`](https://rust-lang.github.io/rust-clippy/master/index.html#if_then_some_else_none)
740761
* [`index_refutable_slice`](https://rust-lang.github.io/rust-clippy/master/index.html#index_refutable_slice)
762+
* [`io_other_error`](https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error)
741763
* [`iter_kv_map`](https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map)
742764
* [`legacy_numeric_constants`](https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants)
765+
* [`lines_filter_map_ok`](https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok)
743766
* [`manual_bits`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits)
744767
* [`manual_c_str_literals`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals)
745768
* [`manual_clamp`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp)
769+
* [`manual_div_ceil`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil)
770+
* [`manual_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten)
746771
* [`manual_hash_one`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_hash_one)
747772
* [`manual_is_ascii_check`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check)
748773
* [`manual_let_else`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else)
749774
* [`manual_non_exhaustive`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_non_exhaustive)
775+
* [`manual_option_as_slice`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_option_as_slice)
750776
* [`manual_pattern_char_comparison`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison)
751777
* [`manual_range_contains`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains)
752778
* [`manual_rem_euclid`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_rem_euclid)
@@ -761,6 +787,7 @@ The minimum rust version that the project supports. Defaults to the `rust-versio
761787
* [`map_unwrap_or`](https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or)
762788
* [`map_with_unused_argument_over_ranges`](https://rust-lang.github.io/rust-clippy/master/index.html#map_with_unused_argument_over_ranges)
763789
* [`match_like_matches_macro`](https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro)
790+
* [`mem_replace_option_with_some`](https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some)
764791
* [`mem_replace_with_default`](https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default)
765792
* [`missing_const_for_fn`](https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn)
766793
* [`needless_borrow`](https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow)
@@ -770,6 +797,7 @@ The minimum rust version that the project supports. Defaults to the `rust-versio
770797
* [`ptr_as_ptr`](https://rust-lang.github.io/rust-clippy/master/index.html#ptr_as_ptr)
771798
* [`redundant_field_names`](https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names)
772799
* [`redundant_static_lifetimes`](https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes)
800+
* [`repeat_vec_with_capacity`](https://rust-lang.github.io/rust-clippy/master/index.html#repeat_vec_with_capacity)
773801
* [`same_item_push`](https://rust-lang.github.io/rust-clippy/master/index.html#same_item_push)
774802
* [`seek_from_current`](https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current)
775803
* [`seek_rewind`](https://rust-lang.github.io/rust-clippy/master/index.html#seek_rewind)

clippy_config/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "clippy_config"
33
# begin autogenerated version
4-
version = "0.1.86"
4+
version = "0.1.87"
55
# end autogenerated version
66
edition = "2024"
77
publish = false

0 commit comments

Comments
 (0)