Commit graph

22499 commits

Author SHA1 Message Date
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
Philipp Krones
e04158caed
triagebot: canonicalize-issue-linksissue-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-linksissue-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
Jason Newcomb
36c3617bb1 Remove is_normalizable. layout_of no longer contains a delay_bug. 2025-04-30 19:31:24 -04:00
Trevor Gross
6d589103e9 Rollup merge of #139909 - oli-obk:or-patterns, r=BoxyUwU
implement or-patterns for pattern types

These are necessary to represent `NonZeroI32`, as the range for that is `..0 | 1..`. The `rustc_scalar_layout_range_*` attributes avoided this by just implementing wraparound and having a single `1..=-1` range effectively. See https://rust-lang.zulipchat.com/#narrow/channel/481660-t-lang.2Fpattern-types/topic/.60or.20pattern.60.20representation.20in.20type.20system/with/504217694 for some background discussion

cc https://github.com/rust-lang/rust/issues/123646

r? `@BoxyUwU`
2025-04-29 12:28:22 -04:00