Skip to content

Rollup of 22 pull requests#158700

Open
JonathanBrouwer wants to merge 62 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-HusuWnV
Open

Rollup of 22 pull requests#158700
JonathanBrouwer wants to merge 62 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-HusuWnV

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

mati865 and others added 30 commits June 17, 2026 13:17
Before mingw-w64/mingw-w64@dbfdf80
mkstemp used by Binutils was not sufficiently
collision resilient and that led to CI errors for
us.

Our new baseline mingw-w64 toolchain's Binutils
are built using mingw-w64 with the fix:
niXman/mingw-builds#682
So, we should be able to get rid of it.
Add a tier 3 bare-metal target for RV32IMFC cores that have hardware
single-precision floating point (the `F` extension, `ilp32f` ABI) but no
atomic (`A`) extension.

This is `riscv32imafc-unknown-none-elf` minus the atomic extension,
handled the same way `riscv32imc-unknown-none-elf` handles a no-`a` core:
`+forced-atomics` lowers atomic load/store to plain load/store (sound on a
single hart) while `atomic_cas = false` keeps RMW/CAS off, so no
`lr.w`/`sc.w`/`amo*` are ever emitted and the target does not trap on a
core without the `A` extension. Downstream crates use a critical-section
polyfill (e.g. `portable-atomic`) for compare-and-swap.

This combination has no builtin target today: cores that pair a
hardware-float application core with no atomic extension otherwise need a
custom target spec plus `-Zbuild-std` on nightly, which is unavailable on
stable. The motivating hardware is the application core of vendor SoCs such
as the HiSilicon WS63/BS2X family, but the target is vendor-neutral.

Register the target, add it to the `targets-elf` assembly sanity test, and
document it on the shared `riscv32-unknown-none-elf` platform-support page.
In many cases where we are flattening `option::IntoIter<I>`, we can use
`into_flat_iter()` instead for a simpler implementation.
This tool is part of the main workspace, so its own lock file is unused,
and the file is clearly outdated for its current dependencies anyway.
Splitting assembling the return value over multiple let-bindings enables
pedagogic discussion of each named let-binding.

The `slice` arg was renamed to remove any chance of visual confusion
with use of `core::slice` functions or "slice" per se.
On platforms where `clang` defines `__int128`.
This starts with `StatementKind` and `TerminatorKind`; they don't need
hashing. That then allows the removal of the `Hash` impl of various
other types.
…e, r=jhpratt

library: Polish transmute's `split_at_stdlib` example

Splitting assembling the return value over multiple let-bindings enables pedagogic discussion of each named let-binding.

The `slice` arg was renamed to remove any chance of visual confusion with use of `core::slice` functions or "slice" per se.
…eywiser

Add extra splat tests

This PR is part of the splat lang experiment rust-lang#153629.

It adds a bunch of tests for existing splat functionality, but doesn't make any compiler code changes.

Edit: split off from PR rust-lang#158645

@rustbot label +F-splat +T-compiler
…ctypes-ice, r=oli-obk

Avoid ICE for `NonZero<char>` in improper_ctypes

Fixes rust-lang#158511

This pr enables `get_nullable_type` to return `char` as the carrier for `NonZero<char>` and replaces the raw `unwrap()` with an `expect()` message.
…r=oli-obk

Remove unnecessary `Hash` derives from MIR types

This starts with `StatementKind` and `TerminatorKind`; they don't need hashing. That then allows the removal of the `Hash` impl of various other types.

r? @dingxiangfei2009
…rgs, r=JonathanBrouwer

Avoid delayed bug for disabled on_type_error arguments

Fixes rust-lang#158628

This updates the disabled-feature path to call `args.ignore_args()`, matching the behavior of other diagnostic attributes.

example: https://github.com/rust-lang/rust/blob/c397dae808f70caebab1fc4e11b3edf7e59f58c7/compiler/rustc_attr_parsing/src/attributes/diagnostic/on_unknown.rs#L13-L21
…teor2345

Add missing generic test coverage for ```#[splat]```

This PR adds missing test coverage for `#[splat]` that was marked as FIXME in `splat-generics-everywhere.rs`:

- Add generic parameter to `BarTrait` (`BarTrait<T>`)
- Add `generic_in_tuple` , tests generics inside the splatted tuple
- Add `generic_tuple_assoc` , tests assoc functions with splatted generic tuple traits
- Add `trait_generic_in_tuple` , tests generics inside splatted tuple on trait methods
- Add `trait_generic_tuple` , tests splatted generic tuple trait bounds on trait methods

Removes the resolved FIXME comments:
- also add generics to the trait
- also add assoc/method with splatted generic tuple traits
- also add generics inside the splatted tuple

CC:- @teor2345

r? @teor2345
…=petrochenkov

Streamline `MacEager`

Details in individual commits.

r? @petrochenkov
…=mejrs

Cleanup attribute docs and add links to other mentioned attributes

It's always nicer to be able to jump to the item being mentioned directly without having to go through search.

Also, cleaned up a few small things like `rust` attribute in codeblocks which is the default, so it's redundant.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 2, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jul 2, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never 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,x86_64-mingw-1,i686-msvc-2

@rust-bors

rust-bors Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 89a420e has been approved by JonathanBrouwer

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 10. This pull request will be tested once the tree is reopened.

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

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 2, 2026
Rollup of 22 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
try-job: x86_64-mingw-1
try-job: i686-msvc-2
@rust-bors

rust-bors Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: c529d11 (c529d1104614d7e1aeb9cdb7ade27f5d8ffecc5a)
Base parent: c397dae (c397dae808f70caebab1fc4e11b3edf7e59f58c7)

@rust-bors

rust-bors Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

⌛ Testing commit 89a420e with merge 34fd20b...

Workflow: https://github.com/rust-lang/rust/actions/runs/28640121678

rust-bors Bot pushed a commit that referenced this pull request Jul 3, 2026
…uwer

Rollup of 22 pull requests

Successful merges:

 - #155429 (Support `u128`/`i128` c-variadic arguments)
 - #158100 (Emit retags in codegen to support BorrowSanitizer (part 4))
 - #158494 (Improve E0277 diagnostics for conditionally implemented traits)
 - #158606 (use ProjectionPredicate instead of AliasRelate)
 - #158627 (Simplify option-iterator flattening in the compiler)
 - #158658 (Update LLVM submodule)
 - #158665 (Revert "Remove redundant dyn-compatibility check.")
 - #158021 (Remove old MinGW workaround)
 - #158473 (Add `riscv32imfc-unknown-none-elf` bare-metal target)
 - #158549 (process::exec: using appropriate exit code on vxworks.)
 - #158585 (Improve diagnostic for too many super keywords)
 - #158637 (hir_ty_lowering: avoid self type lookup for inherent aliases)
 - #158651 (ptr doc: reduce use of unsafe block to where needed)
 - #158669 (Remove `src/tools/test-float-parse/Cargo.lock`)
 - #158674 (library: Polish transmute's `split_at_stdlib` example)
 - #158677 (Add extra splat tests)
 - #158680 (Avoid ICE for `NonZero<char>` in improper_ctypes)
 - #158681 (Remove unnecessary `Hash` derives from MIR types)
 - #158682 (Avoid delayed bug for disabled on_type_error arguments)
 - #158684 (Add missing generic test coverage for ```#[splat]```)
 - #158687 (Streamline `MacEager`)
 - #158688 (Cleanup attribute docs and add links to other mentioned attributes)
@jhpratt

jhpratt commented Jul 3, 2026

Copy link
Copy Markdown
Member

@bors yield

no point in waiting for the inevitable

@rust-bors

rust-bors Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto build was cancelled. Cancelled workflows:

The next pull request likely to be tested is #158691.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc 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-infra Relevant to the infrastructure 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.