Skip to content

Rollup of 9 pull requests - #163987

Closed
JonathanBrouwer wants to merge 20 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-8BnETKQ
Closed

JonathanBrouwer wants to merge 20 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-8BnETKQ

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

ada4a and others added 20 commits September 30, 2026 13:41
When `TypeVisitable` is implemented but `GenericTypeVisitable` isn't,
the lint (which we'll add soon) recommends adding
`#[derive(GenericTypeVisitable)]`. However, this suggestion is incorrect
for types whose impls ought to be trivial. There, the problem occurs
because the type was added to `TrivialTypeTraversalImpls!` in
`macros.rs`, which added the `TypeVisitable` impl, but wasn't added to
`trivial_impls!` in `generic_visit.rs`, such that the
`GenericTypeVisitable` impl wasn't added.

Imo, the root cause of this problem is that we have two separate macros
for adding trivial impls. So this commit merges them into one, by making
`TrivialTypeTraversalImpls!` add a `GenericTypeVisitable` impl as well.

RE: `Variance`: its `GenericTypeVisitable` impl is now provided by
`TrivialTypeTraversalImpls!`, making the derive unnecessary.

RE: `rustc_hash::FxBuildHasher`: its `GenericTypeVisitable` impl ended
up being removed, because `TypeVisitable` can't be implemented due to it
not implemnting `Debug`. This shouldn't be a problem however, as
`{Generic,}TypeVisitable` should always be implemented in pairs anyway.
I confirmed this by removing the impl from `ra-ap-rustc_type_ir` and
`cargo check`-ing r-a.
The missing impl for arrays was (indirectly) highlighted by the test
suite, the rest -- by the `#[deny]`
Signed-off-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
…ff, r=bjorn3

Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports

rust-lang#163188 handled Arm64EC's `#` mangling in `symbol_edit`, but COFF decoration support there
was still incomplete: matching against exported symbols only stripped the i686 `_` prefix,
so `stdcall`/`fastcall`/`vectorcall` exports were wrongly treated as internal and renamed.
`link.rs` already had the full undecoration, so this shares it as
`symbol_export::undecorate_coff_symbol`, uses it from both places, and covers the
decorated calling conventions in the run-make test.

LLM disclosure: Initially, I mistakenly over-scoped the extraction of the shared undecorate logic; the LLM helped me narrow the scope and ultimately pinpoint a single function, and I am currently using the streamlined version it suggested. Additionally, the LLM assisted me in designing the specific test functions within `decorated_lib.rs`.

r? @bjorn3
…i-obk

Include enclosing item's context on const errors

On const errors, when they occur on an item that might be relevant, like in an associated const, render the line of the enclosing item in the error:

```
error[E0080]: evaluation panicked: not yet implemented
  --> $DIR/ice-normalize-inherent-assoc-const.rs:10:28
   |
LL | impl Foo {
LL |     const ASSOC_C: usize = todo!();
   |                            ^^^^^^^ evaluation of `Foo::ASSOC_C` failed here
```
```
error[E0080]: writing to ALLOC$ID which is read-only
  --> $DIR/issue-100313.rs:18:5
   |
LL | const _: () = {
LL |     let x = T::<{ &true }>;
LL |     x.set_false();
   |     ^^^^^^^^^^^^^ evaluation of `_` failed inside this call
   |
note: inside `T::<&true>::set_false`
  --> $DIR/issue-100313.rs:11:13
   |
LL | impl<const B: &'static bool> T<B> {
LL |     const fn set_false(&self) {
LL |         unsafe {
LL |             *(B as *const bool as *mut bool) = false;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the failure occurred here
```
…obzol

Run LLDB debuginfo tests on `x86_64-mingw`

Just like rust-lang#163090 but for `windows-gnu`

r? @Kobzol, @jieyouxu
…le, r=JonathanBrouwer

Add `rustc::missing_generic_type_visitable` lint

Best reviewed commit-by-commit.

The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions.

r? @JonathanBrouwer
cc @rust-lang/rust-analyzer
mips: make `Complex<T>` ABI match GCC

tracking issue: rust-lang#154023

The implementation is consistent with GCC and clang 24 (but not clang <= 23). Validated with abi-cafe.

r? beetrees
…e-closures, r=oli-obk

reject non-async coroutine closures as async callables

fixes rust-lang/trait-system-refactor-initiative#302

reject non-async coroutine closures in async callable extraction
…ke-2-partial, r=oli-obk

only make `RustaceansAreAwesome` satisfy trait clauses

Fixes rust-lang#163550 but unfortunately partially un-fixes a variant of rust-lang#161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later.

The variant in question:
```rust
trait HasAssoc {
    type Assoc;
}

trait Parent<T> {}

trait Trait
where
    (Self,): HasAssoc<Assoc = str>,
    Self: Parent<<<(Self,) as HasAssoc>::Assoc as ToOwned>::Owned>,
{
    fn f(&self);
    //~^ ERROR: the trait bound `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Clone` is not satisfied
    //~| NOTE: required for `<(RustaceansAreAwesome,) as HasAssoc>::Assoc` to implement `ToOwned`
}
```
This fails to prove `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Owned` because it can't normalize that alias to `str`. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.
Condense AdtDef lang item checks into one match

Trading one hash table lookup for 8 array element accesses. Efficiency wise probably not useful, but the code is nicer imo
…features, r=folkertdev

Add `bf16` to arm features

A 32bit armv8 target can have support for `bf16`

r? folkertdev
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 8, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-explicit_tail_calls `#![feature(explicit_tail_calls)]` S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Oct 8, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3

@rust-bors

rust-bors Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 6881284 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 8, 2026
rust-bors Bot pushed a commit that referenced this pull request Oct 8, 2026
Rollup of 9 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-aarch64-gnu-llvm-22-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@rust-bors

rust-bors Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

⌛ Testing commit 6881284 with merge 58cb7fa...

Workflow: https://github.com/rust-lang/rust/actions/runs/37786359889

rust-bors Bot pushed a commit that referenced this pull request Oct 8, 2026
…uwer

Rollup of 9 pull requests

Successful merges:

 - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports)
 - #163855 (Include enclosing item's context on const errors)
 - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`)
 - #163538 (Add `rustc::missing_generic_type_visitable` lint)
 - #163617 (mips: make `Complex<T>` ABI match GCC)
 - #163832 (reject non-async coroutine closures as async callables)
 - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses)
 - #163974 (Condense AdtDef lang item checks into one match)
 - #163979 (Add `bf16` to arm features)

Failed merges:

 - #163972 (const-eval: ICE when we hit a non-const fn)
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

6 queued checks stuck

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 8, 2026
@rust-bors

rust-bors Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved due to being closed.

Auto build was cancelled due to the PR being closed. Cancelled workflows:

@rust-bors

rust-bors Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 5144f24 (5144f246558526bcef7fc76bcf329415773363fa)
Base parent: fc2324d (fc2324d0546aa6782c45b76247266a0c37db0b8a)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-explicit_tail_calls `#![feature(explicit_tail_calls)]` rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.