Skip to content

Rollup of 13 pull requests#157932

Merged
rust-bors[bot] merged 33 commits into
rust-lang:mainfrom
jhpratt:rollup-OmNrNWw
Jun 15, 2026
Merged

Rollup of 13 pull requests#157932
rust-bors[bot] merged 33 commits into
rust-lang:mainfrom
jhpratt:rollup-OmNrNWw

Conversation

@jhpratt

@jhpratt jhpratt commented Jun 15, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

GuillaumeGomez and others added 30 commits May 21, 2026 15:57
it is not as important anymore (see next comment)
…uses

Mentored-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Signed-off-by: Dilshad Azam <azam.dilshad@gmail.com>
1. Simple type const
2. Inherent associated type const
3. Trait associated type const
The correct size for `Layout` of a scalable vector ought to include the
number of vectors, otherwise we generate `memcpy` that do not copy the
entire vector and things like that.
rustc typically uses a return area pointer if the size of a return value
is larger than two pointers, except for SIMD vectors and now scalable
vectors. Given the previous commit, scalable types are more likely to
trigger this conditional than previously. This is already tested in the
output of the `codegen-llvm/scalable-vectors/tuple-intrinsics.rs` test.
The operation is a no-op, so we skip it.
`poly_trait_ref.parens` only records that the parser saw parentheses
around a trait-object/impl-trait bound; it does not guarantee that the
bound's span actually points at those parentheses in the source. A
proc-macro can synthesize the parentheses while reusing an unrelated span
from its input, so the span may not be wrapped in parentheses at all.

Previously the lint unconditionally trimmed the first and last byte of the
span to build the "remove these parentheses" suggestion. On such reused
spans this produced an invalid suggestion (e.g. rewriting a field
`val: u8` to `al: u`) and could even ICE when the span started or ended on
a multibyte character.

Only emit the lint when the source text at the span really is wrapped in
parentheses.
…t_into, r=Amanieu

Stabilize `int_format_into` feature

Fixes rust-lang#138215.

r? @Amanieu
…initialized, r=estebank

fixed: differentiation between uninitialized and possibly uninitialized

Fix: rust-lang#157267
…r=jhpratt

Document that `ManuallyDrop`'s `Box` interaction has been fixed

Both rust-lang#150447 and rust-lang#150446 has been merged in `1.96.0`, fixing the unfortunate `ManuallyDrop<Box<_>>` behavior.

cc @RalfJung
…, r=wesleywiser

lower edition requirements for some async-closure test helpers
…alfJung

remove LLVM `va_end` calls

tracking issue: rust-lang#44930

The operation is a no-op, so we skip it.
…st-evaluation, r=BoxyUwU

normalize instead of evaluating type const patterns

closes: rust-lang#156409
Fixes: rust-lang/project-const-generics#116

r? @BoxyUwU
…-macro-span, r=mejrs

Don't emit `unused_parens` suggestion for proc-macro-synthesized parens around bounds

Supersedes rust-lang#157662, which got auto closed after I force pushed the branch and github won't let me reopen it. Fixes rust-lang#144378.

When the unused_parens lint removes the parentheses around a trait bound, it assumed the bound's span starts and ends with those parentheses, so it just trimmed one byte off each end to build the suggestion. That isn't always true. A proc macro can give the bound a span that doesn't point at parentheses at all, and then trimming a byte produces a broken suggestion, or crashes when that byte lands in the middle of a multibyte character.

So now we only remove the parens when the source text at that span actually starts with `(` and ends with `)`. That also handles the unicode parens case you mentioned, since `(` isn't an ASCII `(` and just gets skipped.

I added a test that reproduces the crash with a proc macro.

r? @mejrs
fix binding const argument to assoc type suggestion

r? fmease

fixes rust-lang#151602
…um-vectors, r=lqd

scalable vecs size incl. num vecs + no sret for scalable vecs

The correct size for `Layout` of a scalable vector ought to include the number of vectors, otherwise we generate `memcpy` that do not copy the entire vector and things like that. This is tested in `ui/scalable-vectors/layout.rs`.

Additionally, rustc typically uses a return area pointer if the size of a return value is larger than two pointers, except for SIMD vectors and now scalable vectors. Given the previous change, scalable types are more likely to trigger this conditional than previously. This is already tested in the output of the `codegen-llvm/scalable-vectors/tuple-intrinsics.rs` test.

r? @lqd
…cate-ice, r=JonathanBrouwer

Avoid ICE on invalid crate-level cfg_attr predicates

Fixes rust-lang#157892
jhpratt added 3 commits June 15, 2026 16:16
mention in the `extern "tail"` error that it's supported on x86

rust-lang#157016 (comment)
r? folkertdev
@bors rollup
mailmap: add mu001999

Add new email addresses in the mailmap.

I think self reviews are OK for this kind of change, so r? me
Update books

## rust-lang/reference

2 commits in 01b0ee707f4571e803c8b2c471d8335a448f5d60..2c27905c15a51983b54d84f050d3bda096194d27
2026-06-15 14:08:07 UTC to 2026-06-08 16:22:03 UTC

- undefined: fix typo (rust-lang/reference#2285)
- Document RISC-V d, e, and f extensions (rust-lang/reference#2274)
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jun 15, 2026
@jhpratt

jhpratt commented Jun 15, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

📌 Commit e1af1a0 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jun 15, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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 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 Jun 15, 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 Jun 15, 2026
@rust-bors

rust-bors Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 38m 55s
Pushing 01dfd79 to main...

@rust-bors rust-bors Bot merged commit 01dfd79 into rust-lang:main Jun 15, 2026
14 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 15, 2026
@rustbot rustbot added this to the 1.98.0 milestone Jun 16, 2026
@jhpratt jhpratt deleted the rollup-OmNrNWw branch June 16, 2026 00:00
@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 42d7d52 (parent) -> 01dfd79 (this PR)

Test differences

Show 313 test diffs

Stage 1

  • [ui (polonius)] tests/ui/borrowck/borrowck-if-else-uninitialized.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/borrowck/borrowck-if-elseif-else-uninitialezed.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/borrowck/borrowck-match-multiple-uninitialized.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/borrowck/borrowck-match-uninitialized.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/conditional-compilation/cfg_attr-invalid-predicate-inner.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/const-generics/mgca/type-const-suggestion.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/const-generics/mgca/type_const_in_pattern.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/const-generics/mgca/type_const_in_pattern_too_generic.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/lint/unused/unused-parens-trait-obj-proc-macro-144378.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/scalable-vectors/layout.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J0)
  • [ui] tests/ui/borrowck/borrowck-if-else-uninitialized.rs: [missing] -> pass (J4)
  • [ui] tests/ui/borrowck/borrowck-if-elseif-else-uninitialezed.rs: [missing] -> pass (J4)
  • [ui] tests/ui/borrowck/borrowck-match-multiple-uninitialized.rs: [missing] -> pass (J4)
  • [ui] tests/ui/borrowck/borrowck-match-uninitialized.rs: [missing] -> pass (J4)
  • [ui] tests/ui/conditional-compilation/cfg_attr-invalid-predicate-inner.rs: [missing] -> pass (J4)
  • [ui] tests/ui/const-generics/mgca/type-const-suggestion.rs: [missing] -> pass (J4)
  • [ui] tests/ui/const-generics/mgca/type_const_in_pattern.rs: [missing] -> pass (J4)
  • [ui] tests/ui/const-generics/mgca/type_const_in_pattern_too_generic.rs: [missing] -> pass (J4)
  • [ui] tests/ui/lint/unused/unused-parens-trait-obj-proc-macro-144378.rs: [missing] -> pass (J4)
  • [ui] tests/ui/scalable-vectors/layout.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J4)

Stage 2

  • [ui] tests/ui/scalable-vectors/layout.rs: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/borrowck-if-else-uninitialized.rs: [missing] -> pass (J2)
  • [ui] tests/ui/borrowck/borrowck-if-elseif-else-uninitialezed.rs: [missing] -> pass (J2)
  • [ui] tests/ui/borrowck/borrowck-match-multiple-uninitialized.rs: [missing] -> pass (J2)
  • [ui] tests/ui/borrowck/borrowck-match-uninitialized.rs: [missing] -> pass (J2)
  • [ui] tests/ui/conditional-compilation/cfg_attr-invalid-predicate-inner.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/type-const-suggestion.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/type_const_in_pattern.rs: [missing] -> pass (J2)
  • [ui] tests/ui/const-generics/mgca/type_const_in_pattern_too_generic.rs: [missing] -> pass (J2)
  • [ui] tests/ui/lint/unused/unused-parens-trait-obj-proc-macro-144378.rs: [missing] -> pass (J2)
  • [ui] tests/ui/scalable-vectors/layout.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J3)

Additionally, 282 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 01dfd79246f1b2d5f146616deff08223a840a9ae --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-mingw: 1h 40m -> 2h 32m (+52.9%)
  2. x86_64-gnu-distcheck: 2h 31m -> 1h 40m (-34.1%)
  3. dist-x86_64-illumos: 1h 24m -> 1h 46m (+26.6%)
  4. x86_64-gnu-gcc: 1h 12m -> 55m 33s (-23.8%)
  5. dist-riscv64-linux: 1h 32m -> 1h 11m (-23.2%)
  6. x86_64-msvc-1: 2h 7m -> 2h 32m (+19.8%)
  7. aarch64-apple-macos-26: 3h 15m -> 2h 44m (-15.7%)
  8. pr-check-1: 31m 23s -> 36m 9s (+15.2%)
  9. x86_64-gnu-llvm-21: 1h 16m -> 1h 26m (+12.4%)
  10. dist-powerpc-linux: 1h 30m -> 1h 19m (-12.0%)
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
#152544 Stabilize int_format_into feature 348370834f887b88a2c65939fac7392f882d2d66 (link)
#155750 Document that ManuallyDrop's Box interaction has been f… 00b27c4dd792a4acebf81d0b024c50277635a742 (link)
#157075 lower edition requirements for some async-closure test help… 4aaf973ea6025b7adf40338c5999d69eb5c833bf (link)
#157507 fixed: differentiation between uninitialized and possibly u… 956835966b912addfe9c8df50fd9ffa13cea2e98 (link)
#157627 remove LLVM va_end calls c89e2468622ce13ddb5102cb34296bdfda5dd9a9 (link)
#157660 normalize instead of evaluating type const patterns a243201485ce409d4cf12669a33ca1f4849034b7 (link)
#157692 Don't emit unused_parens suggestion for proc-macro-synthe… 5a0a35ecd235ff303235b8ec605077748fd96a77 (link)
#157908 fix binding const argument to assoc type suggestion 2a702526f16df587eec1f8b69305575c35152367 (link)
#157915 scalable vecs size incl. num vecs + no sret for scalable ve… 511dddfc1d933f9a4dc60ddad194a7078461aec2 (link)
#157916 Avoid ICE on invalid crate-level cfg_attr predicates 49500feaa01cb4ff0110535ae755cecf560c35d1 (link)
#157919 mention in the extern "tail" error that it's supported on… c7460554050426ac25a4ff0ddb0ffc297e4940a5 (link)
#157920 mailmap: add mu001999 6135781d3f8d65673128c61196961d38591ea397 (link)
#157924 Update books c0c43ffec955f40550027c32442e44b0c3cc515f (link)

previous master: 42d7d52920

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

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (01dfd79): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

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

Results (secondary 41.0%)

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

Binary size

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

Bootstrap: 518.288s -> 519.231s (0.18%)
Artifact size: 401.47 MiB -> 401.41 MiB (-0.01%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) 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 merged-by-bors This PR was explicitly merged by bors. 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.