Skip to content

Rollup of 11 pull requests - #164305

Closed
JonathanBrouwer wants to merge 28 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-mDazRSD
Closed

JonathanBrouwer wants to merge 28 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-mDazRSD

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

fmease and others added 28 commits October 7, 2026 15:38
…handle-cache, r=aapoalas"

This reverts commit 556c0e6, reversing
changes made to 2cb8b18.
…are none if the `rustc_must_implement_one_of` attribute is present
This drops the `GetConsoleOutputCP` call, which would otherwise do an
RPC to the console server (= slow). This leaves us with `is_console`
which was using another RPC via `GetConsoleMode` (= doubly slow).
On Windows 8+ we can just use `NtQueryVolumeInformationFile()` to test
for `FILE_DEVICE_CONSOLE`, resulting in a ~2x console stdout speedup.
…rcote

Recover missing `turbofish` for `lifetime` arguments in expression position

Fixes rust-lang#162656.

`Struct<'a> { .. }` and `f<'_>()` were parsed as a `<` comparison whose RHS is a label, producing a cascade of unrelated errors. `parse_path_segment` now accepts `<` followed by a lifetime and `>`/`,` in expression paths, emits one "use `::<...>`" suggestion, and parses the args normally.Since the recovery is inside the path parser, `path.span` and chained forms (`::new()`, `.method()`, `?`) work without AST fix-ups or new `Parser` state; it is guarded by `may_recover()`.

cc @estebank
…sole, r=ChrisDenton

Prefer WriteConsoleW for stdout on Windows

This PR reverts rust-lang#159562 and changes stdout on Windows such that
all writes use `WriteConsoleW` _if_ stdout refers to a console.

This drops the `GetConsoleOutputCP` call, which would otherwise do an
RPC to the console server (= slow). This leaves us with `is_console`
which was using another RPC via `GetConsoleMode` (= doubly slow).
On Windows 8+ we can just use `NtQueryVolumeInformationFile()` to test
for `FILE_DEVICE_CONSOLE`, resulting in a ~2x console stdout speedup.

### Linewise output of `RELEASES.md`:

Output  | Version  | lines/s | MB/s  | Speedup
--------|----------|--------:|------:|--------
console | 1.99.0   |   31526 |  1.79 |
console | nightly  |   29251 |  1.66 |
console | **this** |   67294 |  3.82 | 2.13x
`NUL`   | 1.99.0   |  784311 | 44.50 |
`NUL`   | nightly  |  776529 | 44.06 |
`NUL`   | **this** | 1141618 | 64.78 | 1.46x

The console output speedup is very noticeable here,
as the time to run drops from 0.6s to just 0.25s.

### 128KiB chunked passthrough of `enwik8`:

Output  | Version  | MB/s    | Speedup
--------|----------|--------:|--------
console | 1.99.0   |   86.99 |
console | nightly  |  165.27 | 1.90x
console | **this** |  165.61 | 1.90x
`NUL`   | 1.99.0   | 1123.82 |
`NUL`   | nightly  | 1137.30 |
`NUL`   | **this** | 1289.35 |

The limiting factor here is `MAX_BUFFER_SIZE` which
deserves to be refactored in another PR in my opinion.
…born-in-autumn

test DSL eagerly handle false constraints

For Context: rust-lang/project-assumptions-on-binders#57

Changelog:
After getting the `constraints`, I immediately check whether it’s `false`, and if so, report an error right away. The issue mentions two places: one is when `forall` as a whole returns false, and the other is when there’s a `false constraints` at the top level. So the changes to `wfcheck.rs` cover both cases.
For the latter, maybe need to clear the existing `constraints`; otherwise it reports "higher-ranked lifetime bound could not be satisfied". I clear them by overwriting with `new_true`. I considered saving the old value and restoring it afterwards, but I think that’s more trouble than it’s worth. :)

finally, I added relevant test files following the pattern of other test files, and they pass.

llm disclosure: everything related to this issue was handwritten by me, with no LLM assistance.

thank you for your time!
…-not-real-and-cannot-hurt-you, r=clarfonthey

Document zero-sized allocations properly for `Box` and `Vec`

Fixes rust-lang#162799
…fix, r=TaKO8Ki

Parse move exprs as a bottom expr instead of a prefix expr

`move(…)` is obviously meant to be a normal expr but since it was incorrectly treated as a prefix expr in the compiler, it meant it couldn't be used as the (left) operand of what I personally call "higher postfix operations"[^1], namely *Try*, *Call* / *Index* & "*Dot*" (*Field*, *Await*, …).

More concretely, it would mean we'd reject expressions like `move(…)?` (*Try*), `move(…)(…)` (*Call*), `move(…)[…]` (*Index*), `move(…).field` (*Field*), `move(…).method(…)` (*MethodCall*) or `move(…).await` (*Await*).

Furthermore, it would mean we'd parse `return move(0).field` like `(return move(0)).field` instead of `return ((move(0)).field)`.

---

It's immaterial whether the final version of move exprs continues to use syntax `move(…)` (a syntax much contended over at the RFC) or if it gets changed along the way (to e.g., `move { … }` (also quite controversial)), it remains a fact that move exprs are not prefix exprs!

---

CC @TaKO8Ki @nikomatsakis (rust-lang#155023)
Part of rust-lang#155050.

<sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>

[^1]: I.e., operations where the corresponding operator precedence is higher than or equal to the one of *Try*.
…up, r=ChrisDenton

Windows FileExt trait doesn't need to handle ErrorKind::Interrupted; test improvements for same

This PR:
* Fixes the Windows `FileExt` `seek_read_exact()`, `seek_read_buf_exact()`, and `seek_write_all()` methods to pass up *all* errors as  `ErrorKind::Interrupted` does not occur natively on Windows
* Adds a new test to make sure `ErrorKind::Interrupted`  is handled correctly
* Cleans up existing tests and adds call counting checks

No LLMs were used in writing this PR.

Um, no Windows were locally used in writing this PR, either. I did my best with GitHub's CI to make sure these test work, but... can BORS be made to do a Windows only test on this PR first? I don't want to be the one messing up the merge again, haha.
…nic, r=GuillaumeGomez

Test the interaction between `--remap-path-prefix` and doctests

This PR adds a run-make test to test the interaction between `--remap-path-prefix` and doctests.

Related to rust-lang#163895 (comment)
…t_one_of, r=Urgau

rustdoc: Improvements for `rustc_must_implement_one_of`

Fixes rust-lang#163675.

Funnily enough, most things are actually already there, so this PR is only an improvement over the following:

 * The methods listed in the note are now links.
 * The note itself got a little display improvement (unified with the existing ones mostly, screenshots below).
 * Added the `Required Methods` heading in the sidebar if `rustc_must_implement_one_of` is used

Before:

<img width="407" height="114" alt="Screenshot From 2026-10-13 16-30-39" src="https://github.com/user-attachments/assets/ccbe09bd-437a-45ab-a6ae-e77f02c68b19" />

After:

<img width="454" height="121" alt="Screenshot From 2026-10-13 16-30-47" src="https://github.com/user-attachments/assets/62b4e7a7-b727-4e25-ade4-7e530fd110cb" />

r? @Urgau
Add regression test for rust-lang#155977

The ICE was fixed by rust-lang#156976. I checked the final test on its base build, `3c00c96d` (ICE), and its unrolled build, `5d29849f` (E0277, no ICE).
The test checks that this higher-ranked where-clause example fails to compile instead of causing an ICE in the new trait solver.

Closes rust-lang#155977

cc @lcnr
Add regression test for hang in overlap check with GAT alias

Fixes rust-lang#151503

The hang was fixed by rust-lang#156742.
…king-issue, r=lqd

fix issue number for feature(unsized_const_params)

was looking at the unstable-book page for unsized_const_params and had a rough time finding the tracking issue for it (the current issue number links to adt_const_params, not unsized_const_params)

for context, the tracking issue was created a couple days after rust-lang#127722 merged, and it hasn't been touched since

r? @BoxyUwU
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 14, 2026
@rustbot rustbot added the A-run-make Area: port run-make Makefiles to rmake.rs label Oct 14, 2026
@rustbot rustbot added O-windows Operating system: Windows 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. 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Oct 14, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3

@rust-bors

rust-bors Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4de3ecc has been approved by JonathanBrouwer

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 Oct 14, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 14, 2026
Rollup of 11 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-x86_64-msvc-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [run-make] tests\run-make\remap-path-prefix-doctest-panic stdout ----

error: rmake recipe failed to complete
status: exit code: 101
command: "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\test\\run-make\\remap-path-prefix-doctest-panic\\rmake.exe"
stdout: none
--- stderr -------------------------------
"D:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage2\\bin\\rustdoc.exe" "src/doctest.rs" "--test" "--remap-path-prefix=src=/REMAPPED" "-Cdebuginfo=1" "--edition=2015" "--remap-path-scope=debuginfo" "-Zunstable-options" "--target=x86_64-pc-windows-msvc"
output status: `exit code: 101`
=== STDOUT ===

running 1 test
test src/doctest.rs - f (line 1) ... FAILED

failures:
---
stack backtrace:
   0: std::panicking::default_hook
   1: std::panicking::panic_with_hook
   2: std::panicking::begin_panic::<&str>
   3: rust_out::main::_doctest_main_src_doctest_rs_1_0
             at /REMAPPED\doctest.rs:3
   4: rust_out::main
             at /REMAPPED\doctest.rs:4
   5: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at D:\a\rust\rust\library\core\src\ops\function.rs:250
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.



---



assert_contains:
=== HAYSTACK ===
   0: std::panicking::default_hook
   1: std::panicking::panic_with_hook
   2: std::panicking::begin_panic::<&str>
   3: rust_out::main::_doctest_main_src_doctest_rs_1_0
             at /REMAPPED\doctest.rs:3
   4: rust_out::main
             at /REMAPPED\doctest.rs:4
   5: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at D:\a\rust\rust\library\core\src\ops\function.rs:250
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.



---
Currently active steps:
test::RunMake { test_compiler: Compiler { stage: 2, host: x86_64-pc-windows-msvc, forced_compiler: false }, target: x86_64-pc-windows-msvc } at src\bootstrap\src\core\build_steps\test.rs:2108
test::Compiletest { test_compiler: Compiler { stage: 2, host: x86_64-pc-windows-msvc, forced_compiler: false }, target: x86_64-pc-windows-msvc, mode: run-make, suite: "run-make", path: "tests/run-make", compare_mode: None } at src\bootstrap\src\core\build_steps\test.rs:2108
Build completed unsuccessfully in 2:34:02
make: *** [Makefile:115: ci-msvc-py] Error 1
  local time: Wed Oct 14 11:18:54 CUT 2026
  network time: Wed, 14 Oct 2026 11:18:54 GMT
##[error]Process completed with exit code 2.
##[group]Run echo "disk usage:"
echo "disk usage:"

@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Oct 14, 2026
@rust-bors

rust-bors Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 1e8b5ae failed: CI. Failed jobs:

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 14, 2026
…uwer

Rollup of 11 pull requests

Successful merges:

 - #162749 (Recover missing `turbofish` for `lifetime` arguments in expression position)
 - #164170 (Prefer WriteConsoleW for stdout on Windows)
 - #164255 (test DSL eagerly handle false constraints)
 - #163230 (Document zero-sized allocations properly for `Box` and `Vec`)
 - #163940 (Parse move exprs as a bottom expr instead of a prefix expr)
 - #164219 (Windows FileExt trait doesn't need to handle ErrorKind::Interrupted; test improvements for same)
 - #164220 (Test the interaction between `--remap-path-prefix` and doctests)
 - #164266 (rustdoc: Improvements for `rustc_must_implement_one_of`)
 - #164272 (Add regression test for #155977)
 - #164287 (Add regression test for hang in overlap check with GAT alias)
 - #164301 (fix issue number for feature(unsized_const_params))
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-aarch64-msvc-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [run-make] tests\run-make\remap-path-prefix-doctest-panic stdout ----

error: rmake recipe failed to complete
status: exit code: 101
command: "C:\\a\\rust\\rust\\build\\aarch64-pc-windows-msvc\\test\\run-make\\remap-path-prefix-doctest-panic\\rmake.exe"
stdout: none
--- stderr -------------------------------
"C:\\a\\rust\\rust\\build\\aarch64-pc-windows-msvc\\stage2\\bin\\rustdoc.exe" "src/doctest.rs" "--test" "--remap-path-prefix=src=/REMAPPED" "-Cdebuginfo=1" "--edition=2015" "--remap-path-scope=debuginfo" "-Zunstable-options" "--target=aarch64-pc-windows-msvc"
output status: `exit code: 101`
=== STDOUT ===

running 1 test
test src/doctest.rs - f (line 1) ... FAILED

failures:
---
stack backtrace:
   0: std::panicking::default_hook
   1: std::panicking::panic_with_hook
   2: std::panicking::begin_panic::<&str>
   3: rust_out::main::_doctest_main_src_doctest_rs_1_0
             at /REMAPPED\doctest.rs:3
   4: rust_out::main
             at /REMAPPED\doctest.rs:4
   5: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at C:\a\rust\rust\library\core\src\ops\function.rs:250
   6: core::hint::black_box
             at C:\a\rust\rust\library\core\src\hint.rs:491
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---



assert_contains:
=== HAYSTACK ===
   0: std::panicking::default_hook
   1: std::panicking::panic_with_hook
   2: std::panicking::begin_panic::<&str>
   3: rust_out::main::_doctest_main_src_doctest_rs_1_0
             at /REMAPPED\doctest.rs:3
   4: rust_out::main
             at /REMAPPED\doctest.rs:4
   5: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at C:\a\rust\rust\library\core\src\ops\function.rs:250
   6: core::hint::black_box
             at C:\a\rust\rust\library\core\src\hint.rs:491
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
Currently active steps:
test::RunMake { test_compiler: Compiler { stage: 2, host: aarch64-pc-windows-msvc, forced_compiler: false }, target: aarch64-pc-windows-msvc } at src\bootstrap\src\core\build_steps\test.rs:2108
test::Compiletest { test_compiler: Compiler { stage: 2, host: aarch64-pc-windows-msvc, forced_compiler: false }, target: aarch64-pc-windows-msvc, mode: run-make, suite: "run-make", path: "tests/run-make", compare_mode: None } at src\bootstrap\src\core\build_steps\test.rs:2108
Build completed unsuccessfully in 1:54:00
make: *** [Makefile:115: ci-msvc-py] Error 1
  local time: Wed Oct 14 06:43:34 PDT 2026
  network time: Wed, 14 Oct 2026 13:43:34 GMT
##[error]Process completed with exit code 2.
##[group]Run echo "disk usage:"
echo "disk usage:"

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 14, 2026
@rust-bors

rust-bors Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

💔 Test for c017d6c failed: CI. Failed job:

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 14, 2026
@rust-bors

rust-bors Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

PR #164220, which is a member of this rollup, was unapproved.

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Oct 14, 2026
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 O-windows Operating system: Windows rollup A PR which is a rollup 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. 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.