305743 Commits

Author SHA1 Message Date
bors
7c275d09ea Auto merge of #146728 - flip1995:clippy-subtree-update, r=samueltardieu
Clippy subtree update

r? `@Manishearth`

`Cargo.lock` update due to release/Clippy version bump.
2025-09-18 20:03:58 +00:00
bors
0c0c58b8e4 Auto merge of #146727 - matthiaskrgr:rollup-98812uj, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - rust-lang/rust#146434 (c-variadic: allow c-variadic inherent and trait methods)
 - rust-lang/rust#146487 (Improve `core::num` coverage)
 - rust-lang/rust#146597 (Add span for struct tail recursion limit error)
 - rust-lang/rust#146622 (Add regression test for issue rust-lang/rust#91831)
 - rust-lang/rust#146717 (Clean up universe evaluation during type test evaluation)
 - rust-lang/rust#146723 (Include patch in release notes)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-18 16:55:05 +00:00
Philipp Krones
5d1619b3ec
Update Cargo.lock 2025-09-18 17:21:54 +02:00
Philipp Krones
1bfe3bcfec
Merge commit '20ce69b9a63bcd2756cd906fe0964d1e901e042a' into clippy-subtree-update 2025-09-18 17:21:44 +02:00
Matthias Krüger
24d6259dce
Rollup merge of #146723 - Mark-Simulacrum:relnotes-fix, r=Kobzol
Include patch in release notes

This should fix triagebot publication of the GitHub release on merge.
2025-09-18 17:20:59 +02:00
Matthias Krüger
3afe1cab09
Rollup merge of #146717 - amandasystems:remove-placeholder-hack, r=lcnr
Clean up universe evaluation during type test evaluation

The logic was, as the removed comments suggest, hackish and meant to implement previous logic that was factored out. The new logic does exactly what the comments say, and is much less surprising.

I'm afraid we may want

r? `@lcnr`

for this one too.

I am sorry, but at least it should be easier to review.
2025-09-18 17:20:59 +02:00
Matthias Krüger
f28730fcd4
Rollup merge of #146622 - aklaiber:91831_add_regression_test, r=jdonszelmann
Add regression test for issue #91831

The requested test for rust-lang/rust#91831. I'm unsure about the filename, the file structure in `tests/ui/lifetimes/lifetime-errors/` isn't entirely clear to me. Any suggestions?

Closes rust-lang/rust#91831
2025-09-18 17:20:58 +02:00
Matthias Krüger
b7ab58eb4d
Rollup merge of #146597 - modhanami:add-struct-tail-recursion-limit-span, r=oli-obk
Add span for struct tail recursion limit error

Fixes rust-lang/rust#135629

Changes
1. Add span to RecursionLimitReached
2. Add ObligationCause parameter to struct_tail_raw
4. Update call sites to pass nearby ObligationCause or create one
5. Update affected .stderr
2025-09-18 17:20:57 +02:00
Matthias Krüger
fd852f4bee
Rollup merge of #146487 - ferrocene:pvdrz/improve-num-coverage, r=joboet
Improve `core::num` coverage

This PR improves the `core::num` coverage by adding a new test to `coretests`.

r? libs
2025-09-18 17:20:57 +02:00
Matthias Krüger
185926c99f
Rollup merge of #146434 - folkertdev:c-variadic-inherent-methods, r=workingjubilee
c-variadic: allow c-variadic inherent and trait methods

tracking issue: https://github.com/rust-lang/rust/issues/44930

Continuing the work of https://github.com/rust-lang/rust/pull/146342, allow inherent and trait methods to be c-variadic. However, a trait that contains a c-variadic method is no longer dyn-compatible.

There is, presumably, some way to make c-variadic methods dyn-compatible. However currently, we don't have confidence that it'll work reliably: when methods from a `dyn` object are cast to a function pointer, a `ReifyShim` is created. If that shim is c-variadic, it would need to forward the C variable argument list.

That does appear to work, because the `va_list` is not represented in MIR at all in this case, so the registers from the call site are untouched by the shim and can be read by the actual implementation. That just does not seem like a solid implementation.

Also, intuitively, why would c-variadic function, primarily needed for FFI, need to be used with `dyn` objects at all? We can revisit this limitation if a need arises.

r? `@workingjubilee`
2025-09-18 17:20:56 +02:00
Philipp Krones
20ce69b9a6
Rustup (#15704)
r? @ghost

changelog: none
2025-09-18 15:12:20 +00:00
Philipp Krones
6b14443a02
Bump Clippy version -> 0.1.92 2025-09-18 16:59:44 +02:00
Philipp Krones
2c7350269c
Bump nightly version -> 2025-09-18 2025-09-18 16:59:20 +02:00
Philipp Krones
2d3efb0f0b
Merge remote-tracking branch 'upstream/master' into rustup 2025-09-18 16:59:09 +02:00
Alejandra González
4b109ed0f4
redundant_clone: split iterator checks into redundant_iter_cloned (#15277)
Needed to split the lints crate.

changelog: split `redundant_clone` iterator checks into
`redundant_iter_cloned`

<!-- TRIAGEBOT_START -->

<!-- TRIAGEBOT_SUMMARY_START -->

### Summary Notes

-
[Feature-freeze](https://github.com/rust-lang/rust-clippy/pull/15277#issuecomment-3073454006)
by [github-actions[bot]](https://github.com/github-actions[bot])

*Managed by `@rustbot`—see
[help](https://forge.rust-lang.org/triagebot/note.html) for details*

<!-- TRIAGEBOT_SUMMARY_END -->
<!-- TRIAGEBOT_END -->
2025-09-18 14:50:18 +00:00
bors
4cd91ef822 Auto merge of #145993 - lcnr:allow-calling-opaques, r=BoxyUwU
`-Znext-solver` allow `ExprKind::Call` for not-yet defined opaques

Based on https://github.com/rust-lang/rust/pull/146329. Revival of rust-lang/rust#140496. See the comment on `OpaqueTypesJank`. I've used the following document while working on this https://hackmd.io/Js61f8PRTcyaiyqS-fH9iQ.

Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/181. It does introduce one subtle footgun we may want to handle before stabilization, opened https://github.com/rust-lang/trait-system-refactor-initiative/issues/230 for that. Also cc https://github.com/rust-lang/trait-system-refactor-initiative/issues/231 for deref and index operations

r? `@BoxyUwU`
2025-09-18 13:49:53 +00:00
Mark Rousskov
495d7ee587 Include patch in release notes
This should fix triagebot publication of the GitHub release on merge.
2025-09-18 09:41:23 -04:00
Jason Newcomb
4a8b7ea701
Do not replace .unwrap_or(vec![]) by .unwrap_or_default() (#15699)
`.unwrap_or(vec![])` is as readable as `.unwrap_or_default()`.

Also, this ensures by adding tests that expressions such as
`.unwrap_or(DEFAULT_LITERAL)` (`0`, `""`, etc.) are not replaced by
`.unwrap_or_default()` either.

Related to the discussion in the [Zulip
discussion](https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/FCP.20concealed_obvious_default)
about PR rust-lang/rust-clippy#15037.

changelog: [`unwrap_or_default`]: do not replace `.unwrap_or(vec![])` by
`.unwrap_or_default()`
2025-09-18 12:25:19 +00:00
Amanda Stjerna
2ed5373293 Clean up universe evaluation during type test evaluation
The logic was, as the removed comments suggest, hackish
and meant to implement previous logic that was factored out.
The new logic does exactly what the comments say, and is much
less surprising.
2025-09-18 14:01:39 +02:00
aklaiber
92646739fe Add regression test for issue 91831 2025-09-18 13:56:52 +02:00
lcnr
9913c47da2 add tests, silence type annotations needed errors for opaques 2025-09-18 12:58:39 +02:00
lcnr
f4e19c6878 support calls on opaque types :< 2025-09-18 12:58:38 +02:00
bors
32e3d9f59b Auto merge of #146671 - ZuseZ4:update-enzyme-submodule, r=davidtwco
update enzyme submodule

I upstreamed a few of our rust-lang/Enzyme patches, so I could drop them in our fork.

r? compiler
2025-09-18 10:39:43 +00:00
Samuel Tardieu
ad21dff50a
Do not replace .unwrap_or(vec![]) by .unwrap_or_default()
`.unwrap_or(vec![])` is as readable as `.unwrap_or_default()`.
2025-09-18 12:24:37 +02:00
Samuel Tardieu
68473ad11b
Check that .unwrap_or(LITERAL) doesn't trigger unwrap_or_default 2025-09-18 12:24:37 +02:00
Samuel Tardieu
8428b166b2
Remove feature-freeze from gh templates (#15698)
ping rust-lang/rust-clippy#15690

changelog: none
2025-09-18 10:09:00 +00:00
lukaslueg
72fb9b28a6 Remove feature-freeze from gh templates 2025-09-18 11:51:29 +02:00
bors
97a987f14c Auto merge of #142544 - Sa4dUs:prevent-abi-changes, r=ZuseZ4
Prevent ABI changes affect EnzymeAD

This PR handles ABI changes for autodiff input arguments to improve Enzyme compatibility. Fundamentally this adjusts activities when a function argument is lowered as an `ScalarPair`, so there's no mismatch between diff activities and args. Also removes activities corresponding to ZSTs.

fixes: https://github.com/rust-lang/rust/issues/144025

r? `@ZuseZ4`
2025-09-18 07:32:49 +00:00
Alejandra González
a3c7f63028
Remove automatic feature freeze comment (#15690)
The feature freeze period is over.

changelog: none
2025-09-18 07:29:36 +00:00
Manish Goregaokar
e1130b694a
fix option_if_let_else when Err variant is ignored (#14429)
This fixes an issue where clippy suggests passing a function that takes
no arguments as the first argument of `Result::map_or_else`. The
function needs to take one argument. Example that triggers the issue:
[Playground
link](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=0b6f9bc7b6ab4dcd26745065544e0b8a)

Fixes #10335.

changelog: [`option_if_let_else`]: fix incorrect suggestion when the
contents of an `Err` variant are ignored
2025-09-18 05:00:41 +00:00
bors
4793ef5cf5 Auto merge of #146698 - Zalathar:rollup-0oxl4gx, r=Zalathar
Rollup of 5 pull requests

Successful merges:

 - rust-lang/rust#146566 (Lint more overlapping assignments in MIR.)
 - rust-lang/rust#146645 (Cleanup `FnDecl::inner_full_print`)
 - rust-lang/rust#146664 (Clean up `ty::Dynamic`)
 - rust-lang/rust#146673 (cg_llvm: Replace some DIBuilder wrappers with LLVM-C API bindings (part 4))
 - rust-lang/rust#146694 (Remove ImplSubject)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-18 04:25:54 +00:00
Daniel Gulotta
15ce2093d5 test cases for option_if_let_else 2025-09-17 20:39:20 -07:00
Stuart Cook
06cbfd6706
Rollup merge of #146694 - camsteffen:impl-subject, r=compiler-errors
Remove ImplSubject

It only has one usage in rustdoc.
2025-09-18 11:48:52 +10:00
Stuart Cook
d1ed8d4311
Rollup merge of #146673 - Zalathar:di-builder, r=nnethercote
cg_llvm: Replace some DIBuilder wrappers with LLVM-C API bindings (part 4)

- Part of rust-lang/rust#134001
- Follow-up to rust-lang/rust#146631

---

This is another batch of LLVMDIBuilder binding migrations, replacing some our own LLVMRust bindings with bindings to upstream LLVM-C APIs.
2025-09-18 11:48:52 +10:00
Stuart Cook
540fd20ba6
Rollup merge of #146664 - fmease:clean-up-dyn, r=jdonszelmann
Clean up `ty::Dynamic`

1. As a follow-up to PR rust-lang/rust#143036, remove `DynKind` entirely.
2. Inside HIR ty lowering, consolidate modules `dyn_compatibility` and `lint` into `dyn_trait`
   * `dyn_compatibility` wasn't about dyn compatibility itself, it's about lowering trait object types
   * `lint` contained dyn-Trait-specific diagnostics+lints only
2025-09-18 11:48:51 +10:00
Stuart Cook
34a805b0f5
Rollup merge of #146645 - yotamofek:pr/rustdoc/fndecl_inner_full_print, r=fmease
Cleanup `FnDecl::inner_full_print`

`inner_full_print` was pretty hard to follow IMHO.
Hopefully this cleans it up a little bit.

Also, it was checking whether `self.inputs` is empty twice, and then handling an unreachable match arm:
f836ae4e66/src/librustdoc/html/format.rs (L1368C1-L1368C33)
`last_input_index` could only be `None` if the fn has no parameters, in which case the loop body would never run.

r? ``@GuillaumeGomez`` if you have the capacity :)

BTW, can we rename `FnDecl::inputs` to `parameters` or something? And `output` to `return_ty`?
2025-09-18 11:48:50 +10:00
Stuart Cook
d5aa8d5e5e
Rollup merge of #146566 - cjgillot:mir-overlap-lint, r=saethlin
Lint more overlapping assignments in MIR.

In an effort to make bugs like https://github.com/rust-lang/rust/issues/146383 more easily discovered, this PR extends the "overlapping assignment" MIR lint.

I had to whitelist some rvalues, as they are actually allowed to alias, like `a = a + 1`.
2025-09-18 11:48:50 +10:00
Cameron Steffen
9ecca51bbe Remove ImplSubject 2025-09-17 18:37:35 -05:00
Jason Newcomb
a67fe9c35d
Do not look for Cargo.toml inside target (#15692)
This test, which checks that we do not define new profiles directly in
Clippy's multiple `Cargo.toml` files, must not look inside `target` as
`lintcheck` might place some third-party sources there. Of course those
third-party sources are allowed to define profiles in their
`Cargo.toml`.

changelog: none
2025-09-17 23:31:32 +00:00
Samuel Tardieu
7a5f0bdd5d
Remove jujutsu directory from search tools. (#15695)
This prevents ripgrep from searching the directory by default.

changelog: none
2025-09-17 21:36:50 +00:00
bors
93117677d8 Auto merge of #146685 - jdonszelmann:rollup-kwuih4z, r=jdonszelmann
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#146458 (Add parallel-frontend-threads to bootstrap.toml and enable multi-threaded parallel compilation)
 - rust-lang/rust#146485 (Remove unsized arg handling in `ArgAbiBuilderMethods::store_fn_arg` implementations)
 - rust-lang/rust#146536 (clean up several trait related UI tests)
 - rust-lang/rust#146598 (Make llvm_enzyme a regular cargo feature)
 - rust-lang/rust#146647 (Move `#[rustc_coherence_is_core]` to the `crate_level` file)
 - rust-lang/rust#146654 (Do not use `git -C dir`)
 - rust-lang/rust#146681 (Add space after brace in `Box<[T]>::new_uninit_slice` example)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-09-17 21:26:50 +00:00
Camille Gillot
912785d966 Lint overlapping assignments in MIR. 2025-09-17 21:12:17 +00:00
Jason Newcomb
80db273b64 Remove jujutsu directory from search tools. 2025-09-17 16:34:12 -04:00
Jana Dönszelmann
c6ed4c0442
Rollup merge of #146681 - XrXr:patch-1, r=joboet
Add space after brace in `Box<[T]>::new_uninit_slice` example

Trivial cosmetic change.
2025-09-17 20:29:38 +02:00
Jana Dönszelmann
b8a80e4f79
Rollup merge of #146654 - samueltardieu:issue142534, r=Kobzol
Do not use `git -C dir`

Older versions of git (≤ 1.8.5) do not support the `-C dir` global option. Use the `cwd` optional argument when using Python's `subprocess` functionality instead.

Fix rust-lang/rust#142534
2025-09-17 20:29:38 +02:00
Jana Dönszelmann
be8c29ccf2
Rollup merge of #146647 - jdonszelmann:move-coherence-is-core, r=urgau
Move `#[rustc_coherence_is_core]` to the `crate_level` file

I implemented this one without realizing it already was since it was (in my opinion) in the wrong file and implemented in a batch of all non-crate-level attributes. This commit just cleans it up slightly and moves it. Should be trivial

r? `@oli-obk`
2025-09-17 20:29:36 +02:00
Jana Dönszelmann
9303a924f4
Rollup merge of #146598 - bjorn3:feature_llvm_enzyme, r=davidtwco
Make llvm_enzyme a regular cargo feature

This makes it clearer that it is set by the build system rather than by the rustc that compiles the current rustc. It also avoids bootstrap needing to pass `--check-cfg llvm_enzyme` to rustc.
2025-09-17 20:29:36 +02:00
Jana Dönszelmann
1c1d5c71e0
Rollup merge of #146536 - omskscream:#133895/clean-ui-tests, r=davidtwco
clean up several trait related UI tests

Part of rust-lang/rust#133895
Cleaned up several `issue-xxxx` trait related tests from `/tests/ui/issues`, one commit per issue for review. Will squash them once approved.

Related issues:
rust-lang/rust#19479
rust-lang/rust#2284
rust-lang/rust#18088
rust-lang/rust#21950
2025-09-17 20:29:35 +02:00
Jana Dönszelmann
802343fa47
Rollup merge of #146485 - zachs18:store_fn_arg-no-unsized, r=davidtwco
Remove unsized arg handling in `ArgAbiBuilderMethods::store_fn_arg` implementations

... since it is unreachable and would ICE anyway.

These branches are unreachable with how `store_fn_arg` is currently used (where it is called, unsized arguments are either: 1. not (yet) supported, or 2. handled differently)[^1], and even if they were reachable, they would ICE anyway, since they call [`OperandValue::store`](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_codegen_ssa/mir/operand.rs.html#855-861), which calls [`OperandValue::store_with_flags`](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_codegen_ssa/mir/operand.rs.html#887-926) which [panics on any unsized layout](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_codegen_ssa/mir/operand.rs.html#900-903).

Also updates the `bug!` message in `store_arg` to not suggest `store_fn_arg` for unsized args.

[^1]: `store_fn_arg` is only nontrivially[^2] called in `compiler/rustc_codegen_ssa/src/mir/mod.rs` for: Line 428 `extern "rust-call"` tuple (un)splitting, which does not support unsized arguments, Line 496 which is only for sized `PassMode::Indirect` (`meta_attrs: None`) arguments, and Line 521 which is only for non-`PassMode::Indirect` arguments which can never be unsized.

[^2]: `<Bx as ArgAbiBuilderMethods>::store_fn_arg` is what is actually called, but codegen_llvm and codegen_gcc's builders both delegate to their own `codegen_crate::ArgAbiExt::store_fn_arg`, which contain the actual implementations that are changed in this PR.
2025-09-17 20:29:35 +02:00
Jana Dönszelmann
0a2be63cf6
Rollup merge of #146458 - Hayden602:bootstrap, r=Kobzol
Add parallel-frontend-threads to bootstrap.toml and enable multi-threaded parallel compilation

Add the option to use the parallel compiler when building Rust code in bootstrap.
2025-09-17 20:29:34 +02:00