Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Nov 11, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

fmease and others added 30 commits September 13, 2025 02:52
It belongs here, because it moves from a `rustc_*` type to a
`rustdoc_json_types` type.
and remove unused Steal::get_mut
… Box<dyn Trait>`

```
error[E0310]: the parameter type `R` may not live long enough
  --> $DIR/implicit-static-lifetime-in-dyn-trait-return-type.rs:10:5
   |
LL | fn bb<R>(r: R) -> Box<dyn Foo> {
   |                       ------- this `dyn Trait` has an implicit `'static` lifetime bound
LL |     Box::new(Bar(r))
   |     ^^^^^^^^^^^^^^^^
   |     |
   |     the parameter type `R` must be valid for the static lifetime...
   |     ...so that the type `R` will meet its required lifetime bounds
   |
help: consider adding an explicit lifetime bound
   |
LL | fn bb<R: 'static>(r: R) -> Box<dyn Foo> {
   |        +++++++++
```
Adds missing test coverage for rustdoc's `--test-builder` option.

The existing test only covered the error case (non-executable builder). This PR
adds:
- A custom test builder that logs arguments and forwards to rustc
- A test verifying that `--test-builder` successfully invokes the custom
builder with rustc-style arguments
- Improved comments explaining both the error and success test scenarios

The test validates that custom builders can properly intercept and handle
doctest compilation.

Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Point at statics and consts being mutable borrowed or written to:

```
error[E0594]: cannot assign to immutable static item `NUM`
  --> $DIR/E0594.rs:4:5
   |
LL | static NUM: i32 = 18;
   | --------------- this `static` cannot be written to
...
LL |     NUM = 20;
   |     ^^^^^^^^ cannot assign
```

Point at the expression that couldn't be mutably borrowed from a pattern:

```
error[E0596]: cannot borrow data in a `&` reference as mutable
  --> $DIR/mut-pattern-of-immutable-borrow.rs:19:14
   |
LL |     match &arg.field {
   |           ---------- this cannot be borrowed as mutable
LL |         Some(ref mut s) => s.push('a'),
   |              ^^^^^^^^^ cannot borrow as mutable
```
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
This step consists of two changes:

- Renaming `self` to `props`
- Inserting temporary comments to preserve line breaks

This will make it easier to verify that the main migration commit preserves all
of the lines being migrated.
Use `git diff --color-moved --color-moved-ws=ignore-all-space` (or similar) to
verify that the directive-processing lines have been moved without changes.
…without a pattern outside of `extern` blocks
@rustbot rustbot added O-windows Operating system: Windows 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-clippy Relevant to the Clippy team. 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-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. rollup A PR which is a rollup labels Nov 11, 2025
@Zalathar
Copy link
Member Author

Subset of #148813.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 11, 2025

📌 Commit 16944b8 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors 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 Nov 11, 2025
@bors
Copy link
Collaborator

bors commented Nov 11, 2025

⌛ Testing commit 16944b8 with merge 9312cd6...

@bors
Copy link
Collaborator

bors commented Nov 11, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 9312cd6 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 11, 2025
@bors bors merged commit 9312cd6 into rust-lang:main Nov 11, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 11, 2025
@Zalathar Zalathar deleted the rollup-tf5ti2m branch November 11, 2025 13:30
@github-actions
Copy link
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 c8f22ca (parent) -> 9312cd6 (this PR)

Test differences

Show 923 test diffs

Stage 0

  • directives::tests::handler_names: [missing] -> pass (J0)
  • errors::verify_parse_varargs_without_pattern_187: [missing] -> pass (J2)

Stage 1

  • [rustdoc] tests/rustdoc/jump-to-def-assoc-items.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def-ice-assoc-types.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def-ice.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/assoc-items.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/assoc-types.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/doc-links-calls.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/doc-links.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-doc-links-calls.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-doc-links.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-macro.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-pats.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-prelude-types.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-non-local-method.rs: pass -> [missing] (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/macro.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/no-body-items.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/non-local-method.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/patterns.rs: [missing] -> pass (J2)
  • [rustdoc] tests/rustdoc/jump-to-def/prelude-types.rs: [missing] -> pass (J2)
  • [ui] tests/ui/attributes/proc-macro-unsafe.rs: [missing] -> pass (J2)
  • [ui] tests/ui/c-variadic/parse-errors.rs#e2015: [missing] -> pass (J2)
  • [ui] tests/ui/c-variadic/parse-errors.rs#e2018: [missing] -> pass (J2)
  • [ui] tests/ui/lint/function_casts_as_integer.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/mut-pattern-of-immutable-borrow.rs: [missing] -> pass (J2)
  • [ui] tests/ui/suggestions/lifetimes/implicit-static-lifetime-in-dyn-trait-return-type.rs: [missing] -> pass (J2)
  • num::i128::test_div_exact: [missing] -> pass (J4)
  • num::i128::test_exact_div: pass -> [missing] (J4)
  • num::i16::test_div_exact: [missing] -> pass (J4)
  • num::i16::test_exact_div: pass -> [missing] (J4)
  • num::i32::test_div_exact: [missing] -> pass (J4)
  • num::i32::test_exact_div: pass -> [missing] (J4)
  • num::i64::test_div_exact: [missing] -> pass (J4)
  • num::i64::test_exact_div: pass -> [missing] (J4)
  • num::i8::test_div_exact: [missing] -> pass (J4)
  • num::i8::test_exact_div: pass -> [missing] (J4)
  • num::u128::test_div_exact: [missing] -> pass (J4)
  • num::u128::test_exact_div: pass -> [missing] (J4)
  • num::u16::test_div_exact: [missing] -> pass (J4)
  • num::u16::test_exact_div: pass -> [missing] (J4)
  • num::u32::test_div_exact: [missing] -> pass (J4)
  • num::u32::test_exact_div: pass -> [missing] (J4)
  • num::u64::test_div_exact: [missing] -> pass (J4)
  • num::u64::test_exact_div: pass -> [missing] (J4)
  • num::u8::test_div_exact: [missing] -> pass (J4)
  • num::u8::test_exact_div: pass -> [missing] (J4)
  • errors::verify_parse_varargs_without_pattern_187: [missing] -> pass (J6)

Stage 2

  • [ui] tests/ui/attributes/proc-macro-unsafe.rs: [missing] -> pass (J1)
  • [ui] tests/ui/c-variadic/parse-errors.rs#e2015: [missing] -> pass (J1)
  • [ui] tests/ui/c-variadic/parse-errors.rs#e2018: [missing] -> pass (J1)
  • [ui] tests/ui/lint/function_casts_as_integer.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/mut-pattern-of-immutable-borrow.rs: [missing] -> pass (J1)
  • [ui] tests/ui/suggestions/lifetimes/implicit-static-lifetime-in-dyn-trait-return-type.rs: [missing] -> pass (J1)
  • num::i128::test_div_exact: [missing] -> pass (J3)
  • num::i128::test_exact_div: pass -> [missing] (J3)
  • num::i16::test_div_exact: [missing] -> pass (J3)
  • num::i16::test_exact_div: pass -> [missing] (J3)
  • num::i32::test_div_exact: [missing] -> pass (J3)
  • num::i32::test_exact_div: pass -> [missing] (J3)
  • num::i64::test_div_exact: [missing] -> pass (J3)
  • num::i64::test_exact_div: pass -> [missing] (J3)
  • num::i8::test_div_exact: [missing] -> pass (J3)
  • num::i8::test_exact_div: pass -> [missing] (J3)
  • num::u128::test_div_exact: [missing] -> pass (J3)
  • num::u128::test_exact_div: pass -> [missing] (J3)
  • num::u16::test_div_exact: [missing] -> pass (J3)
  • num::u16::test_exact_div: pass -> [missing] (J3)
  • num::u32::test_div_exact: [missing] -> pass (J3)
  • num::u32::test_exact_div: pass -> [missing] (J3)
  • num::u64::test_div_exact: [missing] -> pass (J3)
  • num::u64::test_exact_div: pass -> [missing] (J3)
  • num::u8::test_div_exact: [missing] -> pass (J3)
  • num::u8::test_exact_div: pass -> [missing] (J3)
  • [rustdoc] tests/rustdoc/jump-to-def-assoc-items.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def-ice-assoc-types.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def-ice.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/assoc-items.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/assoc-types.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/doc-links-calls.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/doc-links.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-doc-links-calls.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-doc-links.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-macro.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-pats.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-def-prelude-types.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/jump-to-non-local-method.rs: pass -> [missing] (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/macro.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/no-body-items.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/non-local-method.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/patterns.rs: [missing] -> pass (J5)
  • [rustdoc] tests/rustdoc/jump-to-def/prelude-types.rs: [missing] -> pass (J5)

Additionally, 832 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 9312cd6d38396a13a08be73bb589fb1cf3dd32e6 --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. aarch64-apple: 7079.7s -> 8688.1s (+22.7%)
  2. dist-x86_64-apple: 10939.3s -> 8509.1s (-22.2%)
  3. pr-check-1: 1777.9s -> 1485.4s (-16.4%)
  4. x86_64-gnu-tools: 3777.0s -> 3309.5s (-12.4%)
  5. x86_64-gnu-gcc: 3474.1s -> 3053.9s (-12.1%)
  6. i686-gnu-nopt-1: 8261.6s -> 7268.9s (-12.0%)
  7. x86_64-gnu-llvm-20: 2783.1s -> 2473.3s (-11.1%)
  8. tidy: 172.9s -> 153.8s (-11.1%)
  9. pr-check-2: 2628.5s -> 2345.8s (-10.8%)
  10. x86_64-gnu-llvm-21-1: 3616.7s -> 3257.0s (-9.9%)
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
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#141470 Add new function_casts_as_integer lint 351c18a072bd83a73349c894510722787ca28655 (link)
#143619 c_variadic: Add future-incompatibility warning for ... 43ef21b99e7bdfef7f7d3e1f236de7b377a6dbd1 (link)
#146495 rustdoc: Erase #![doc(document_private_items)] 4a85f541c150405312e6d8d7f5c750e64b450287 (link)
#147771 Rename *exact_{div,shr,shl} to *{div,shr,shl}_exact 329f86aa31858efa50390be9b5150bd135a66194 (link)
#147833 rustdoc-json: move target to json::conversions 1fec163ada1ff66b08b3b9336e98614d9c6f6a26 (link)
#147955 compiletest: Migrate TestProps directive handling to a sy… af5b643d8cb43a63a3208d41462fe8f02cd7c223 (link)
#148480 Add Steal::risky_hack_borrow_mut e0c5bf1c1df484e67f79536f34d0305a8dfd20b0 (link)
#148506 Special case detecting 'static lifetime requirement comin… 19d78894233c91d703397cb9e29924c14cf0e06d (link)
#148508 Provide more context when mutably borrowing an imutably bor… 8e19d404e38dd05982c04bce27dc2d7847d150d2 (link)
#148530 update the bootstrap readme e61a864d985a33594ac45f89a37d8c880eda9f6c (link)
#148608 Add test for --test-builder success path 59b569fb8c685b5cfa99db4e288428f7eb8804a9 (link)
#148636 bootstrap: respect build.python on macOS 25beb0dd451b4cca37f5caceb284d2c91185541f (link)
#148639 test(rustdoc): move tests into jump-to-def 0797876c26ca997c80dfa1a5399c0182273270f4 (link)
#148647 Check unsafety for non-macro attributes in validate_attr d4401e6cebeacf8d02a78841300e1bc5431dedc3 (link)
#148667 a few small clippy fixes 6098d2fa43f2441b3a84c0139ea46524537cbac7 (link)

previous master: c8f22ca269

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
Collaborator

Finished benchmarking commit (9312cd6): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

Results (primary -1.6%, secondary -2.4%)

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)
-1.6% [-1.6%, -1.6%] 1
Improvements ✅
(secondary)
-2.4% [-4.2%, -1.4%] 3
All ❌✅ (primary) -1.6% [-1.6%, -1.6%] 1

Cycles

Results (secondary 0.8%)

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)
2.4% [2.1%, 2.6%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.2% [-2.2%, -2.2%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 476.181s -> 477.625s (0.30%)
Artifact size: 391.36 MiB -> 391.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-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like O-windows Operating system: Windows 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-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. 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-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.