Alejandra González
16fd2a83d7
Fix integer_division false negative for NonZero denominators ( #14664 )
...
Close rust-lang/rust-clippy#14652
changelog: [`integer_division`]: fix false negative for NonZero
denominators
2025-05-09 20:50:04 +00:00
Samuel Tardieu
756de2ab82
remove superseded lints ( #14703 )
...
changelog: [`transmute_float_to_int, transmute_int_to_char,
transmute_int_to_float`, `transmute_num_to_bytes`]: remove lints, now in
rustc
these lints are now mostly in rustc, so they dont need to be in clippy
anymore
https://github.com/rust-lang/rust/pull/136083#discussion_r2009897120
pending https://github.com/rust-lang/rust/pull/140431 :
transmute_int_to_bool
<!-- TRIAGEBOT_START -->
<!-- TRIAGEBOT_SUMMARY_START -->
### Summary Notes
- ["Rust version of new lints should be checked" by
@samueltardieu](https://github.com/rust-lang/rust-clippy/pull/14703#issuecomment-2861982576 )
Generated by triagebot, see
[help](https://forge.rust-lang.org/triagebot/note.html ) for how to add
more
<!--
TRIAGEBOT_SUMMARY_DATA_START$${"entries_by_url":{"https://github.com/rust-lang/rust-clippy/pull/14703#issuecomment-2861982576 ":{"title":"Rust
version of new lints should be
checked","comment_url":"https://github.com/rust-lang/rust-clippy/pull/14703#issuecomment-2861982576 ","author":"samueltardieu"}}}$$TRIAGEBOT_SUMMARY_DATA_END
-->
<!-- TRIAGEBOT_SUMMARY_END -->
<!-- TRIAGEBOT_END -->
2025-05-09 16:12:59 +00:00
bendn
35bdd25e32
remove superseded lints
2025-05-09 19:25:55 +07:00
relaxcn
b73d3b4384
fix issue-14725
2025-05-09 01:21:14 +08:00
Alexey Semenyuk
1fbfbb59e9
Fix integer_division false negative for NonZero denominators
2025-05-08 16:12:47 +05: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
737d3b3363
Remove some unused #![feature]s
2025-05-06 14:07:39 +00:00
yanglsh
d0af404b19
fix: manual_let_else FN when diverges on simple enum variant
2025-05-06 14:42:18 +08: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
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
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
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
yanglsh
33ea0b482c
fix: manual_slice_fill FP on IndexMut overload
2025-05-02 15:09:00 +08: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
Manish Goregaokar
549107dbad
Fix zombie_processes FP inside closures ( #14696 )
...
Closes rust-lang/rust-clippy#14677
changelog: [`zombie_processes`] fix FP inside closures
2025-04-28 15:41:40 +00:00
Jason Newcomb
542762e8af
fix: unused_unit suggests wrongly when unit never type fallback ( #14609 )
...
Closes rust-lang/rust-clippy#14577 .
Migrate this lint to late pass and avoids `unit_never_type_fallback`
since it is no longer permitted in Rust 2024.
changelog: [`unused_unit`] fix wrong suggestions when unit never type
fallback
2025-04-27 19:14:47 +00:00
Timo
0dd9722cdc
Replace some Symbol::as_str usage ( #14679 )
...
Follow up to https://github.com/rust-lang/rust-clippy/pull/14650
Replaces uses in the form `s.as_str() == "literal"`
r? @y21
changelog: none
2025-04-27 12:56:14 +00:00
yanglsh
5123ad5904
Fix zombie_processes FP inside closures
2025-04-27 16:28:06 +08:00
yanglsh
5d8fb77872
fix: unused_unit suggests wrongly when unit never type fallback
2025-04-27 15:02:49 +08:00
dswij
39a408664b
manual_div_ceil: fix suggestions when macro is involved (#14666 )
...
here is my small fix
changelog: fix suggestion span to avoid showing macro name in
`.div_ceil()` suggestion
i changed this line
`let divisor_snippet = snippet_with_applicability(cx,
rhs.spansource_callsite(), "..", applicability);`
to this line
`let divisor_snippet = snippet_with_applicability(cx, rhs.span, "..",
applicability);`
to fix problem where this warning in macro expands like this
```rust
4 | let _ = (x + 7) / 8;
| ^^^^^^^^^^^ help: consider using `.div_ceil()`: `x.div_ceil(y!())`
```
[play it
yourself](https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=397aa8cd2ffffb24a286fbddbc75446c )
as you can see here it looks like `x.div_ceil(y!())` and contains macro
signature
so i fixed this problem, i will look closely if there any more problems
like this and fix them in order
**Related issue**
fixes
[rust-lang/rust-clippy#14665 ](https://github.com/rust-lang/rust-clippy/issues/14665 )
2025-04-27 03:13:19 +00:00
dswij
58cfdb72a8
fix: equatable_if_let suggests wrongly when involving reference ( #14504 )
...
Closes #8710
changelog: [`equatable_if_let`] fix wrong suggestions when involving
reference
2025-04-26 14:52:32 +00:00
Jason Newcomb
ff307bac14
fix: unnecessary_cast suggests extra brackets when in macro ( #14643 )
...
Closes rust-lang/rust-clippy#14640
changelog: [`unnecessary_cast`] fix extra brackets in suggestions when
in macro
2025-04-26 11:55:15 +00:00
yanglsh
ad69347912
fix: equatable_if_let suggests wrongly when involving reference
2025-04-26 15:51:40 +08:00
yanglsh
3f72ffa80e
fix: unnecessary_cast suggests extra brackets when in macro
2025-04-26 15:09:04 +08:00
yuk1ty
148c9a1981
Fix error message for static references or mutable references
2025-04-26 14:48:30 +09:00
Alex Macleod
7b337f6e25
Replace some Symbol::as_str usage
2025-04-25 01:03:03 +00:00
Kivooeo
fc12b5b6d8
fix-issue-14665
2025-04-25 01:39:35 +05:00
Alex Macleod
736be8bbb1
Consistently refer to the ? operator
2025-04-24 13:40:57 +00:00