Skip to content

Rollup of 14 pull requests - #162406

Merged
rust-bors[bot] merged 92 commits into
rust-lang:mainfrom
jhpratt:rollup-RYjt0tw
Sep 7, 2026
Merged

Rollup of 14 pull requests#162406
rust-bors[bot] merged 92 commits into
rust-lang:mainfrom
jhpratt:rollup-RYjt0tw

Conversation

@jhpratt

@jhpratt jhpratt commented Sep 7, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

ChayimFriedman2 and others added 30 commits June 29, 2026 03:34
Installing cargo tools (`cargo install`) without locked dependencies exposes users to supply-chain attacks to all the dependencies of the tool (https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/). Using `cargo install --locked` reduces this risk to a compromise of the tool itself, while using the locked and hashed version of the dependencies.

I went through all `rg "cargo install"` hits in the repository and added `--locked` to all but explanatory examples (such as cargo's docs on `cargo install` itself). I validated that those tools publish functioning `Cargo.lock`s with https://gist.github.com/konstin/bcb1169c1c1120c259dca64e777a64d0.
For two reasons:

 - This simplifies my work to fix rust-lang/rust-analyzer#23088; to fix that issue, macros must have to be able to return doc comments (and not just desugared doc comments), and code in `syntax-bridge` doesn't expect macros to return trivia. Making doc comments non-trivia solves that.
 - It should simplify the work to attach trivia to tokens; doc comments have no obvious place to attach (for example, when between two attributes we must attach them to either the preceding `]` or the following `#`, both will complicate code handling them).

Furthermore, arguably doc comments are really not a trivia: it's an error to put them in an unexpected place, and reason 2 above reveals that they're more like a kind of an attribute than a comment.

This touches a lot of places (especially assists etc.) subtly; I fixed what I found and the tests helped reveal more, but it's certainly possible some places are still not handling them correctly now.
`body` is no longer a neighbouring module, but rather a child of `expr_store`
The `continue` was aimed at the incorrect loop. I thought this will cause an infinite loop but it doesn't seem to, still it's incorrect.
fix: Fix handling of `#[unsafe()]` attrs without inner meta
A lot of callsites handled these variants similarly, so this ended up
simplifying things.
Example
---
```diff
-fn method(&mut self,params: <ty!()as SomeTrait>::Output) {}
+fn method(&mut self, params: <ty!()as SomeTrait>::Output) {}
```
merge `hir_def::hir::Expr::Unsafe` into `Expr::Block`
minor: add space after comma in prettify macro expansion
…ource

Address FIXME in base-db and update docs
…locked

Install cargo tools with locked dependencies
Example
---
```rust
fn main() {
    $01f64;
}
```

**Before this PR**

```rust
value of literal: ` 1 (0x1|0b1) `
```

**After this PR**

```rust
value of literal: ` 1 (bits: 0x3FF0000000000000) `
```
fix: hover `1f64` use float instead of integer
This updates the rust-version file to 59dabe5.
…lf-segment

fix: accept Self as non-leading path segment in attribute paths
…etails

render const value in completions label details
@rustbot rustbot added 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-infra Relevant to the infrastructure 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-rust-analyzer Relevant to the rust-analyzer 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 7, 2026
@jhpratt

jhpratt commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1ad8f9b 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 Sep 7, 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 Sep 7, 2026
@rust-bors

rust-bors Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 15m 46s
Pushing 656a9da to main...

@github-actions

github-actions Bot commented Sep 7, 2026

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 32d94cc (parent) -> 656a9da (this PR)

Test differences

Show 1510 test diffs

Stage 0

  • handlers::missing_body::tests::associated_const: [missing] -> pass (J0)
  • handlers::missing_body::tests::associated_type_impl: [missing] -> pass (J0)
  • handlers::missing_body::tests::free_const: [missing] -> pass (J0)
  • handlers::missing_body::tests::free_static: [missing] -> pass (J0)
  • handlers::missing_body::tests::type_alias_module: [missing] -> pass (J0)
  • handlers::unresolved_macro_call::tests::tool_attribute_with_keyword_segment: [missing] -> pass (J0)
  • tempfile::tests::named_temp_file_new_creates_file: [missing] -> pass (J0)
  • tests::item::const_eval_label_details: [missing] -> pass (J0)
  • tests::runner::err::non_isolated_self_err: [missing] -> pass (J0)
  • tests::runner::ok::non_isolated_self: [missing] -> pass (J0)

Stage 1

  • [assembly] tests/assembly-llvm/x86-vendor-intrinsics.rs: [missing] -> pass (J0)
  • [mir-opt] tests/mir-opt/enum_opt.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/closure-capture-not-send.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/closure-capture-overflow-no-query-cycle.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/successful-goal-during-ambiguity-reporting.rs: [missing] -> pass (J1)
  • handlers::missing_body::tests::associated_const: [missing] -> pass (J2)
  • handlers::missing_body::tests::associated_type_impl: [missing] -> pass (J2)
  • handlers::missing_body::tests::free_const: [missing] -> pass (J2)
  • handlers::missing_body::tests::free_static: [missing] -> pass (J2)
  • handlers::missing_body::tests::type_alias_module: [missing] -> pass (J2)
  • handlers::unresolved_macro_call::tests::tool_attribute_with_keyword_segment: [missing] -> pass (J2)
  • tempfile::tests::named_temp_file_new_creates_file: [missing] -> pass (J2)
  • tests::item::const_eval_label_details: [missing] -> pass (J2)
  • tests::runner::err::non_isolated_self_err: [missing] -> pass (J2)
  • tests::runner::ok::non_isolated_self: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/traits/closure-capture-not-send.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/traits/closure-capture-overflow-no-query-cycle.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/traits/next-solver/successful-goal-during-ambiguity-reporting.rs: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/complex-abi.rs#AIX: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/complex-abi.rs#POWERPC64: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/complex-abi.rs#POWERPC64LE: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/complex-abi.rs#SPARC64: [missing] -> pass (J6)

Stage 2

  • [mir-opt] tests/mir-opt/enum_opt.rs: pass -> [missing] (J3)
  • [codegen] tests/codegen-llvm/complex-abi.rs#AIX: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/complex-abi.rs#POWERPC64: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/complex-abi.rs#POWERPC64LE: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/complex-abi.rs#SPARC64: [missing] -> pass (J5)
  • [ui] tests/ui/traits/closure-capture-not-send.rs: [missing] -> pass (J7)
  • [ui] tests/ui/traits/closure-capture-overflow-no-query-cycle.rs: [missing] -> pass (J7)
  • [ui] tests/ui/traits/next-solver/successful-goal-during-ambiguity-reporting.rs: [missing] -> pass (J7)
  • [assembly] tests/assembly-llvm/x86-vendor-intrinsics.rs: [missing] -> pass (J8)
  • [assembly] tests/assembly-llvm/x86-vendor-intrinsics.rs: [missing] -> ignore (only executed when the target is x86_64-unknown-linux-gnu) (J9)

Additionally, 1468 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 656a9da186dacaf3bf8f7f7296a825d256cb4ae3 --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: 2h 3m -> 3h 14m (+56.8%)
  2. dist-riscv64-linux-gnu: 1h 9m -> 1h 35m (+37.9%)
  3. test-x86_64-gnu-llvm-22-1: 59m 49s -> 1h 21m (+36.1%)
  4. dist-i686-linux: 1h 20m -> 1h 48m (+35.8%)
  5. test-x86_64-gnu-stable: 2h 31m -> 1h 38m (-34.9%)
  6. dist-x86_64-freebsd: 1h 5m -> 1h 26m (+32.2%)
  7. dist-ohos-armv7: 59m 47s -> 1h 17m (+30.4%)
  8. dist-arm-linux-musl: 1h 22m -> 1h 47m (+30.3%)
  9. test-x86_64-mingw-2: 2h 9m -> 2h 47m (+28.8%)
  10. dist-x86_64-msvc: 2h 26m -> 3h 8m (+28.5%)
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 (656a9da): 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
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -6.9%)

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

Cycles

Results (primary 4.8%)

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

mean range count
Regressions ❌
(primary)
4.8% [4.4%, 5.1%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 4.8% [4.4%, 5.1%] 2

Binary size

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

Bootstrap: 477.995s -> 478.991s (0.21%)
Artifact size: 403.44 MiB -> 403.45 MiB (0.00%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI 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-infra Relevant to the infrastructure 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-rust-analyzer Relevant to the rust-analyzer 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.