Skip to content

Rollup of 7 pull requests - #157473

Merged
rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-0TD8E2I
Jun 5, 2026
Merged

Rollup of 7 pull requests#157473
rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-0TD8E2I

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

sanidhyasinand others added 15 commits June 3, 2026 12:09
These methods return `io::Result` but did not document why they can fail
or, importantly, that a child terminated by a signal is reported through
its `ExitStatus` rather than as an `Err`.
Add `# Errors` sections describing the common reasons spawning a child
can fail (program not found, missing permission, resource exhaustion)
and clarifying that a running child which exits unsuccessfully or is
killed by a signal is not an error: those methods still return `Ok` and
the outcome is reflected in the resulting `ExitStatus`.
…, r=lcnr
Dont bail in error predicate unless self ty is error in new solver
Continuation of rust-lang#146602.
r? lcnr
@lcnrrust-lang#146602 (comment)
> I think we should move this out of assemble_builtin_impl_candidate to avoid ambiguity between e.g. blanket impls and the builtin impl candidate 🤔
Where do you want to put it?
…acro, r=Urgau
Create non-exhaustive `proc_macro::EscapeError` enum mirrorring `rustc-literal-escaper`'s
As discussed in rust-lang/literal-escaper#26.
r? @Urgau
…rrow-suggestion, r=mejrs
Suppress E0621 perpetual borrow suggestion
Fixesrust-lang#156682
E0621 suggests `&'a mut Buffer<'a>` when you write `&mut Buffer<'a>` and the compiler wants a named lifetime on the outer reference. That ties both lifetimes together and makes the value unusable after the call. Usually it's not the info that the user actually needs.
When the suggested fix would produce `&'a [mut] T` where `'a` also appears inside `T`, with the changes being implemented on this PR we now suppress the `help:` suggestion and instead emit a `help:` linking to the nomicon's borrow-splitting chapter, which explains the actual fix. Detection uses the pre-fold parameter type and only fires for mutable references, avoiding false positives on trait objects (`&dyn Foo` folds to `&'a (dyn Foo + 'a)`) and shared references (`&'a S<'a>` is often intentional).
What we had before the changes:
```
help: add explicit lifetime `'a` to the type of `buffer`
|
5 | pub fn foo<'a>(buffer: &'a mut Buffer<'a>) {
| ++
```
What we are going to have now after:
```
error[E0621]: explicit lifetime required in the type of `buffer`
|
5 | buffer.buf = &mut buffer.buf[..];
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
|
= help: see <https://doc.rust-lang.org/nomicon/borrow-splitting.html> for more
information about lifetime errors related to mutable references
```
…c, r=wesleywiser
fix armv7a-none-eabihf tier doc
I found that PR rust-lang#146522 promoted `armv7a-none-eabihf` from Tier 3 to Tier 2, updating the target spec, `armv7a-none-eabi.md` and `platform-support.md`, but missed updating `arm-none-eabi.md`. The target remained listed under Tier 3 in that file.
So I move `armv7a-none-eabihf` from Tier 3 to Tier 2 in `arm-none-eabi.md`, merging it with the existing `armv7a-none-eabi` entry.
This makes the documentation consistent with the actual tier in the target spec and `platform-support.md`.
r? @wesleywiser
…-errors, r=LawnGnome
Document error conditions for `Command::{spawn, output, status}`
Fixesrust-lang#150361.
`Command::spawn`, `Command::output`, and `Command::status` all return `io::Result`, but the docs never explain *why* they can fail, and they do not mention the (easy to get wrong) distinction between a failure to spawn and a child that runs but exits unsuccessfully or is killed by a signal.
This adds an `# Errors` section to each method:
- **`spawn`** describes the common reasons spawning fails — the program not being found, lacking permission to execute it (e.g. not executable, or blocked by a policy such as `seccomp`), and the OS being unable to create the process due to resource exhaustion. It also clarifies that an error is only returned for failures *while spawning*; once the child has started, anything that happens to it (including signals) is reported through its `ExitStatus`.
- **`output`** and **`status`** refer back to `spawn` for the spawn failures, and explicitly note that a child which exits unsuccessfully or is terminated by a signal is **not** an error — they still return `Ok`, with the outcome reflected in the resulting `ExitStatus`.
The error conditions and the signal/`ExitStatus` behavior were confirmed by `@bjorn3` in the issue discussion.
Docs-only change; no code blocks were added or modified, and all intra-doc links (`io::Error`, `ExitStatus`, `Output`, `spawn`) follow link patterns already used in this module.
r? libs
…r-kulst, r=ZuseZ4
NVPTX: Add @kulst to the target maintainers
@kulst is joining me as a `nvptx64-nvidia-cuda` target maintainer 🎆
r? @ZuseZ4
…=mejrs
Make distinction between crate-level attributes that are warned vs errored
r? @mejrs
This is a follow-up to rust-lang#157377 (comment)
This PR makes all unstable crate-level attributes error on incorrect targets.
To make the diff more helpful, I'd recommend reviewing the two commits separately.
* The first commit introduces the infra & makes all crate-level attributes a warning, the commit should have no effect
* The second commit undoes some changes from the first commit, to make all unstable crate-level attributes error
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Jun 5, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jun 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@rust-bors

rust-borsBot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 6e9a810 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Jun 5, 2026
@rust-bors

This comment has been minimized.

@rust-borsrust-borsBot 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 5, 2026
@rust-bors

rust-borsBot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 12m 46s
Pushing 39ec825 to main...

@rust-bors
rust-borsBot merged commit 39ec825 into rust-lang:mainJun 5, 2026
13 checks passed
@rustbotrustbot added this to the 1.98.0 milestone Jun 5, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR#MessagePerf Build Sha
#150453Dont bail in error predicate unless self ty is error in new…81ec9f1c65343922954571b514eee6955f4ec780 (link)
#156892Suppress E0621 perpetual borrow suggestion4b6e81b33de120e16857c5289a4c81781b40af79 (link)
#157135fix armv7a-none-eabihf tier doc78d22d016a928514381a268421b5be92ebbd817d (link)
#157360Document error conditions for `Command::{spawn, output, sta…319916bf44839c8076e8c17ddb94c2dd63dba9f6 (link)
#157418NVPTX: Add @kulst to the target maintainers4881127fcb7e52679b8181a717fc8099baaffc80 (link)
#157442Create non-exhaustive proc_macro::EscapeError enum mirror…2689cd25a6487b577f285a79027ec3c3b1c735fd (link)
#157443Make distinction between crate-level attributes that are wa…f57b98cf0f771632e21929bb35bdcff218aa93de (link)

previous master: 3179a47d67

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
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 3179a47 (parent) -> 39ec825 (this PR)

Test differences

Show 202 test diffs

Stage 1

  • [ui] tests/ui/lifetimes/lifetime-errors/e0621-mut-ref-aliases-pointee-lifetime-distinct.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/lifetime-errors/e0621-mut-ref-aliases-pointee-lifetime.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/lifetimes/lifetime-errors/e0621-mut-ref-aliases-pointee-lifetime-distinct.rs: [missing] -> pass (J0)
  • [ui] tests/ui/lifetimes/lifetime-errors/e0621-mut-ref-aliases-pointee-lifetime.rs: [missing] -> pass (J0)

Additionally, 198 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 39ec825c441918a4ae623a9b8840d1ccd446dcff --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 37m -> 2h 15m (+38.2%)
  2. dist-aarch64-linux: 1h 50m -> 2h 32m (+37.2%)
  3. x86_64-msvc-ext3: 1h 23m -> 1h 53m (+37.1%)
  4. dist-i686-msvc: 1h 48m -> 2h 24m (+33.6%)
  5. i686-gnu-1: 1h 52m -> 2h 24m (+27.8%)
  6. dist-x86_64-illumos: 1h 25m -> 1h 47m (+25.2%)
  7. dist-x86_64-msvc: 1h 41m -> 2h 6m (+24.9%)
  8. dist-armhf-linux: 1h 24m -> 1h 3m (-24.9%)
  9. x86_64-gnu-llvm-21-2: 1h 20m -> 1h 39m (+23.7%)
  10. x86_64-msvc-ext2: 1h 53m -> 1h 27m (-22.8%)
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

Finished benchmarking commit (39ec825): 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)

Results (primary 0.2%, secondary 3.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
4.1%[4.1%, 4.1%]1
Regressions ❌
(secondary)
6.8%[5.6%, 8.1%]2
Improvements ✅
(primary)
-1.7%[-2.2%, -1.3%]2
Improvements ✅
(secondary)
-2.0%[-2.0%, -2.0%]1
All ❌✅ (primary)0.2%[-2.2%, 4.1%]3

Cycles

Results (secondary 0.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-2.4%[-2.4%, -2.4%]1
All ❌✅ (primary)--0

Binary size

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

Bootstrap: 515.747s -> 514.669s (-0.21%)
Artifact size: 400.75 MiB -> 400.66 MiB (-0.02%)

@JonathanBrouwer
JonathanBrouwer deleted the rollup-0TD8E2I branch August 21, 2026 07:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@JonathanBrouwer@rust-timer@rustbot@sanidhyasin@cezarbbb@kjetilkjeka@GuillaumeGomez@Dnreikronos@compiler-errors