Skip to content

Rollup of 6 pull requests - #165361

Merged
rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-cJpJ1RA
Nov 2, 2026
Merged

rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-cJpJ1RA

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

born-in-autumn and others added 13 commits October 30, 2026 11:12
Use more accurate span when suggesting to remove guard and body of a never-pattern match arm (`feature(never_patterns)`].

```
error: a guard on a never pattern will never be run
  --> $DIR/ICE-119271-never-arm-attr-in-guard.rs:8:13
   |
LL |             false
   |             ^^^^^
   |
help: remove the guard, leaving only the pattern
   |
LL -         Some(!)
LL -
LL -             if #[deny(unused_mut)]
LL -             false
LL +         Some(!)
   |
```
… r=fmease

Tweak suggestion of "unreachable due to never pattern"

Use more accurate span when suggesting to remove guard and body of a never-pattern match arm (`feature(never_patterns)`].

```
error: a guard on a never pattern will never be run
  --> $DIR/ICE-119271-never-arm-attr-in-guard.rs:8:13
   |
LL |             false
   |             ^^^^^
   |
help: remove the guard, leaving only the pattern
   |
LL -         Some(!)
LL -
LL -             if #[deny(unused_mut)]
LL -             false
LL +         Some(!)
   |
```
std: fix platform checks for hermit

Closes rust-lang#164495.

Found this while working on Hermit OS support for Rustix (bytecodealliance/rustix#1672)

```console
$ cargo +nightly check -q -Zbuild-std --target x86_64-unknown-hermit
error[E0425]: cannot find value `IPV6_UNICAST_HOPS` in crate `c`
   --> ~/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/mod.rs:534:61
    |
534 |                 setsockopt(&self.inner, c::IPPROTO_IPV6, c::IPV6_UNICAST_HOPS, limit as c_int)
    |                                                             ^^^^^^^^^^^^^^^^^ not found in `c`
...
error[E0425]: cannot find value `IPV6_MULTICAST_HOPS` in crate `c`
   --> ~/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/mod.rs:957:61
    |
957 |                 setsockopt(&self.inner, c::IPPROTO_IPV6, c::IPV6_MULTICAST_HOPS, limit as c_int)
    |                                                             ^^^^^^^^^^^^^^^^^^^ not found in `c`
    |
```

cc: @Mallets
…oxyUwU

create mir for direct-rhs consts

Alternative to rust-lang#164982 - see that PR for context.

When referring to a direct constant via a `mir::Const::Unevaluated`, synthesize a MIR body, whose contents are simply returning a `mir::Const::Ty` of itself. This effectively provides both a MIR view, as well as a typesystem view, of the same constant, without risking representing the same constant in different ways in the two different representations, because one is just referring to the other.

r? @BoxyUwU

fyi @oli-obk @lcnr
…eval, r=khyperia

test DSL evaluate sequentially

For Context: rust-lang/project-assumptions-on-binders#59

changelog:

Currently, we made the test DSL evaluate sequentially by adding an ordering `vec`. This `vec` goes through the whole pipeline, including AST -> HIR, HIR transform, HIR -> solver type, and wfcheck.

In `wfcheck.rs` and `collect.rs`, everything that revolves around `predicates`, `constraints`, and the like is still almost the same as before.

I added a new test file like this, it should fail before this PR and pass after it.
```rust
core::test_binder_constraints! {
    impl<'a: 'b, 'b, 'c: 'd, 'd> {
        forall<'x> {
            'a: 'b,
            forall<'y> { } expect { 'a: 'b },
            'c: 'd,
        }
    }
}
```
This test file came up in the earlier discussion. I chose to keep it separate here, which strictly guarantees sequential evaluation and is also simpler to implement :)

Happy to make any changes if there are any issues.
Add assembly test for masked index without redundant shifts

Fixes rust-lang#56057

This was fixed by the LLVM 18 update in rust-lang#120055
test(lexer): Add test that ZWJ/ZWNJ are accepted in identifiers

rust-lang/reference#2400
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Nov 2, 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 Nov 2, 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,test-aarch64-msvc-2

@rust-bors

rust-bors Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit f5848fb 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 Nov 2, 2026
rust-bors Bot pushed a commit that referenced this pull request Nov 2, 2026
Rollup of 6 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
try-job: test-aarch64-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Nov 2, 2026
@rust-bors

rust-bors Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 69872e9 failed: CI. Failed job:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling diff v0.1.13
   Compiling citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)
    Finished `dev` profile [unoptimized] target(s) in 21.92s
     Running `target/debug/citool calculate-job-matrix`
Run type: TryJob { job_patterns: Some(["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", "test-aarch64-msvc-2"]), nolimit: false }
Error: Failed to calculate job matrix

Caused by:
    Patterns `test-aarch64-apple-2` did not match any auto jobs
##[error]Process completed with exit code 1.

@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 Nov 2, 2026
@rust-bors

rust-bors Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 34m 21s
Pushing 1c3a650 to main...

@rust-bors
rust-bors Bot merged commit 1c3a650 into rust-lang:main Nov 2, 2026
15 of 16 checks passed
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Nov 2, 2026
@rustbot rustbot added this to the 1.101.0 milestone Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026

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 ae36fe2 (parent) -> 1c3a650 (this PR)

Test differences

Show 16 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/x86_64-masked-index-no-shift-56057.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/assumptions_on_binders/test-dsl-evaluates-sequentially.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/lexer/zero-width-in-ident.rs: [missing] -> pass (J3)
  • [ui] tests/ui/assumptions_on_binders/test-dsl-evaluates-sequentially.rs: [missing] -> pass (J4)
  • [ui] tests/ui/lexer/zero-width-in-ident.rs: [missing] -> pass (J4)

Stage 2

  • [assembly] tests/assembly-llvm/x86_64-masked-index-no-shift-56057.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J0)
  • [ui] tests/ui/assumptions_on_binders/test-dsl-evaluates-sequentially.rs: [missing] -> pass (J2)
  • [ui] tests/ui/lexer/zero-width-in-ident.rs: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/x86_64-masked-index-no-shift-56057.rs: [missing] -> pass (J5)

Additionally, 7 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 1c3a6506966e21845b31de0b075d2527660db132 --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-gnu-stable: 1h 26m -> 2h 43m (+88.5%)
  2. test-x86_64-gnu-llvm-22-1: 47m 38s -> 1h 28m (+85.8%)
  3. test-x86_64-gnu-miri: 49m 32s -> 1h 31m (+85.2%)
  4. dist-loongarch64-musl: 1h 16m -> 2h 10m (+72.2%)
  5. test-x86_64-gnu-gcc-core-tests: 8m 32s -> 14m 36s (+71.1%)
  6. test-aarch64-apple-macos-26-2: 1h 20m -> 2h 17m (+70.4%)
  7. test-x86_64-gnu-llvm-22: 35m 49s -> 1h (+69.9%)
  8. test-arm-android: 1h 9m -> 1h 56m (+68.6%)
  9. test-x86_64-gnu-stdlib-semver-check: 8m 47s -> 14m 40s (+67.0%)
  10. dist-various-2: 33m 28s -> 54m 35s (+63.1%)
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 Nov 2, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163764 Tweak suggestion of "unreachable due to never pattern" e3376ff388e0dfbc569526d928c66397a6c02199
(link)
#164771 std: fix platform checks for hermit 62ec2566361d21818eb433e0ce09797adce36b73
(link)
#165070 create mir for direct-rhs consts e7363cb388ed03ca6e2cc90baf152bad78572faa
(link)
#165121 test DSL evaluate sequentially 696fc03f08b725124286ddb041a1ecec72dd04b9
(link)
#165288 Add assembly test for masked index without redundant shifts 452d7da4eca67dfe6045b8479b770029867c03a8
(link)
#165307 test(lexer): Add test that ZWJ/ZWNJ are accepted in identif… 019c532ce222b74bae3f0fdc77b15f08e52ef304
(link)

parent commit: ae36fe22c7

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.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (1c3a650): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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

Max RSS (memory usage)

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

Cycles

Results (secondary -2.2%)

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

Binary size

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

Bootstrap: 483.826s -> 483.238s (-0.12%)
Artifact size: 406.63 MiB -> 406.36 MiB (-0.07%)

@rustbot rustbot added the perf-regression Performance regression. label Nov 2, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rust-timer triage all

@rust-timer

rust-timer commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator
Running triage with 2 benchmarks

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • include-blob
  • libc-0.2.172

#163764 e3376ff Tweak suggestion of "unreachable due to never pattern"

This perf run didn't have relevant results for the `instruction count` metric.

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

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

Binary size

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


#164771 62ec256 std: fix platform checks for hermit

This perf run didn't have relevant results for the `instruction count` metric.

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

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

Binary size

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


#165070 e7363cb create mir for direct-rhs consts

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#165121 696fc03 test DSL evaluate sequentially

This perf run didn't have relevant results for the `instruction count` metric.

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

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

Binary size

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


#165288 452d7da Add assembly test for masked index without redundant shifts

This perf run didn't have relevant results for the `instruction count` metric.

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

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

Binary size

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


#165307 019c532 test(lexer): Add test that ZWJ/ZWNJ are accepted in identifiers

This perf run didn't have relevant results for the `instruction count` metric.

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

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

Binary size

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

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. perf-regression Performance regression. 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.

10 participants