Skip to content

Rollup of 4 pull requests - #163139

Merged
rust-bors[bot] merged 17 commits into
rust-lang:mainfrom
Zalathar:rollup-lu4guFo
Sep 22, 2026
Merged

rust-bors[bot] merged 17 commits into
rust-lang:mainfrom
Zalathar:rollup-lu4guFo

Conversation

@Zalathar

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

lcnr and others added 17 commits September 21, 2026 12:03
Account for receivers with arbitrary self types to suggest idiomatic code.

```
error[E0038]: the trait `Fetcher` is not dyn compatible
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:19:21
   |
LL | fn fetcher() -> Box<dyn Fetcher> {
   |                     ^^^^^^^^^^^ `Fetcher` is not dyn compatible
   |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:16
   |
LL | pub trait Fetcher: Send + Sync {
   |           ------- this trait is not dyn compatible...
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                ^^^^^^^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on
help: consider changing method `get`'s `self` parameter to be `&self`
   |
LL -     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL +     fn get<'a>(&'a self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |
```

Instead of

```
help: consider changing method `get`'s `self` parameter to be `&self`
   |
LL -     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL +     fn get<'a>(self: &Self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |
```
…oyuVanilla

Tweak dyn compatibility error when pointing at receiver

Account for receivers with arbitrary self types to suggest idiomatic code.

```
error[E0038]: the trait `Fetcher` is not dyn compatible
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:19:21
   |
LL | fn fetcher() -> Box<dyn Fetcher> {
   |                     ^^^^^^^^^^^ `Fetcher` is not dyn compatible
   |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:16
   |
LL | pub trait Fetcher: Send + Sync {
   |           ------- this trait is not dyn compatible...
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                ^^^^^^^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on
help: consider changing method `get`'s `self` parameter to be `&self`
   |
LL -     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL +     fn get<'a>(&'a self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |
```

Instead of

```
help: consider changing method `get`'s `self` parameter to be `&self`
   |
LL -     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL +     fn get<'a>(self: &Self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |
```
…nsafe_cell, r=WaffleLapkin

Make CovariantUnsafeCell actually covariant

The "test" in `core` was not actually being run, due to core being weird. (filed rust-lang#163045 to track that)

The existing mechanism for inserting variance manually was only *priming* the solver, which happened to work for the other two types using this mechanism, but does not work for weakening variance explicitly. I changed this mechanism to additionally prevent the variance from being updated when solving.

This blocks rust-lang#159838

r? @WaffleLapkin as the implementor of `CovariantUnsafeCell`
…rcote

`rustc_builtin_macros` cleanup, part 5

This PR among other things removes the "mini" version of `Path`, the `nonselflike_args` and most of the usages of `type_ident`. It also comes with some perf gains.
Followup to rust-lang#162925.

r? @nnethercote
…nwhite

normalize normalizes, avoid next-solver hack

we changed normalization to actually normalize with the new solver, this is now unnecessary :>

r? adwinwhite or sth
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 22, 2026
@rustbot rustbot added 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-libs Relevant to the library team, which will review and decide on the PR/issue. labels Sep 22, 2026
@Zalathar

Copy link
Copy Markdown
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 142a420 has been approved by Zalathar

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 Sep 22, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 22, 2026
@rust-bors

rust-bors Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: Zalathar
Duration: 2h 58m 32s
Pushing c4a0daa to main...

@rust-bors
rust-bors Bot merged commit c4a0daa into rust-lang:main Sep 22, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 88638df (parent) -> c4a0daa (this PR)

Test differences

Show 30 test diffs

Stage 1

  • [ui (polonius)] tests/ui/variance/covariant_unsafe_cell_is_covariant.rs: [missing] -> pass (J0)
  • [ui] tests/ui/variance/covariant_unsafe_cell_is_covariant.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/variance/covariant_unsafe_cell_is_covariant.rs: [missing] -> pass (J2)

Additionally, 27 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c4a0daaae030c07b6839c074364618192dee3873 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-x86_64-msvc-1: 2h 57m -> (-100.0%)
  2. test-x86_64-gnu-miri: 51m 49s -> 1h 28m (+70.3%)
  3. test-x86_64-gnu-aux: 1h 35m -> 2h 36m (+64.1%)
  4. dist-x86_64-mingw: 1h 48m -> 2h 49m (+56.2%)
  5. test-x86_64-gnu-nopt: 1h 37m -> 2h 30m (+53.5%)
  6. dist-various-1: 33m 51s -> 50m 57s (+50.5%)
  7. dist-arm-linux-gnueabi: 1h 1m -> 1h 31m (+48.0%)
  8. dist-i686-mingw: 36m 14s -> 53m 6s (+46.6%)
  9. dist-powerpc64-linux-gnu: 1h 3m -> 1h 32m (+46.5%)
  10. test-x86_64-gnu-llvm-21: 36m 24s -> 53m 4s (+45.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@Zalathar
Zalathar deleted the rollup-lu4guFo branch September 22, 2026 05:06
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (c4a0daa): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.6% [-3.8%, -1.1%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.6% [-3.8%, -1.1%] 3

Cycles

Results (primary 3.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
10.1% [10.1%, 10.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.8% [-2.8%, -2.8%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.7% [-2.8%, 10.1%] 2

Binary size

Results (primary 0.0%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 11
Regressions ❌
(secondary)
0.0% [0.0%, 0.1%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.1%] 11

Bootstrap: 487.826s -> 487.214s (-0.13%)
Artifact size: 406.29 MiB -> 406.37 MiB (0.02%)

@rust-bors

rust-bors Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163049 Tweak dyn compatibility error when pointing at receiver 37bd498dcd86cad98f439002201fbdd026b94c75
(link)
#163051 Make CovariantUnsafeCell actually covariant 54e23e63d5c8fc0562ae279db5c8f51666a3d1b6
(link)
#163080 rustc_builtin_macros cleanup, part 5 bcb0d2af1f307d2f239521f70562f2b15233addf
(link)
#163100 normalize normalizes, avoid next-solver hack 3d738e8d767bce53677c96d9907bdd0d66b4185e
(link)

parent commit: 88638df1e7

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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

Labels

merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants