Skip to content

Rollup of 19 pull requests#155416

Merged
rust-bors[bot] merged 43 commits intorust-lang:mainfrom
Zalathar:rollup-D1EWnrR
Apr 17, 2026
Merged

Rollup of 19 pull requests#155416
rust-bors[bot] merged 43 commits intorust-lang:mainfrom
Zalathar:rollup-D1EWnrR

Conversation

@Zalathar
Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

xizheyin and others added 30 commits April 2, 2026 03:25
* Extend `core::char`'s documentation of casing issues
* Fix typos
* Fix typo

Co-authored-by: GrigorenkoPV <GrigorenkoPV+github@yandex.ru>
* Document maximum 3x character expansion

This is guaranteed by Unicode.
* Fix error in `str` casing method docs
Another interal change that shouldn't impact rustc users.
To prepare for the upcoming split of visit_type, we reorganise the instances
of `cx.tcx.try_normalize_erasing_regions(cx.typing_env(), ty).unwrap_or(ty)`
into a helper function outside of the main structs.
We don't consider it a bug that users can't break on initialization of
some non-zero sized types (see comment on `maximally-steppable` at the
top of the file), so it does not make sense to consider it a bug that
users can't break on initialization of some zero-sized types.
When a type alias is locally re-exported from a private module (an implicit
inline), rustdoc drops its `cfg` attributes because it treats it like a
standard un-inlined re-export. Since type aliases have no inner fields to
carry the `cfg` badge (unlike structs or enums), the portability info
is lost entirely.

This patch explicitly preserves the target's `cfg` metadata when the
generated item is a `TypeAliasItem`, ensuring the portability badge
renders correctly without breaking standard cross-crate re-export behavior.
For no apparent reason it's in a different file to `Token` itself. This
commit moves it.
`rustc_ast_pretty::pp` defines `Printer` and has a 346 line `impl
Printer` block for it. `rustc_ast_pretty::pp::convenience` has another
`impl Printer` block with 85 lines. `rustc_ast_pretty::helpers` has
another `impl Printer` block with 45 lines.

This commit merges the two small `impl Printer` blocks into the bigger
one, because there is no good reason for them to be separate. Doing this
eliminates the `rustc_ast_pretty::pp::convenience` and
`rustc_ast_pretty::helpers` modules; no great loss given that they were
small and had extremely generic names.
so that we can check whether a type implements the trait
This directive was only being used by one test, which can just as easily use
the more general `//@ failure-status` directive instead.

All of the removed exit-code checks were redundant with other exit-code checks
that are still present.
Suggest to bind `self.x` to `x` when field `x` may be in format string

Fixes rust-lang#141350

I added the new test in the first commit, and committed the changes in the second one.

r? @fmease
cc @mejrs
c-variadic: fix implementation on `avr`

tracking issue: rust-lang#44930
cc target maintainer @Patryk27

I ran into multiple issues, and although with this PR and a little harness I can run the test with qemu on avr, the implementation is perhaps not ideal.

The problem we found is that on `avr` the `c_int/c_uint` types are `i16/u16`, and this was not handled in the c-variadic checks. Luckily there is a field in the target configuration that contains the targets `c_int_width`. However, this field is not actually used in `core` at all, there the 16-bit targets are just hardcoded.

https://github.com/rust-lang/rust/blob/1500f0f47f5fe8ddcd6528f6c6c031b210b4eac5/library/core/src/ffi/primitives.rs#L174-L185

Perhaps we should expose this like endianness and pointer width?

---

Finally there are some changes to the test to make it compile with `no_std`.
…Simulacrum,GuillaumeGomez

Extend `core::char`'s documentation of casing issues (and fix a rustdoc bug)

@rustbot label A-unicode A-docs
Use mutable pointers for Unix path buffers

This gets mutable pointers for Unix path buffers to ensure they have the right provenance.
…jieyouxu

Bump bootstrap to 1.96 beta

See https://forge.rust-lang.org/release/process.html#default-branch-bootstrap-update-tuesday

I think this will wind up needing another PR in a week or so when we pick up assert_matches getting destabilized in beta? But that seems like it can be split into its own PR.
…, r=mejrs

Remove AttributeSafety from BUILTIN_ATTRIBUTES

Encodes the expected attribute safety in the attribute parsers, rather than in `BUILTIN_ATTRIBUTES`, with the goal of removing `BUILTIN_ATTRIBUTES` soon.
We can remove the old attribute safety logic already because unparsed attributes, just like the as of yet unparsed lint attributes, need to be safe.

r? @jdonszelmann  (or @mejrs if you feel like doing it, since you are in T-compiler now 🎉)
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-js Area: Rustdoc's JS front-end 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-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Apr 17, 2026
@Zalathar
Copy link
Copy Markdown
Member Author

Rollup of everything.

  • This rollup incorporates all of Rollup of 13 pull requests #155407, which failed in a way that looks bogus, and is currently running a try job to investigate whether the failure is consistent.

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 17, 2026

📌 Commit 9de2e2b has been approved by Zalathar

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 Apr 17, 2026
@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 Apr 17, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 17, 2026

☀️ Test successful - CI
Approved by: Zalathar
Duration: 3h 36m 11s
Pushing 27dbdb5 to main...

@rust-bors rust-bors bot merged commit 27dbdb5 into rust-lang:main Apr 17, 2026
12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 17, 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 1b8f2e4 (parent) -> 27dbdb5 (this PR)

Test differences

Show 528 test diffs

Stage 1

  • [rustdoc-html] tests/rustdoc-html/reexport/type-alias-reexport.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/unicode.rs: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/borrowck_for_loop_pattern_assignment.rs: [missing] -> pass (J1)

Stage 2

  • [rustdoc-html] tests/rustdoc-html/reexport/type-alias-reexport.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/unicode.rs: [missing] -> pass (J0)
  • [ui] tests/ui/borrowck/borrowck_for_loop_pattern_assignment.rs: [missing] -> pass (J2)

Additionally, 522 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 27dbdb57a2f90b5c90247e6ef14f2657a03473da --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. i686-msvc-2: 1h 41m -> 2h 22m (+39.6%)
  2. x86_64-gnu-llvm-21-2: 1h 17m -> 1h 44m (+35.6%)
  3. x86_64-gnu-llvm-21: 1h 1m -> 1h 19m (+29.6%)
  4. dist-arm-linux-musl: 1h 18m -> 1h 41m (+29.0%)
  5. dist-i686-msvc: 2h 26m -> 1h 51m (-23.7%)
  6. i686-gnu-nopt-2: 2h 10m -> 1h 44m (-19.6%)
  7. x86_64-gnu-aux: 2h 23m -> 1h 55m (-19.6%)
  8. dist-x86_64-apple: 2h 31m -> 2h 5m (-17.3%)
  9. x86_64-gnu-llvm-22-1: 1h 5m -> 1h 16m (+16.1%)
  10. tidy: 2m 43s -> 3m 8s (+15.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-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#141633 Suggest to bind self.x to x when field x may be in fo… 18a1047eae4d562ab157eb73e39e666e4e335400 (link)
#152980 c-variadic: fix implementation on avr 44a47b8ff362e052d5fffd357848f32fb15d6155 (link)
#154491 Extend core::char's documentation of casing issues (and f… a3ee818f17d4729da85ac1df275bcf6d0dc584ad (link)
#154970 rustdoc: preserve doc(cfg) on locally re-exported type al… 1c0ff795abb452b209a527ab53d0107c3c81bea6 (link)
#155095 changed the information provided by (mut x) to mut x (Fix 1… 18eae9a52f6ffd4f11d3d4c48b7e87a1b87665e1 (link)
#155305 Make convert_while_ascii unsafe eb28f6ba8ec856c02998eb1c51ebb8acf63f8db8 (link)
#155318 Use mutable pointers for Unix path buffers 6e7dacc995574b75bf930e96f093ca51fa8e8988 (link)
#155335 Bump bootstrap to 1.96 beta d9ff513e506199a3abbee48f5c6acfd6a82909a2 (link)
#155354 Remove AttributeSafety from BUILTIN_ATTRIBUTES 67888153155d0fba8c9c41f2cbb12b5ea9874ce4 (link)
#155358 ImproperCTypes: Move erasing_region_normalisation into help… 12df0ce58647a78b06fddbbaa33135eaff09a4fc (link)
#155377 tests/debuginfo/basic-stepping.rs: Remove FIXME related to … 1bbdcd639b1e2a8d67ef7bde94f77236bde4b235 (link)
#155383 Rearrange rustc_ast_pretty 2d5bc9e4238964b92339a8b1f99a3e96f7fac023 (link)
#155384 triagebot: notify on diagnostic attribute changes 0332c45160d9c7b66f77ef93a3c5a3d5cd27cceb (link)
#155386 Use box_new diagnostic item for Box::new suggestions 686fa52f6a84f4a832d681faae3bc65c72cb9f28 (link)
#155391 Small refactor of QueryJob::latch method 3aee0d8157b47c23a8327a32a98cb650fbe77653 (link)
#155395 Tweak how the "copy path" rustdoc button works to allow som… 7da676f81125c318055c7a82461e1cec928dc304 (link)
#155396 as_ref_unchecked docs link fix a506c8b0b76230ef9739aaa8752ea0db63110009 (link)
#155411 compiletest: Remove the //@ should-ice directive 9050039d57dac150f90dd11c2d00af50cba4a2fb (link)
#155413 fix: typo in std::fs::hard_link documentation 01d2280a27aa091cc5624b83a7ee498372007bf5 (link)

previous master: 1b8f2e46e1

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

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-js Area: Rustdoc's JS front-end 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-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.