Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Dec 27, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

AprilNEA and others added 14 commits December 27, 2025 22:38
Closes rust-lang#125364

This test verifies that the never type fallback behavior
in try blocks with `Into<!>` bounds works correctly across
different editions:

- Edition 2021: Fallback to `()` causes type error
- Edition 2024: Fallback to `!` compiles successfully
Intrinsics only need a fraction of the functionality offered by
BuilderMethods::call and in particular don't need the FnAbi to be
computed other than (currently) as step towards computing the function
value type.
This moves all LLVM intrinsic handling out of the regular call path for
cg_gcc and makes it easier to hook into this code for future cg_llvm
changes.
As this is the only unwinding intrinsic we use and
codegen_llvm_intrinsic_call currently doesn't handle unwinding
intrinsics, this uses the conventional call path for llvm.wasm.throw.
…ndling, r=WaffleLapkin

Split LLVM intrinsic abi handling from the rest of the abi handling

LLVM intrinsics have weird requirements like requiring the fake "unadjusted" abi, not being callable through function pointers and for all codegen backends other than cg_llvm requiring special cases to redirect them to the correct backend specific intrinsic (or directly codegen their implementation inline without any intrinsic call). By splitting the LLVM intrinsic handling it becomes easier for backends to special case them and should in the future allow getting rid of the abi calculation for `extern "unadjusted"` in favor of computing the correct abi directly in the backend without depending on the exact way cg_ssa lowers types.
…m, r=oli-obk

fix rustfmt on `const impl Ty {}`

r? `@oli-obk` on rust-lang#148434, cc `@ytmimi` for https://github.com/rust-lang/rust/pull/148434/changes#r2637972310

format_constness_right outputs `" const"` whereas format_constness outputs `"const "`

Not making this change to rust-lang/rustfmt since I'm not sure if that repo has these changes yet.
…y-blocks, r=WaffleLapkin

Add test for never type fallback in try blocks with `Into<!>`

### Summary

Adds UI tests for issue rust-lang#125364, which involves the interaction between
never type fallback, try blocks, and `From`/`Into` trait bounds.

### Changes

- Added `tests/ui/never_type/try-block-never-type-fallback.rs`
- Tests both edition 2021 (where the issue manifests) and edition 2024 (where it's fixed)

### Issue

Closes rust-lang#125364

### Testing

```bash
./x test tests/ui/never_type/try-block-never-type-fallback.rs
```

Both test variants pass:

e2021: Correctly fails with expected error
e2024: Compiles successfully (check-pass)

### Notes

This test documents the edition-dependent behavior of never type fallback in try blocks, as requested in the original issue.

cc `@WaffleLapkin`
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Dec 27, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Dec 27, 2025

📌 Commit 05287d1 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Dec 27, 2025
@bors
Copy link
Collaborator

bors commented Dec 27, 2025

⌛ Testing commit 05287d1 with merge 23d01cd...

@bors
Copy link
Collaborator

bors commented Dec 28, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 23d01cd to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 28, 2025
@bors bors merged commit 23d01cd into rust-lang:main Dec 28, 2025
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Dec 28, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#148533 Split LLVM intrinsic abi handling from the rest of the abi … 485965d6a360fcda4f3f6e3601bb14e4ecb8aecc (link)
#150358 fix rustfmt on const impl Ty {} f828e2a6468b756497d20cd4c93355bf23578187 (link)
#150434 Add test for never type fallback in try blocks with `Into<!… c1fd4f2aaf051593f90342369fdf061eec7c71a3 (link)

previous master: 7b5cde7370

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

@github-actions
Copy link
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 7b5cde7 (parent) -> 23d01cd (this PR)

Test differences

Show 7 test diffs

Stage 1

  • [ui] tests/ui/never_type/try-block-never-type-fallback.rs#e2021: [missing] -> pass (J1)
  • [ui] tests/ui/never_type/try-block-never-type-fallback.rs#e2024: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/never_type/try-block-never-type-fallback.rs#e2021: [missing] -> pass (J0)
  • [ui] tests/ui/never_type/try-block-never-type-fallback.rs#e2024: [missing] -> pass (J0)

Additionally, 3 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 23d01cd2412583491621ab1ca4f1b01e37d11e39 --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-x86_64-apple: 6198.3s -> 7428.5s (+19.8%)
  2. x86_64-gnu-aux: 6204.9s -> 7202.6s (+16.1%)
  3. aarch64-msvc-2: 6325.1s -> 7251.6s (+14.6%)
  4. test-various: 6545.8s -> 7483.1s (+14.3%)
  5. dist-ohos-x86_64: 4744.6s -> 4182.1s (-11.9%)
  6. dist-i586-gnu-i586-i686-musl: 5049.3s -> 5647.2s (+11.8%)
  7. dist-various-1: 3865.1s -> 4261.0s (+10.2%)
  8. dist-android: 1547.6s -> 1684.8s (+8.9%)
  9. x86_64-gnu-miri: 4248.0s -> 4620.0s (+8.8%)
  10. dist-apple-various: 4266.5s -> 3896.0s (-8.7%)
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-timer
Copy link
Collaborator

Finished benchmarking commit (23d01cd): 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.8% [0.7%, 1.1%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 484.246s -> 484.138s (-0.02%)
Artifact size: 390.73 MiB -> 390.81 MiB (0.02%)

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

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants