Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

@JonathanBrouwer JonathanBrouwer commented Jan 6, 2026

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

folkertdev and others added 23 commits November 2, 2025 21:59
Same as 147495, just keeping it up-to-date.
This was recently fixed upstream in LLVM, so we update our default
layout to match.

@rustbot label: +llvm-main
This way using pidfd_spawnp won't have to rely on procfs, avoiding an unpleasant edge-case
where the child is spawned but we can't get the pid.
And `pidfd.{try_}wait` will be able to return the exit status even after a process has been reaped.
At least on newer kernels.
`lower_anon_const_to_const_arg_direct` to
`lower_anon_const_to_const_arg_and_alloc` and
`lower_anon_const_to_const_arg`
…rait, r=jdonszelmann

Impls and impl items inherit `dead_code` lint level of the corresponding traits and trait items

https://github.com/rust-lang/rust/blob/master/compiler/rustc_passes/src/dead.rs#L360-L361 won't insert assoc items into the live set, so that impl items cannot be marked live.

This PR lets impls and impl items can inherit lint levels of the corresponding traits and trait items.

Fixes rust-lang#144060

r? ```@petrochenkov```
…ern, r=Amanieu

naked functions: emit `.private_extern` on macos

fixes rust-lang#148307

Emit `.private_extern` on macos when the naked function uses `Linkage::Internal`. Failing to do so can cause issues with LTO.

The documentation on this directive is kind of sparse, but I believe this is at least not incorrect, and does fix the issue.

r? `@Amanieu`
cc `@bjorn3`
…nikic

rustc_codegen_llvm: update alignment for double on AIX

This was recently fixed upstream in LLVM, so we update our default layout to match.

```@rustbot``` label: +llvm-main
Refactor function names of `rustc_ast_lowering`

close: rust-lang#150062

I'll rebase after rust-lang#149114 is merged.

Would it be better to change `lower_const_path_to_const_arg` → `lower_const_path_to_const_arg_and_intern`,
`lower_array_length_to_const_arg` → `lower_array_length_to_const_arg_and_intern`?

r? `@lcnr`
use PIDFD_GET_INFO ioctl when available

This way using pidfd_spawnp won't have to rely on procfs, avoiding an unpleasant edge-case where the child is spawned but we can't get the pid. And pidfd.{try_}wait will be able to return the exit status even after a process has been reaped. At least on newer kernels.

Tracking issue: rust-lang#82971
THIR pattern building: Move all `thir::Pat` creation into `rustc_mir_build::thir::pattern`

The code in `thir::cx::block` was the only code outside of `thir::pattern` that created `thir::Pat` nodes.

Moving it makes the signature of `pat_from_hir` a bit messier, but ensures that all `thir::Pat` creation occurs in one module. That will be useful when trying to change `thir::Pat`, e.g. by adding fields to remove the need for wrapper nodes.

There should be no change to compiler output.
MGCA: pretty printing for struct expressions and tuple calls

not sure

1. if there any tests that i need to adjust
2. if i should add any test for it
3. if humanity has come up with anything better than checking if that's first iteration or not with flag when printing sequences with separator

in case there is no tests for it and i dont have to add any, there is a demonstration of this ✨ pretty ✨ printing (this is output from `-Z unpretty=hir`)

```
fn test_errors<const N:
    usize>() {
    // accepts_enum::<{ None::<u32> }>();
    accepts_point::<Point1 { a: N, b: N }>();
    accepts_point::<Point(N, N)>();
}
```

btw it does not print const block

for this

```
accepts_point::<{ Point1 { a: const {N + 1}, b: N } }>();
```

it will print

```
accepts_point::<Point1 { a: { N + 1 }, b: N }>();
```

not sure if we want to print const blocks or not

r? BoxyUwU
Improve comment clarity in candidate_may_shadow

I think this should be the right correction, but I'm not sure.
…-ld, r=Mark-Simulacrum

Update wasm-component-ld

Same as rust-lang#147495, just keeping it up-to-date.
…ce, r=BoxyUwU

Fix ICE when transmute Assume field is invalid

This PR fixes an internal compiler error in `rustc_transmute` where initializing an `Assume` field (like `alignment`) with a non-scalar constant (like a struct) caused a panic.

The fix updates `from_const` to use `try_to_scalar()` instead of assuming the value is always a leaf. It now gracefully returns `None` for invalid types, allowing the compiler to report standard "missing field initialiser" errors instead of crashing.

Fixes rust-lang#150506
Enable merge queue in new bors

We can proactively merge this now. Note that new bors will still default to being "paused" and not running the merge queue, after being restarted:
- https://github.com/rust-lang/bors/blob/e1fafaa3b89c225069fa2aa1193096e1d66075c3/src/bors/merge_queue.rs#L101
- https://github.com/rust-lang/bors/blob/bf491ee40d1fc877af273f2ec92a2968dee8cdb7/src/github/api/mod.rs#L159
- rust-lang#112049 (comment)

We can resume it quickly with a command, to test how the merging functionality behaves.
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. O-linux Operating system: Linux O-unix Operating system: Unix-like 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. rollup A PR which is a rollup labels Jan 6, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jan 6, 2026

📌 Commit d5a07af has been approved by JonathanBrouwer

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 Jan 6, 2026
@bors
Copy link
Collaborator

bors commented Jan 6, 2026

⌛ Testing commit d5a07af with merge c4862bc...

bors added a commit that referenced this pull request Jan 6, 2026
…uwer

Rollup of 11 pull requests

Successful merges:

 - #144113 (Impls and impl items inherit `dead_code` lint level of the corresponding traits and trait items)
 - #148339 (naked functions: emit `.private_extern` on macos)
 - #149880 (rustc_codegen_llvm: update alignment for double on AIX)
 - #150122 (Refactor function names of `rustc_ast_lowering`)
 - #150412 (use PIDFD_GET_INFO ioctl when available)
 - #150670 (THIR pattern building: Move all `thir::Pat` creation into `rustc_mir_build::thir::pattern`)
 - #150695 (MGCA: pretty printing for struct expressions and tuple calls )
 - #150698 (Improve comment clarity in candidate_may_shadow)
 - #150706 (Update wasm-component-ld)
 - #150707 (Fix ICE when transmute Assume field is invalid)
 - #150708 (Enable merge queue in new bors)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
             at /rustc/1b6e21e163baa0b20f119e17e3871910978a60b6/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/1b6e21e163baa0b20f119e17e3871910978a60b6/library/core/src/panicking.rs:80:14
   2: compiletest::make_test
   3: <rayon::iter::map::MapFolder<rayon::iter::reduce::ReduceFolder<compiletest::collect_tests_from_dir::{closure#2}, core::result::Result<compiletest::TestCollector, std::io::error::Error>>, compiletest::collect_tests_from_dir::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::consume
   4: <&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir> as rayon::iter::plumbing::UnindexedProducer>::fold_with::<rayon::iter::map::MapFolder<rayon::iter::reduce::ReduceFolder<compiletest::collect_tests_from_dir::{closure#2}, core::result::Result<compiletest::TestCollector, std::io::error::Error>>, compiletest::collect_tests_from_dir::{closure#0}>>
   5: rayon::iter::plumbing::bridge_unindexed_producer_consumer::<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
   6: rayon_core::join::join_context::<rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#1}, core::result::Result<compiletest::TestCollector, std::io::error::Error>, core::result::Result<compiletest::TestCollector, std::io::error::Error>>::{closure#0}
   7: rayon::iter::plumbing::bridge_unindexed_producer_consumer::<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
   8: rayon_core::join::join_context::<rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#1}, core::result::Result<compiletest::TestCollector, std::io::error::Error>, core::result::Result<compiletest::TestCollector, std::io::error::Error>>::{closure#0}
   9: rayon::iter::plumbing::bridge_unindexed_producer_consumer::<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
  10: rayon_core::join::join_context::<rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#1}, core::result::Result<compiletest::TestCollector, std::io::error::Error>, core::result::Result<compiletest::TestCollector, std::io::error::Error>>::{closure#0}
  11: rayon::iter::plumbing::bridge_unindexed_producer_consumer::<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
  12: <rayon::iter::par_bridge::IterBridge<std::fs::ReadDir> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
  13: compiletest::collect_tests_from_dir
  14: <rayon::iter::map::MapFolder<rayon::iter::reduce::ReduceFolder<compiletest::collect_tests_from_dir::{closure#2}, core::result::Result<compiletest::TestCollector, std::io::error::Error>>, compiletest::collect_tests_from_dir::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::consume
  15: <&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir> as rayon::iter::plumbing::UnindexedProducer>::fold_with::<rayon::iter::map::MapFolder<rayon::iter::reduce::ReduceFolder<compiletest::collect_tests_from_dir::{closure#2}, core::result::Result<compiletest::TestCollector, std::io::error::Error>>, compiletest::collect_tests_from_dir::{closure#0}>>
  16: rayon::iter::plumbing::bridge_unindexed_producer_consumer::<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>
  17: <rayon_core::job::StackJob<rayon_core::latch::SpinLatch, rayon_core::join::join_context::call_b<core::result::Result<compiletest::TestCollector, std::io::error::Error>, rayon::iter::plumbing::bridge_unindexed_producer_consumer<&rayon::iter::par_bridge::IterParallelProducer<std::fs::ReadDir>, rayon::iter::map::MapConsumer<rayon::iter::reduce::ReduceConsumer<compiletest::collect_tests_from_dir::{closure#2}, compiletest::collect_tests_from_dir::{closure#1}>, compiletest::collect_tests_from_dir::{closure#0}>>::{closure#1}>::{closure#0}, core::result::Result<compiletest::TestCollector, std::io::error::Error>> as rayon_core::job::Job>::execute
  18: <rayon_core::registry::WorkerThread>::wait_until_cold
  19: <rayon_core::registry::ThreadBuilder>::run
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Bootstrap failed while executing `--stage 2 test --skip compiler --skip src`
Build completed unsuccessfully in 0:32:06
  local time: Tue Jan  6 15:15:52 UTC 2026
  network time: Tue, 06 Jan 2026 15:15:52 GMT

@JonathanBrouwer
Copy link
Contributor Author

@bors retry

@JonathanBrouwer
Copy link
Contributor Author

@bors r- retry

@bors bors removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 6, 2026
@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 Jan 6, 2026
@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jan 6, 2026
bors added a commit that referenced this pull request Jan 6, 2026
Rollup of 11 pull requests

Successful merges:

 - #144113 (Impls and impl items inherit `dead_code` lint level of the corresponding traits and trait items)
 - #148339 (naked functions: emit `.private_extern` on macos)
 - #149880 (rustc_codegen_llvm: update alignment for double on AIX)
 - #150122 (Refactor function names of `rustc_ast_lowering`)
 - #150412 (use PIDFD_GET_INFO ioctl when available)
 - #150670 (THIR pattern building: Move all `thir::Pat` creation into `rustc_mir_build::thir::pattern`)
 - #150695 (MGCA: pretty printing for struct expressions and tuple calls )
 - #150698 (Improve comment clarity in candidate_may_shadow)
 - #150706 (Update wasm-component-ld)
 - #150707 (Fix ICE when transmute Assume field is invalid)
 - #150708 (Enable merge queue in new bors)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Jan 6, 2026

⌛ Testing commit d5a07af with merge 46fb1e6...

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. O-linux Operating system: Linux O-unix Operating system: Unix-like 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-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.