Skip to content

Conversation

@Zalathar
Copy link
Member

Successful merges:

r? @ghost

Create a similar rollup

Paladynee and others added 30 commits November 20, 2025 11:27
Signed-off-by: Antonio Souza <arfs.antonio@gmail.com>
When an async closure captures a variable by move but is constrained to
`AsyncFn` or `AsyncFnMut`, the error message now explains that the
closure kind is the issue and points to the trait bound, similar to the
existing diagnostic for `Fn`/`FnMut` closures.
…thar

Tidy: detect ui tests subdirectory changes so `tests/ui/README.md` stays in sync

close: rust-lang#150399

There's an issue where `tests/ui/README.md` isn't updated whenever the ui subdirectory changes.
I've added subdirectory change detection to tidy ~~added a new mention to `triage.toml` to notify `tests/ui/README.md` to also be updated~~.

r? @Urgau
…iagnostic-v2, r=lcnr

Improve move error diagnostic for `AsyncFn` closures

When an async closure captures a variable by move but is constrained to `AsyncFn` or `AsyncFnMut`, the error message now explains that the closure kind is the issue and points to the trait bound, similar to the existing diagnostic for `Fn`/`FnMut` closures.

**Before:**
```
error[E0507]: cannot move out of `foos` which is behind a shared reference
  --> src/lib.rs:12:20
   |
11 | async fn foo(foos: &mut [&mut Foo]) -> Result<(), ()> {
   |              ---- move occurs because `foos` has type...
12 |     in_transaction(async || -> Result<(), ()> {
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^ `foos` is moved here
13 |         for foo in foos {
   |                    ---- variable moved due to use in coroutine
```

**After:**
```
error[E0507]: cannot move out of `y`, a captured variable in an `AsyncFn` closure
  --> src/lib.rs:9:10
   |
LL |     let y = vec![format!("World")];
   |         - captured outer variable
LL |     call(async || {
   |          ^^^^^^^^ captured by this `AsyncFn` closure
...
help: `AsyncFn` and `AsyncFnMut` closures require captured values to be able
      to be consumed multiple times, but `AsyncFnOnce` closures may consume
      them only once
  --> src/lib.rs:5:27
   |
LL | fn call<F>(_: F) where F: AsyncFn() {}
   |                           ^^^^^^^^^
```

Fixes rust-lang#150174
…arn, r=nnethercote,saethlin

Fix -Zmir-enable-passes to detect unregistered enum names in declare_passes macro

related: rust-lang#150910

I fixed declare_passes macro to detect unregistered enum names

### UI Results
+nightly --> before: no warnings
+stage1 --> after: detect SimplifyCfg as an unknown pass

<img width="591" height="199" alt="スクリーンショット 2026-01-24 23 53 41" src="https://github.com/user-attachments/assets/ddabaa58-b4c6-4e80-a3c9-f40d866db273" />
Make `QueryDispatcher::Qcx` an associated type

There's no reason to think that a query dispatcher/vtable would support multiple query-context types, and this simplifies some generic signature boilerplate.

---

- This is the planned change that was mentioned in rust-lang#151777 (comment).

r? nnethercote
…pratt

Implement `cast_slice` for raw pointer types

Tracking issue: rust-lang#149103

This PR implements the method `cast_slice` that defers to the respective `slice_from_raw_parts` call for `*const T`, `*mut T` and `NonNull<T>`, and copies over their documentation.
```rust
impl<T> *const T {
    pub const fn cast_slice(self, len: usize) -> *const [T];
}
impl<T> *mut T {
    pub const fn cast_slice(self, len: usize) -> *mut [T];
}
impl<T> NonNull<T> {
    pub const fn cast_slice(self, len: usize) -> NonNull<[T]>;
}
```
…cated-search, r=lolbinarycat

[rustdoc] Add a marker to tell users that there are hidden (deprecated) items in the search results

Someone on mastodon rightfully pointed out that having a visual indication that some search results were hidden would be a good idea if the "hide deprecated items" setting is enabled. In particular if no results are displayed.

It looks like this:

<img width="861" height="228" alt="Screenshot From 2026-01-24 00-26-33" src="https://github.com/user-attachments/assets/93aeef11-a550-47dc-9c78-219ea4fd822c" />

r? @lolbinarycat
…=GuillaumeGomez

Fix contrast ratio for `Since` element in rustdoc dark theme

Changed `--right-side-color` from `#808080` to `#ababab` in the dark theme.

<img width="742" height="784" alt="Screenshot 2026-01-25 at 8 04 29 PM" src="https://github.com/user-attachments/assets/38c5f0b9-2034-429f-87db-8a0ed8209b5d" />

Verified visually in dark theme, it's now more readable:

<img width="174" height="96" alt="Screenshot 2026-01-25 at 8 41 02 PM" src="https://github.com/user-attachments/assets/d0c30409-4374-48c4-ae9c-a0aec48e8957" />

Part of rust-lang#59845
Fixes rust-lang#151422
Stabilize feature(push_mut)

Stabilizes `feature(push_mut)`, consisting of `Vec::push_mut`, `Vec::insert_mut`, `VecDeque::push_front_mut`, `VecDeque::push_back_mut`, `VecDeque::insert_mut`, `LinkedList::push_front_mut`, and `LinkedList::push_back_mut`.

Tracking issue: rust-lang#135974

FCP completed: rust-lang#135974 (comment)

Release notes: rust-lang#151252
…illaumeGomez

Update `askama` to `0.15.3`

Some bugfixes.

r? ghost
…ion, r=JonathanBrouwer

Subscribe myself to translation diagnostics
Document, sort, and tweak spellcheck entries in `typos.toml`

- This grew out of rust-lang#151781, which was originally a simple typo fix.
@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc 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-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-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 Jan 29, 2026
@Zalathar
Copy link
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 29, 2026

📌 Commit e397c50 has been approved by Zalathar

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 Jan 29, 2026
@Zalathar
Copy link
Member Author

For failure triage purposes, note that most of these PRs already passed in #151803, which flakily stalled out in one job.

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

rust-bors bot commented Jan 29, 2026

☀️ Test successful - CI
Approved by: Zalathar
Duration: 3h 7m 22s
Pushing 80b8982 to main...

@rust-bors rust-bors bot merged commit 80b8982 into rust-lang:main Jan 29, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 29, 2026
@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 ba284f4 (parent) -> 80b8982 (this PR)

Test differences

Show 626 test diffs

Stage 1

  • [ui] tests/ui/async-await/async-closures/move-from-async-fn-bound.rs: [missing] -> pass (J1)
  • [ui] tests/ui/mir/enable_passes_validation.rs#enum_in_pass_names: [missing] -> pass (J1)
  • [ui] tests/ui/mir/enable_passes_validation.rs#enum_not_in_pass_names: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/async-await/async-closures/move-from-async-fn-bound.rs: [missing] -> pass (J0)
  • [ui] tests/ui/mir/enable_passes_validation.rs#enum_in_pass_names: [missing] -> pass (J0)
  • [ui] tests/ui/mir/enable_passes_validation.rs#enum_not_in_pass_names: [missing] -> pass (J0)

Additionally, 620 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 80b898258da78fdd1262438126aa0cf90e395f0c --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. pr-check-1: 1825.0s -> 1465.2s (-19.7%)
  2. dist-aarch64-apple: 7467.7s -> 8628.6s (+15.5%)
  3. arm-android: 6192.7s -> 5310.0s (-14.3%)
  4. x86_64-rust-for-linux: 3124.6s -> 2690.8s (-13.9%)
  5. aarch64-apple: 10744.7s -> 9338.9s (-13.1%)
  6. dist-apple-various: 3482.4s -> 3935.3s (+13.0%)
  7. x86_64-gnu-miri: 4999.3s -> 4367.2s (-12.6%)
  8. test-various: 7711.2s -> 6758.2s (-12.4%)
  9. aarch64-gnu: 8315.4s -> 7349.3s (-11.6%)
  10. aarch64-gnu-debug: 4592.2s -> 4063.9s (-11.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
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149110 Implement cast_slice for raw pointer types 27d712fe8efa59d8f13d30f1c4f478b54c595744 (link)
#150474 Tidy: detect ui tests subdirectory changes so `tests/ui/REA… c1e12ce568c15e882cae4c67cc0c904b2c86db8f (link)
#150572 Improve move error diagnostic for AsyncFn closures 39a02d48e8e97a2eae1c8dcb51f3aa2b21da1c24 (link)
#151559 [rustdoc] Add a marker to tell users that there are hidden … 62a38798622e5616ef7b38eb9c423d93ffd2e309 (link)
#151596 Fix -Zmir-enable-passes to detect unregistered enum names i… aa96e6d87e1bb56449db27c64b24385a4c4b1e1f (link)
#151665 Fix contrast ratio for Since element in rustdoc dark theme f12bd0b4220d5175cb3adb09aed6087dd7e4a3b3 (link)
#151785 Stabilize feature(push_mut) 777087703bbfd0865aa943471cb339e9a891c485 (link)
#151798 Update askama to 0.15.3 9542bd91f5639f3f94c0edb770634801046fb3c7 (link)
#151800 Subscribe myself to translation diagnostics d9f043fec4051eef59e4884ad39c6af59fa89be7 (link)
#151802 Make QueryDispatcher::Qcx an associated type 7cdf37f973492f43bbcf01834dfdfbdb0ef54f1d (link)
#151804 Document, sort, and tweak spellcheck entries in typos.toml 99a9b0c0b302a14a6882d9634a0066042aeb8040 (link)
#151805 Fix grammar in env::current_exe()#Security 7c6a979533fdfaca588b1d315b81415a1493643c (link)

previous master: ba284f468c

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

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

Labels

A-CI Area: Our Github Actions CI A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc 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-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-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.