Samuel Tardieu
d8726caacc
fix false negative for unnecessary_unwrap ( #14758 )
...
changelog: Fix [`unnecessary_unwrap`] false negative when any assignment
occurs in `if` branch (regardless of any variable).
Fixes : rust-lang/rust-clippy#14725
2025-05-08 22:12:02 +00:00
Manish Goregaokar
33519b7c99
Set Manish in vacation mode ( #14762 )
...
changelog: none
r? @Manishearth
2025-05-08 19:50:09 +00:00
Samuel Tardieu
1044e5bbcc
Set Manish in vacation mode
2025-05-08 21:40:20 +02:00
relaxcn
b73d3b4384
fix issue-14725
2025-05-09 01:21:14 +08:00
Philipp Krones
e04158caed
triagebot: canonicalize-issue-links → issue-links ( #14751 )
...
The feature [has been
renamed](https://forge.rust-lang.org/triagebot/canonicalize-issue-links.html ).
changelog: none
2025-05-08 11:45:29 +00:00
Samuel Tardieu
d17eeb5d83
triagebot: canonicalize-issue-links → issue-links
...
The feature has been renamed in triagebot
(https://forge.rust-lang.org/triagebot/canonicalize-issue-links.html ).
2025-05-08 00:04:38 +02:00
dswij
f88f9a9dc5
Fix manual_let_else FN when diverges on simple enum variant ( #14732 )
...
Closes rust-lang/rust-clippy#14598
Implemented checks for simple enum variants when checking if match arms
are disjointed.
changelog: [`manual_let_else`] fix FN when diverges on simple enum
variant
2025-05-07 16:33:07 +00:00
Samuel Tardieu
50cff118d8
Make let_with_type_underscore help message into a suggestion ( #14749 )
...
changelog: none
2025-05-07 16:26:54 +00:00
Jason Newcomb
34cd9486c9
Fix diagnostic paths printed by dogfood test ( #14746 )
...
Where you would previously see
```
error: some lint
--> src/lib.rs:1:2
```
it will now print
```
error: some lint
--> clippy_lints/src/lib.rs:1:2
```
Ensuring you can click the link in the terminal
A workaround for us not being in a workspace
changelog: none
2025-05-07 15:24:46 +00:00
Alex Macleod
8c045221b5
Make let_with_type_underscore help message into a suggestion
2025-05-07 15:19:40 +00:00
Alex Macleod
772ea35935
Fix diagnostic paths printed by dogfood test
2025-05-07 14:32:23 +00:00
Manish Goregaokar
ca6281628e
Replace Symbol::as_str usage in match expressions ( #14745 )
...
We could do with a way to make matching on the `assert_*` macro kind
easier, this came up a bunch here. I'll take a look at that as a follow
up
changelog: none
2025-05-07 14:09:53 +00:00
Alex Macleod
5aac708398
Replace Symbol::as_str usage in match expressions
2025-05-07 13:52:11 +00:00
Jason Newcomb
ca78fb4031
unwrap_used, expect_used: accept macro result as receiver (#14575 )
...
changelog: [`unwrap_used`, `expect_used`]: lint even when the receiver
is a macro expansion result
This also paves the way for expanding more method call lints to expanded
receivers or arguments.
Fixes rust-lang/rust-clippy#13455
2025-05-07 08:09:47 +00:00
Samuel Tardieu
999db5cdc6
unwrap_used, expect_used: accept macro result as receiver
2025-05-07 10:04:52 +02:00
Manish Goregaokar
fc811f7e2e
item_name_repetitions: exclude enum variants with identical path components (#14619 )
...
fix rust-lang/rust-clippy#13637
As suggested in the PR above, we should not lint enum variants
containing matching path names.
changelog: [`item_name_repetitions`]: exclude enum variants with
identical path components
2025-05-06 18:30:14 +00:00
Samuel Tardieu
73dd05cc7a
add allow_unused config to missing_docs_in_private_items ( #14453 )
...
fixes #14413
add allow_unused config to missing_docs_in_private_items for underscored
field
changelog: [`missing_docs_in_private_items`]: add allow_unused config to
missing_docs_in_private_items for underscored field
Explaination (quoted from the issue's author): When writing structures
that must adhere to a specific format (such as memory mapped I/O
structures) there are inevitably fields that are "reserved" by
specifications and thus need no documentation. In cases where private
docs are preferred but reserved fields need no explanation, having to
#[allow/expect] this lint removes the ability to check for otherwise
used fields' documentation.
2025-05-06 17:18:14 +00:00
Alex Macleod
cf6bebb343
Remove some unused #![feature]s ( #14738 )
...
Mostly `let_chains` now that it's stable on 2024
changelog: none
2025-05-06 14:12:20 +00:00
Alex Macleod
737d3b3363
Remove some unused #![feature]s
2025-05-06 14:07:39 +00:00
Alex Macleod
94aa0d9a75
Update clippy_lints_internal to 2024 edition
2025-05-06 14:07:14 +00:00
yanglsh
d0af404b19
fix: manual_let_else FN when diverges on simple enum variant
2025-05-06 14:42:18 +08:00
Samuel Tardieu
7fdded3e37
Fix collapsible_if FP on block stmt before expr ( #14730 )
...
Closes rust-lang/rust-clippy#14722
changelog: [`collapsible_if`] fix FP on block stmt before expr
2025-05-06 06:33:10 +00:00
yanglsh
e7acf5c9b9
fix: collapsible_if FP on block stmt before expr
2025-05-06 14:25:21 +08:00
Samuel Tardieu
50e0bf1b71
Gate collapsible_if let_chains lints on edition 2024 and MSRV ( #14723 )
...
The MSRV being for crates targeting 1.85-1.87 on edition 2024
This enables the lint for regular nightly users without the feature gate
enabled
r? @samueltardieu
Fixes https://github.com/rust-lang/rust-clippy/issues/14678
changelog: none
2025-05-06 05:40:37 +00:00
Aaron Ang
e89cf4d389
item_name_repetitions: exclude enum variants with identical path components
2025-05-05 20:15:50 -07:00
Alex Macleod
8c93668a71
Gate collapsible_if let_chains lints on edition 2024 and MSRV
2025-05-06 02:23:28 +00:00
Jason Newcomb
c1586e141f
Replace str path utils with new PathLookup type ( #14705 )
...
The `&[&str]` path based `clippy_utils` have been removed and replace
with a new type `PathLookup`:
-
[`match_trait_method`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_trait_method.html )
-
[`match_qpath`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_qpath.html )
-
[`match_path`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_path.html )
-
[`match_any_def_paths`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_any_def_paths.html )
-
[`match_def_path`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_def_path.html )
-
[`match_type`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/ty/fn.match_type.html )
-
[`get_trait_def_id`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.get_trait_def_id.html )
Internally `PathLookup` is a lazy call to `lookup_path` (the new name
for
[`def_path_res`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.def_path_res.html )
to distinguish it from
[`path_res`](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.path_res.html ))
The `invalid_paths` internal lint is removed, it could be reimplemented
but it feels redundant since every path should be covered by a test
anyway
### User facing changes
- `manual_saturating_arithmetic` now checks for `u32::MAX/MIN` instead
of only detecting the legacy numeric consts (`std::u32::MAX/MIN`),
`clippy::legacy_numeric_constants` will redirect usages of the legacy
versions to the new one
- `allow-invalid = true` now suppresses all invalid path warnings,
currently you can run into a warning that can't be ignored in some
situations, e.g. with `serde` without the `derive` feature
```
warning: expected a macro, found a trait
--> /home/gh-Alexendoo/temp/clippy.toml:2:5
|
2 | { path = "serde::Serialize", allow-invalid = true },
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
- Re-exports of primitives types like `std::primitive::*` no longer work
in `disallowed-types`, this seems acceptable since it would be unusual
to deny a primitive this way rather than writing e.g. `usize`. Type
aliases such as `c_char` are unaffected
- A similar slight performance improvement to
https://github.com/rust-lang/rust-clippy/pull/14650
```bash
$ hyperfine -w 2 -p 'touch src/cargo/lib.rs' 'cargo +master clippy'
'cargo +lazy-paths clippy'
```
```
Benchmark 1: cargo +master clippy
Time (mean ± σ): 6.829 s ± 0.064 s [User: 6.079 s, System: 0.673 s]
Range (min … max): 6.705 s … 6.907 s 10 runs
Benchmark 2: cargo +lazy-paths clippy
Time (mean ± σ): 6.765 s ± 0.064 s [User: 5.984 s, System: 0.698 s]
Range (min … max): 6.636 s … 6.834 s 10 runs
Summary
cargo +lazy-paths clippy ran
1.01 ± 0.01 times faster than cargo +master clippy
```
changelog: none
2025-05-05 21:46:40 +00:00
Jason Newcomb
f62f269658
Fix manual_unwrap_or_default FP on ref binding ( #14731 )
...
Closes rust-lang/rust-clippy#14716
changelog: [`manual_unwrap_or_default`] fix FP on ref binding
2025-05-05 21:45:13 +00:00
Samuel Tardieu
003fc6ce1c
Remove myself from users on vacation ( #14737 )
...
r? ghost
changelog: none
2025-05-05 17:08:45 +00:00
Samuel Tardieu
9d5bb00d92
Remove myself from users on vacation
2025-05-05 19:03:03 +02:00
Philipp Krones
f60d7f9fc2
Read PR body from event in clippy_changelog action ( #14736 )
...
Simplifies the implementation a bit, also makes the message an error
annotation
changelog: none
2025-05-05 15:55:12 +00:00
Alex Macleod
e21b936770
Read PR body from event in clippy_changelog action
2025-05-05 15:30:56 +00:00
Alejandra González
689e62b3b2
fix: unused_async FP on default impl ( #14720 )
...
Closes rust-lang/rust-clippy#14704
changelog: [`unused_async`] fix FP on default impl
2025-05-05 00:43:30 +00:00
Alex Macleod
f23772ce8c
Move lookup_path and similar into clippy_utils::paths
2025-05-04 17:13:02 +00:00
Alex Macleod
b768fbe4bc
Replace str path utils with new PathLookup type
2025-05-04 15:26:37 +00:00
Alex Macleod
ea13461967
Don't warn about unloaded crates ( #14733 )
...
Fixes
https://github.com/rust-lang/rust-clippy/pull/14397#issuecomment-2848328221
r? @samueltardieu
changelog: Don't warn about clippy.toml disallowed paths for crates that
were not loaded
2025-05-04 13:44:16 +00:00
Samuel Moelius
7b7a9a6ece
Don't warn about unloaded crates
...
Fixes https://github.com/rust-lang/rust-clippy/pull/14397#issuecomment-2848328221
2025-05-04 09:22:29 -04:00
Kaido Aethermai
64880cad75
add test 3, fmt and lint
2025-05-03 15:17:03 -07:00
Quang Duong Nguyen
481abc1361
fix doc
2025-05-03 15:17:03 -07:00
Quang Duong Nguyen
91a06226a1
move the implementation under check_def_field
2025-05-03 15:17:03 -07:00
Quang Duong Nguyen
c468552097
add allow_unused config to missing_docs_in_private_items
...
add allow_unused config to missing_docs_in_private_items for underscored field
2025-05-03 15:17:03 -07:00
yanglsh
7106e21227
fix: manual_unwrap_or_default FP on ref binding
2025-05-03 23:38:52 +08:00
Manish Goregaokar
56f018286b
fix: manual_slice_fill FP on IndexMut overload ( #14719 )
...
Closes rust-lang/rust-clippy#14685
changelog: [`manual_slice_fill`] fix FP on `IndexMut` overload
2025-05-02 17:07:07 +00:00
Jason Newcomb
fb9508d7a0
Fix new_lint clippy command ( #14642 )
...
I'm working on https://github.com/rust-lang/rust-clippy/issues/14542 and
I decided to name the lint `unnecessary_map` originally. However when I
ran the command, I got:
```
thread 'main' panicked at clippy_dev/src/new_lint.rs:450:5:
Lint `unnecessary_map` already defined in `/home/imperio/rust/clippy/clippy_lints/src/methods/mod.rs`
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
It's because there is already a `unnecessary_map_or`, which matches the
`.contains()` call. This PR strengthens this check.
changelog: Fix `new_lint` clippy command
r? @flip1995
2025-05-02 15:47:40 +00:00
yanglsh
33ea0b482c
fix: manual_slice_fill FP on IndexMut overload
2025-05-02 15:09:00 +08:00
dswij
a53acefef7
Remove is_normalizable ( #14717 )
...
Supersedes rust-lang/rust-clippy#12550
`layout_of` no longer contains a `delay_bug` so there's no need for this
anymore.
changelog: None
2025-05-01 16:45:14 +00:00
Philipp Krones
03a5b6b976
Rustup ( #14721 )
...
r? @ghost
changelog: none
2025-05-01 07:55:48 +00:00
Philipp Krones
8a91bbfa91
Bump nightly version -> 2025-05-01
2025-05-01 09:50:54 +02:00
Philipp Krones
43797675c2
Merge remote-tracking branch 'upstream/master' into rustup
2025-05-01 09:50:42 +02:00
yanglsh
782c6065c4
fix: unused_async FP on default impl
2025-05-01 14:50:23 +08:00