Skip to content

Rollup of 5 pull requests#155267

Merged
rust-bors[bot] merged 22 commits intorust-lang:mainfrom
jhpratt:rollup-fgQZJCS
Apr 14, 2026
Merged

Rollup of 5 pull requests#155267
rust-bors[bot] merged 22 commits intorust-lang:mainfrom
jhpratt:rollup-fgQZJCS

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Apr 14, 2026

Successful merges:

r? @ghost

Create a similar rollup

notriddle and others added 22 commits March 24, 2026 22:37
This implements `-Z allow-partial-mitigations` as an unstable option,
currently with support for control-flow-guard and stack-protector.

As a difference from the RFC, we have `-Z allow-partial-mitigations=!foo`
rather than `-Z deny-partial-mitigations=foo`, since I couldn't find an easy
way to have an allow/deny pair of flags where the latter flag wins.

To allow for stabilization, this is only enabled starting from the next edition. Maybe a
better policy is possible (bikeshed).
…ments

For the unbalanced backtick check. This fix is arguably a hack, however
the original tidy check implementation is already based on heuristics
and so are likewise fuzzy. This is probably fine in practice.

Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
…s, r=rcvalle

Implement `-Z allow-partial-mitigations` (RFC 3855)

This implements `-Z allow-partial-mitigations` as an unstable option, currently with support for control-flow-guard and stack-protector.

As a difference from the RFC, we have `-Z allow-partial-mitigations=!foo` rather than `-Z deny-partial-mitigations=foo`, since I couldn't find an easy way to have an allow/deny pair of flags where the latter flag wins.

To allow for stabilization, this is only enabled starting from the next edition. Maybe a better policy is possible (bikeshed).

r? @rcvalle
…ter-cast-suggestion, r=davidtwco

Refactor: simplify report_selection_error

Split out `suggest_cast_to_fn_pointer` for better readability.
…s, r=jackh726

Trait aliases: Also imply default trait bounds on type params other than `Self`

Trait aliases already correctly imply default trait bounds on `Self` type params. However, due to an oversight, they didn't do that for normal type params.

Fixes rust-lang#152687.
rustdoc: dep-info for standalone markdown inputs

Part of rust-lang#146220 (comment)

r? @fmease
…=WaffleLapkin

tidy: handle `#[cfg_attr(bootstrap, doc = "...")]` in `compiler/` comments

For the unbalanced backtick check that Waffle ran into in rust-lang#154887.

This PR cherry-picks Waffle's tidy patch in that PR (and adds some explaining comments) even though I'd say this is somewhat hacky[^1]. But since the original tidy check implementation is already based on heuristics and so are likewise fuzzy, this is probably fine in practice for most cases.

[^1]: There can be false positives/negatives like having both fragments `cfg_attr` and `doc` inside a string literal, but I would expect that to be very very niche, so it's "good enough".

(I wanted to write a regression test, but this check needs some restructuring to make it more easy to test that I don't want to bundle in this PR.)

r? wafflelapkin (or bootstrap/compiler)
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 14, 2026
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-tidy Area: The tidy tool 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-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 14, 2026
@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented Apr 14, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 14, 2026

📌 Commit 30d2f5a has been approved by jhpratt

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

rust-bors bot commented Apr 14, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 23m 16s
Pushing 0006519 to main...

@rust-bors rust-bors bot merged commit 0006519 into rust-lang:main Apr 14, 2026
8 of 12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 14, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149357 Implement -Z allow-partial-mitigations (RFC 3855) cd8f7af33e6ba348c03985b5a207322634ffa9e3 (link)
#152688 Trait aliases: Also imply default trait bounds on type para… c7599b1dbc2d2e6d347c92082c5e476fc00cdcd3 (link)
#154352 rustdoc: dep-info for standalone markdown inputs be33662031b68a2c632b4a4175a3b6ff16e14d36 (link)
#154939 Refactor: simplify report_selection_error 4394feb62db01d0dfc7bb61db6ade337603478a7 (link)
#155195 tidy: handle #[cfg_attr(bootstrap, doc = "...")] in `comp… 13402312b4ab6b31bb1f1ebb63dee38b2402a0fa (link)

previous master: 338dff3e3a

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 338dff3 (parent) -> 0006519 (this PR)

Test differences

Show 64 test diffs

Stage 1

  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#control-flow-guard-future-allow-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-allow-then-deny: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-but-allow-control-flow-guard: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-allow-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-deny-allow-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-deny-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-explicit-deny: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#both: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#enable-separately-disable-together: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#enable-together-disable-separately: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-bad-cli.rs: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-current-edition.rs#control-flow-2024-explicit-deny: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#control-flow-guard-2024-default: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#control-flow-guard-2024-deny-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#stack-protector-2024-allow-deny-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#stack-protector-2024-deny-reset-by-mitigation: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-minicore.rs#default: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-minicore.rs#deny: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-and-control-flow-guard-explicit-allow: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-deny-then-allow: [missing] -> pass (J1)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-explicit-allow: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/default-trait-bounds.rs#fail: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/default-trait-bounds.rs#pass: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/more-default-trait-bounds.rs#fail: [missing] -> pass (J1)
  • [ui] tests/ui/traits/alias/more-default-trait-bounds.rs#pass: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#control-flow-guard-future-allow-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-allow-then-deny: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-but-allow-control-flow-guard: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-allow-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-deny-allow-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-deny-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-1-error.rs#stack-protector-future-explicit-deny: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#both: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#enable-separately-disable-together: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-2-errors.rs#enable-together-disable-separately: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-bad-cli.rs: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/err-allow-partial-mitigations-current-edition.rs#control-flow-2024-explicit-deny: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#control-flow-guard-2024-default: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#control-flow-guard-2024-deny-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#stack-protector-2024-allow-deny-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-current-edition.rs#stack-protector-2024-deny-reset-by-mitigation: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-minicore.rs#default: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations-minicore.rs#deny: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-and-control-flow-guard-explicit-allow: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-deny-then-allow: [missing] -> pass (J0)
  • [ui] tests/ui/allow-partial-mitigations/ok-allow-partial-mitigations.rs#stack-protector-explicit-allow: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/default-trait-bounds.rs#fail: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/default-trait-bounds.rs#pass: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/more-default-trait-bounds.rs#fail: [missing] -> pass (J0)
  • [ui] tests/ui/traits/alias/more-default-trait-bounds.rs#pass: [missing] -> pass (J0)

Additionally, 12 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 00065197834fd059fdaea30df5b6d1bf9791e539 --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-apple: 2h 15m -> 1h 43m (-23.3%)
  2. x86_64-gnu-llvm-22-1: 1h 11m -> 57m 10s (-20.4%)
  3. x86_64-gnu-llvm-21-2: 1h 25m -> 1h 42m (+20.4%)
  4. armhf-gnu: 1h 17m -> 1h 31m (+18.2%)
  5. aarch64-apple: 2h 47m -> 3h 17m (+17.5%)
  6. x86_64-gnu: 2h 5m -> 2h 25m (+16.6%)
  7. pr-check-1: 29m 10s -> 33m 34s (+15.1%)
  8. dist-aarch64-msvc: 1h 54m -> 1h 37m (-14.7%)
  9. pr-check-2: 38m 8s -> 43m 32s (+14.2%)
  10. optional-x86_64-gnu-parallel-frontend: 2h 23m -> 2h 42m (+13.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 (0006519): 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 2.1%, secondary -1.1%)

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

mean range count
Regressions ❌
(primary)
2.1% [2.1%, 2.1%] 1
Regressions ❌
(secondary)
2.0% [2.0%, 2.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.2% [-4.2%, -4.2%] 1
All ❌✅ (primary) 2.1% [2.1%, 2.1%] 1

Cycles

Results (primary -2.3%, secondary -3.6%)

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

Binary size

Results (secondary 0.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)
0.0% [0.0%, 0.0%] 13
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Bootstrap: 489.33s -> 491.89s (0.52%)
Artifact size: 394.21 MiB -> 394.24 MiB (0.01%)

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

Labels

A-run-make Area: port run-make Makefiles to rmake.rs A-tidy Area: The tidy tool 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-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.

7 participants