Skip to content

Rollup of 6 pull requests - #161642

Merged
rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ItuqkE6
Aug 24, 2026
Merged

Rollup of 6 pull requests#161642
rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ItuqkE6

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

cyrgani and others added 15 commits August 16, 2026 10:01
This also cleans up some legacy runner configurations that aren't
currently used. We can always restore these if needed and it's
distracting when trying to identify what GitHub large runners are
getting used.

dist-alt.sh does less (no opt-dist) so we run it on a less powerful EC2
instance.
…sociated functions

Explains that a method without `self` cannot be dispatched through
a trait object's vtable, and that `where Self: Sized` explicitly
opts a method out of dyn-compatibility requirements.
… trait bound

extends the remove-this-semicolon suggestion for `-> impl Trait` bodies (rust-lang#81407, rust-lang#95758) to closure arguments. only fires when the type behind the semicolon satisfies the failed bound, never when several closure arguments qualify.

before:

error[E0277]: the trait bound (): Bar is not satisfied
6 |     bar(|| { 5u8; })
  |     ^^^^^^^^^^^^^^^^ the trait Bar is not implemented for ()

after:

error[E0277]: the trait bound (): Bar is not satisfied
6 |     bar(|| { 5u8; })
  |     ^^^^^^^^^----^^^
  |     |        |  |
  |     |        |  help: remove this semicolon
  |     |        this expression has type u8, which implements Bar
  |     the trait Bar is not implemented for ()

fixes rust-lang#54771
match the failed predicate against the `FnOnce::Output` projection of the
parameter the closure is passed as, so unrelated params inferred as `()` no
longer fire. share the gates with the function case, downgrade to `MaybeIncorrect`.
the WhereClauseInExpr cause code carries the def id of any item named in an
expression, not only a called function, so the closure lookup could reach
fn_sig with an associated const or a type alias and ICE. bail out unless the
def kind is a function.

rename the shared emitter to emit_semicolon_removal_suggestion so it does not
read like the suggest_semicolon_removal entry point, and follow the
ty::PolyTraitPredicate to ty::PolyTraitClause rename from master.
…-closures, r=chenyukang

fix: suggest removing a trailing semicolon when a closure argument fails a trait bound

extends the remove-this-semicolon suggestion for `-> impl Trait` bodies (rust-lang#81407, rust-lang#95758) to closure arguments. only fires when the type behind the semicolon satisfies the failed bound, never when several closure arguments qualify.

before:
```
error[E0277]: the trait bound (): Bar is not satisfied
6 |     bar(|| { 5u8; })
  |     ^^^^^^^^^^^^^^^^ the trait Bar is not implemented for ()
```
after:
```
error[E0277]: the trait bound (): Bar is not satisfied
6 |     bar(|| { 5u8; })
  |     ^^^^^^^^^----^^^
  |     |        |  |
  |     |        |  help: remove this semicolon
  |     |        this expression has type u8, which implements Bar
  |     the trait Bar is not implemented for ()
```
fixes rust-lang#54771
…tic-159492, r=khyperia

Add more context to dyn-compatibility diagnostic for receiver-less associated functions

Fixes rust-lang#159492

Expands the two suggestion messages for the "no `self` parameter"
dyn-compatibility violation to explain *why* each fix works, per the issue.

Before:
  help: consider turning `create` into a method by giving it a `&self` argument
  help: alternatively, consider constraining `create` so it does not apply to trait objects

After:
  help: consider turning `create` into a method by giving it a `&self` argument, so that it is accessible through the trait object's vtable
  help: alternatively, consider constraining `create` so it is explicitly marked as not applying to trait objects

Only the two strings in `DynCompatibilityViolationSolution::add_to`
(rustc_middle/src/traits/mod.rs) changed — no logic, applicability, or span changes.

Added a regression test using the issue's exact example
(tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs).

Verified against a locally-built rustc; full `tests/ui` suite passes
(21643 passed, 0 failed). Note: `next-solver` compare-mode has pre-existing,
unrelated failures on 3 tests in this directory, confirmed present on `main`
without this diff.
Add regression test for extern crate alias shadowed by a module of the same name

Closes rust-lang#55759
…r=chenyukang

Add regression test for private fields lint

closes rust-lang#81447
More EC2 instance usage

This extends our usage of EC2 to dist-x86_64-linux-alt builders (1h23m with m8a.2xlarge, https://github.com/rust-lang/rust/actions/runs/32137297331/job/95711706485).

This is moving from GHA credits to EC2 credits, so we should confirm we want that, but in dollar terms this is cheaper: at 1h55m (last auto build) on [GHA $1.32/hr](https://docs.github.com/en/billing/reference/actions-runner-pricing) = $2.53/run, vs. 1h23m on EC2 at $0.48688/hr = $0.67/run.

My primary goal is to try to free up GHA credits so we can move Windows and/or macOS jobs to large runners, since I suspect us trying to host those ourselves is going to be more painful.

As a drive-by change this also adds support for EC2 aarch64 machines to the bors config (but not CI config). My suspicion is that if/when we have aarch64 perf we may want faster aarch64 try builds, and in any case dist-aarch64-linux is one of our slower runners -- at 2h24m -- so it may benefit from getting a faster machine. I don't know yet how EC2 will compare but extending the bors config is cheap so I'd rather just do that now to enable easier testing.

I also deleted some of the old unused runner templates, I don't see much point in keeping dead ones around.

r? Kobzol
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 24, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc 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. labels Aug 24, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

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

@rust-bors

rust-bors Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

📌 Commit d53b84d 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 Aug 24, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 24, 2026
Rollup of 6 pull requests


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

This comment has been minimized.

@rust-bors

rust-bors Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 64460e9 (64460e9a0dd1f6c202b5ed40cdaf99c6bc4d04d4)
Base parent: da51146 (da5114692c9ebe46b869488c5f34f92eb10b98c1)

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

rust-bors Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 5m 5s
Pushing 347a1db to main...

@rust-bors
rust-bors Bot merged commit 347a1db into rust-lang:main Aug 24, 2026
15 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Aug 24, 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 04a3cad (parent) -> 347a1db (this PR)

Test differences

Show 30 test diffs

Stage 1

  • [crashes] tests/crashes/153005.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/153362.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/153375.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/153947.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154296.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154779.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154782.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154871.rs: [missing] -> pass (J1)
  • [ui] tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs: [missing] -> pass (J2)
  • [ui] tests/ui/privacy/private-tuple-struct-field-self-arg-issue-81447.rs: [missing] -> pass (J2)
  • [ui] tests/ui/rust-2018/extern-crate-alias-shadowed-by-module-55759.rs: [missing] -> pass (J2)
  • [ui] tests/ui/suggestions/closure-arg-trailing-semicolon.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/privacy/private-tuple-struct-field-self-arg-issue-81447.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/rust-2018/extern-crate-alias-shadowed-by-module-55759.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/suggestions/closure-arg-trailing-semicolon.rs: [missing] -> pass (J4)

Stage 2

  • [crashes] tests/crashes/153005.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/153362.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/153375.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/153947.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154296.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154779.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154782.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154871.rs: [missing] -> pass (J0)
  • [ui] tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs: [missing] -> pass (J3)
  • [ui] tests/ui/privacy/private-tuple-struct-field-self-arg-issue-81447.rs: [missing] -> pass (J3)
  • [ui] tests/ui/rust-2018/extern-crate-alias-shadowed-by-module-55759.rs: [missing] -> pass (J3)
  • [ui] tests/ui/suggestions/closure-arg-trailing-semicolon.rs: [missing] -> pass (J3)

Additionally, 2 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 347a1dbf428ab92f284e3afafacfa7eb46341a5d --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. dist-armv7-linux: 58m 35s -> 1h 32m (+58.7%)
  2. x86_64-gnu-stdlib-semver-check: 10m 38s -> 16m 34s (+55.8%)
  3. x86_64-gnu-gcc-core-tests: 10m 39s -> 16m 31s (+55.1%)
  4. x86_64-msvc-2: 1h 42m -> 2h 33m (+49.8%)
  5. x86_64-gnu-debug: 1h 19m -> 1h 58m (+49.6%)
  6. dist-x86_64-llvm-mingw: 2h 15m -> 1h 14m (-44.6%)
  7. dist-x86_64-linux-alt: 2h 23m -> 1h 20m (-43.6%)
  8. x86_64-gnu-aux: 1h 53m -> 2h 41m (+42.1%)
  9. dist-riscv64-linux-gnu: 1h 4m -> 1h 30m (+38.8%)
  10. x86_64-gnu: 1h 53m -> 2h 35m (+37.4%)
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.

@rust-bors

rust-bors Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#159434 fix: suggest removing a trailing semicolon when a closure a… beb61f610f3bd47cfdaee9768f638c213e14f769
(link)
#160428 Add more context to dyn-compatibility diagnostic for receiv… 682a6b0969c8cff5d4765dac6a97c28d350c147b
(link)
#161166 add crashtests [5/N], remove unused aux files f00ef965f83b4467cd27a6652426cc79cf40107a
(link)
#161310 Add regression test for extern crate alias shadowed by a mo… 2819d95262879a6b8fcfea231d980a636209b209
(link)
#161509 Add regression test for private fields lint 81b922f814e29a044a97ebca2fdb5b9cb850ba04
(link)
#161562 More EC2 instance usage 40a2816743a33381f1598a5de21e78bce47d3ca4
(link)

parent commit: 04a3cad16c

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@JonathanBrouwer

JonathanBrouwer commented Aug 24, 2026

Copy link
Copy Markdown
Member Author

@rust-timer triage beb61f6 682a6b0

Testing the triage command

@rust-timer

rust-timer commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

#159434 beb61f6 fix: suggest removing a trailing semicolon when a closure argument fails a trait bound

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary -2.1%)

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.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Cycles

Results (primary 0.1%, secondary -4.9%)

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

mean range count
Regressions ❌
(primary)
2.0% [2.0%, 2.0%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.8% [-1.8%, -1.8%] 1
Improvements ✅
(secondary)
-4.9% [-7.1%, -3.2%] 7
All ❌✅ (primary) 0.1% [-1.8%, 2.0%] 2

Binary size

Results (primary -0.1%, secondary -0.1%)

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)
-0.1% [-0.2%, -0.0%] 77
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.0%] 66
All ❌✅ (primary) -0.1% [-0.2%, -0.0%] 77

#160428 682a6b0 Add more context to dyn-compatibility diagnostic for receiver-less associated functions

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.3% [0.3%, 0.4%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (primary 0.2%, secondary -4.7%)

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

mean range count
Regressions ❌
(primary)
2.2% [2.2%, 2.2%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.8% [-1.8%, -1.8%] 1
Improvements ✅
(secondary)
-4.7% [-7.4%, -2.5%] 9
All ❌✅ (primary) 0.2% [-1.8%, 2.2%] 2

Binary size

This perf run didn't have relevant results for this metric.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (347a1db): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary -4.8%)

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)
- - 0
Improvements ✅
(secondary)
-4.8% [-6.7%, -3.1%] 7
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 480.128s -> 468.927s (-2.33%)
Artifact size: 401.05 MiB -> 400.24 MiB (-0.20%)

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-testsuite Area: The testsuite used to check the correctness of rustc 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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants