Commit graph

22138 commits

Author SHA1 Message Date
Yuri Astrakhan
1d890389ff Move uninlined_format_args to style
This lint was downgraded to `pedantic` in part because rust-analyzer was not fully supporting it at the time per #10087. The support has been added over [a year ago](https://github.com/rust-lang/rust-analyzer/issues/11260), so seems like this should be back to style.

Another source of the initial frustration was fixed since then as well - this lint does not trigger by default in case only some arguments can be inlined.
2025-03-25 10:27:19 -04:00
Alejandra González
f5d81a314a
Fix type error in lint description (#14466)
Fix #14465

changelog: none
2025-03-25 12:25:57 +00:00
Timo
d88818d1e7
Rename inconsistent_struct_constructor configuration; don't suggest deprecated configurations (#14280)
This PR does two things:
- It renames `inconsistent_struct_constructor`'s configuration from
`lint-inconsistent-struct-field-initializers` to
`check-inconsistent-struct-field-initializers`. (I should have suggested
`check-...` in
[#13737](https://github.com/rust-lang/rust-clippy/pull/13737#discussion_r1875118516).)
- It causes Clippy to no longer suggest deprecated configurations.
(Previously, Clippy would suggest `cyclomatic-complexity-threshold`, for
example.)

r? @y21

changelog: Rename `lint-inconsistent-struct-field-initializers` to
`check-inconsistent-struct-field-initializers`
changelog: No longer suggest deprecated configurations
2025-03-25 11:56:47 +00:00
Samuel Tardieu
ca48e461a9
Add myself to reviewer rotation (#14468)
changelog: none
2025-03-25 10:24:29 +00:00
Samuel Tardieu
b7cbb4ec8c Add myself to reviewer rotation 2025-03-25 11:19:16 +01:00
Samuel Tardieu
de8c404ed4 Fix type error in lint description 2025-03-25 09:44:48 +01:00
Samuel Tardieu
0ff7fad3da
Use code for references to other lints in as_conversions docs (#14283)
changelog: none
2025-03-25 08:37:36 +00:00
Timo
9c6cb5150f
wildcard_imports: lint on pub use if asked to (#14182)
`warn_on_all_wildcard_imports` should warn on all wildcard imports,
including the reexported ones.

Fix #13660

changelog: [`warn_on_all_wildcard_imports`]: when asked to warn on all
wildcard imports, include the reexported ones
2025-03-25 00:08:45 +00:00
Samuel Tardieu
809c931804 wildcard_imports: lint on pub use if asked to
`warn_on_all_wildcard_imports` should warn on all wildcard imports,
including the reexported ones.
2025-03-24 15:49:29 +01:00
Samuel Moelius
315e9aa79f Don't check deprecated configs in configs_are_tested test 2025-03-24 09:06:13 -04:00
Samuel Moelius
969b5ad65c Don't suggests deprecated congurations 2025-03-23 15:25:27 -04:00
Samuel Moelius
88b590bf46 lint-inconsistent-... -> check-inconsistent-... 2025-03-23 15:22:37 -04:00
Alex Macleod
b27a2bbe26
Clarify example for unconditional_recursion (#14385)
Clarify example for unconditional_recursion

changelog: none
2025-03-23 13:49:21 +00:00
Philipp Krones
e9aed8764e
set concurrency for the deploy job (#14448)
In the current GitHub Actions CI/CD setup, the `deploy` job is not
triggered when a PR is enqueued in the merge queue but only when it is
merged. Since concurrency is not configured for this job, deployments
may fail for later PRs if multiple PRs are merged in quick succession.
(e.g. the deployment for [this
commit](c418714518)
was successful, but the deployment for [this
commit](0a141ab7b8)
that was pushed to `main` immediately afterward failed. (edit: the
latter deployment seems to be rerun))

changelog: none

r? flip1995
2025-03-23 12:15:07 +00:00
lapla-cogito
3786c07463
remove the notation of the deploy job 2025-03-23 21:09:28 +09:00
lapla-cogito
d8dff61275
set concurrency for the deploy job 2025-03-23 21:08:41 +09:00
Philipp Krones
07e7414fb1
fix: nonminimal_bool wrongly showed the macro definition (#14424)
Closes #14404

changelog: [`nonminimal_bool`]: fix macro definition wrongly showed in
suggestions.
2025-03-23 11:19:41 +00:00
Philipp Krones
cad9083d71
Lint more cases in collapsible_if (#14231)
Replace the use of `Sugg::ast()` which prevented combining `if` together
when they contained comments by span manipulation.

A new configuration option `lint_commented_code`, which is `true` by
default, allows opting out from this behavior.

If reviewed on GitHub, the second commit of this PR is best looked at
side by side, with whitespace differences turned off.

changelog: [`collapsible_if`]: lint more cases
2025-03-23 11:17:46 +00:00
alexey semenyuk
63e7815390 Fix example for unconditional_recursion 2025-03-23 13:28:36 +05:00
Alex Macleod
c033a4c741
Document and improve (a lot) lintcheck --perf (#14194)
In #14116 we added a benchmarking option for Lintcheck, this commit adds
a new chapter to the book AND improves that option into a more usable
state.

It's recommended to review one commit at a time.

- **Document how to benchmark with lintcheck --perf**
- **Several improvements on lintcheck perf (desc.)**

    - Now lintcheck perf deletes target directory after benchmarking,
benchmarking with a cache isn't very useful or telling of any
precise outcome.

    - Support for benchmarking several times without having to do
a cargo clean.

    - Compress perf.data

changelog: none
2025-03-23 00:01:53 +00:00
Alex Macleod
6166f60617
Add ignore_without_reason lint (#13931)
Closes #13066 (tests that are ignored with no reason message).

changelog: Add `ignore_without_reason` lint
2025-03-22 14:56:43 +00:00
Jason Newcomb
a65cc366f2
Add regression tests for suspicious_doc_comments (#14268)
Related to #14265 which was fixed automatically by the latest rustup.

changelog: none

*Edit: description, changelog, keep only tests*
2025-03-22 14:38:26 +00:00
Jason Newcomb
b41f2e4653
Emit collapsible_match at the right node (#14311)
Fixes https://github.com/rust-lang/rust-clippy/issues/14281

changelog: none
2025-03-22 14:35:24 +00:00
yanglsh
282b61b641 fix: nonminimal_bool wrongly showed the macro definition 2025-03-22 22:20:22 +08:00
Jason Newcomb
d9934328dd
set the applicability of op_ref to MachineApplicable (#14438)
#2597 appears to be already resolved, so the applicability of `op_ref`
can be set to `MachineApplicable`.

close #2597

changelog: [`op_ref`]: set the applicability to `MachineApplicable`
2025-03-22 14:16:52 +00:00
Samuel Tardieu
82381608c9 Lint more cases in collapsible_if
Replace the use of `Sugg::ast()` which prevented combining `if`
together when they contained comments by span manipulation.

A new configuration option `lint_commented_code`, which is `true` by
default, opts out from this behavior.
2025-03-22 15:12:42 +01:00
Philipp Krones
e8e0126c18
Add comment annotations (#14414)
Fix missing comment annotations in the clippy book

changelog: none
2025-03-22 13:32:51 +00:00
Philipp Krones
cdf2e7c73c
fix: borrow_deref_ref suggests wrongly when coerce to mut (#14403)
Closes #11346.
Partially fix #9905. The first case in this issue is a little tricky as
the coerce does not happen in the borrowing.

changelog: [`borrow_deref_ref`]: fix wrong suggestions when coerce to
mut
2025-03-22 13:19:42 +00:00
Philipp Krones
37e1b80447
fix: manual_find suggests wrongly when early return (#14405)
Closes #9521

changelog: [`manual_find`]: fix wrong suggestions when early return
2025-03-22 13:16:11 +00:00
Philipp Krones
d5a6688092
Use a lintcheck specific Clippy configuration file in the CI (#14233)
By default, lintcheck will use the `clippy.toml` file found at the
toplevel of the repository (`CARGO_MANIFEST_DIR`). This file is meant
for configuration of Clippy applied to Clippy sources.

This creates a new `lintcheck/ci-config/clippy.toml` file which is used
by the CI when running lintcheck. By default this uses the default
Clippy configuration.

changelog: none
2025-03-22 12:23:32 +00:00
Samuel Moelius
5b234c965d Change category to pedantic 2025-03-21 11:10:49 -04:00
dswij
0a141ab7b8
fix: redundant_clone FP on enum cast (#14395)
Closes #10074

changelog: [`redundant_clone`]: fix FP on enum cast
2025-03-21 14:23:52 +00:00
dswij
c418714518
expand neg_multiply to lint float numbers as well (#14447)
changelog: [`neg_multiply`]: lint float numbers as well
2025-03-21 14:22:17 +00:00
lapla-cogito
da4f5a58a9
expand neg_multiply to lint float numbers as well 2025-03-21 21:20:39 +09:00
Alejandra González
7a92626ec2
fix: filter_map_bool_then suggest wrongly when the closure cannot be decompose directly (#14370)
Closes #11617
Closes #14368

Clippy gives wrong suggestions when the filter and then cannot be put
into closure directly. Since trying to transform these can be too
complicated, Clippy will simply warn but don't try to fix.

changelog: [`filter_map_bool_then`]: fix wrong suggestions when the
closure cannot be decompose directly
2025-03-21 12:09:12 +00:00
Philipp Krones
90f5f559be
rename rust-toolchain to rust-toolchain.toml (#14442)
The configuration of the toolchain using `rust-toolchain` is only
retained for backward compatibility, and it is recommended to explicitly
specify the TOML format, as in `rust-toolchain.toml`.

r? flip1995

(This is because the change affects the sync process, and you are the
one responsible for sync (I believe).)

changelog: none
2025-03-21 10:20:59 +00:00
yanglsh
3f9ecbe341 fix: filter_map_bool_then: suggests wrongly when mut capture in then 2025-03-21 12:55:18 +08:00
yanglsh
721ac284de fix: filter_map_bool_then suggest wrongly when contain return 2025-03-21 12:55:18 +08:00
Samuel Moelius
475d10d3b0 Add test annotation 2025-03-20 21:02:35 -04:00
Samuel Moelius
aadda46752 Add ignore_without_reason lint 2025-03-20 21:02:33 -04:00
lapla-cogito
19c7c46d48
rename rust-toolchain to rust-toolchain.toml 2025-03-21 09:37:59 +09:00
Timo
1e5237f4a5
fix: missing_const_for_fn FP on unstable const traits (#14294)
Closes #14020
Closes #14290
Closes #14091

Add checks for unstable const traits.

changelog: [`missing_const_for_fn`] fix FP on unstable const traits
2025-03-20 20:00:15 +00:00
Philipp Krones
d1d0fee887
Rustup (#14445)
r? @ghost

changelog: none
2025-03-20 19:52:14 +00:00
Philipp Krones
a086879e21
Bump nightly version -> 2025-03-20 2025-03-20 20:47:10 +01:00
Philipp Krones
dc4c77608e
Merge remote-tracking branch 'upstream/master' into rustup 2025-03-20 20:46:36 +01:00
Timo
f2feb0f1a9
make never_loop applicability more flexible (#14203)
The applicability of `never_loop` is currently set to `Unspecified`, but
if the loop block does not contain `break` or `continue`, it can be
`MachineApplicable`.

changelog: [`never_loop`]: the applicability is now `MachineApplicable`
when the loop block contains neither `break` nor `continue`
2025-03-20 15:18:29 +00:00
Timo
221ae5f176
fix suggestion for assignments have enclosing parentheses under needless_late_init (#14169)
fixes #9895

changelog: [`needless_late_init`]: correct suggestion when assignments
have enclosing parentheses
2025-03-19 22:51:38 +00:00
Manish Goregaokar
48ce25ea0e
Add MSRV check for question_mark (#14436)
changelog: [`question_mark`]: Now respects the [`msrv`] configuration
2025-03-19 15:56:45 +00:00
Alejandra González
31497d68fb
fix: option_if_let_else FP when value partially moved (#14209)
fixes #13964

The lint `option_map_unwrap_or` used to have a similar issue in #10579,
so I borrowed its solution to fix this one.

changelog: [`option_if_let_else`]: fix FP when value partially moved
2025-03-19 15:34:53 +00:00
lapla-cogito
a463154bf0
set the applicability of op_ref to MachineApplicable 2025-03-19 21:37:42 +09:00