Skip to content

Rollup of 11 pull requests - #164024

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

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

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

fmease and others added 28 commits September 11, 2026 18:53
```
error[E0277]: `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` is not an iterator
  --> $DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:34:14
   |
LL |     for _ in closure {}
   |              ^^^^^^^ `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` is not an iterator
   |
help: the trait `Iterator` is not implemented for closure `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}`
  --> $DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19
   |
LL |     let closure = || vec![1u8].into_iter();
   |                   ^^
   = note: required for `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` to implement `IntoIterator`
help: use parentheses to call this closure
   |
LL |     for _ in closure() {}
   |                     ++
```
…r=adwinwhite

Syntactically reject leading parenthesized precise capturing lists in bare trait object types (`(use<…>)+`)

Follow-up to rust-lang#162269. Addresses fmease/rasur#7 (item 6).

<sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>
…iveness, r=tmiasko

MIR move elimination [3/6]: PreciseLiveness

Depends on rust-lang#163335

This PR implements the lifetime analysis used by the `MoveElimination` pass from rust-lang/rfcs#3943.

`PreciseLiveness` calculates, at a sub-statement granularity, the points in a function where a local requires storage to be allocated. This is more fine-grained than `MaybeStorageLive`, and takes borrows into account.

r? tmiasko
…=Kobzol

fix(bootstrap/darwin): fix rpath for distributed LLD

Closes rust-lang#163947 by mirroring the existing rpath tweak for linux on darwin.

## Concerns

- [ ] Is there an easy way to reliably test the effect of this fix (there doesn't seem to be dist tests for darwin in particular)? I'd love to add one if possible.
…illaumeGomez

Pass the unremapped path to the `rustc` invocation for doctests

Turns out that `--remap-path-scope` is only half working with doctests, this is because `rustdoc` use a secret environment variable to pass the real filename of the doctest.

However we were only passing a remapped path. That means that doctests source path were getting remapped, but only for one scope: `documentation`. It didn't respect `macro` for `file!` for example.

To fix this, we have to:
 1. pass the local path to the `rustc` invocation
 2. have `rustc` treat that path as a real filename and apply remapping per scope to it
    - I had to add a new `Input` variant, otherwise I can't differentiate normal input `-` from doctests `-` source
 4. we have to pass `--remap-path-{prefix,scope}` to `rustc` so the path actually gets remap properly
move overflow lint computation into decorator

implements rust-lang#163064 (comment)

r? adwinwhite
…JohnTitor

Updates the expect message library/core/src/time.rs

updates the expect message in library/core/src/time.rs.
Updated to show the expected state instead of what actually happened.

rust-lang#159751
rigid aliases to non-rigid for fully normalized check

otherwise we incorrectly mark rust-lang#163724 / rust-lang#152416 as fixed with the new solver 😅

r? adwinwhite
…-possible, r=adwinwhite

replace `fully_monomorphized` with `cx.typing_env()`

cc rust-lang#163724

reasoning about whether a given `TypingEnv` is correct is non-trivial, so if we've got a context which already provides the correct `TypingEnv`, using that is easier.
When mentioning that closure doesn't implement trait, point at closure

```
error[E0277]: `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` is not an iterator
  --> $DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:34:14
   |
LL |     for _ in closure {}
   |              ^^^^^^^ `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` is not an iterator
   |
help: the trait `Iterator` is not implemented for closure `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}`
  --> $DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19
   |
LL |     let closure = || vec![1u8].into_iter();
   |                   ^^
   = note: required for `{closure@$DIR/suggest-calling-fn-in-for-loop-issue-161564.rs:33:19: 33:21}` to implement `IntoIterator`
help: use parentheses to call this closure
   |
LL |     for _ in closure() {}
   |                     ++
```
…d, r=Urgau

[rustdoc] Prefer local paths over remote ones when foreign item is locally reexported

This is the last failure from rust-lang#162808:

```
src/std/sys/fs/unix.rs.html:1171: broken link fragment `#method.new` pointing to `core/io/struct.Error.html`
```

`std` reexports `Error` locally, and `alloc` is the one implementing the `Error::new` method. So `std` has both `Error` and `Error::new` locally. So instead of trying to link to `core::Error::new` (which doesn't exist), we first check if we locally reexport `Error` with the `paths` map and use it as a shortcut.

PS: I got annoyed about adding/removing `#[derive(Debug)]` every time so this time I just leave them there. :3

r? @Urgau
cg_llvm: Avoid some explicit casts to `*const c_char`

- Follow-up to rust-lang#163789
---

This is another application of the general principle noted in `rustc_codegen_llvm::ffi`:

> Normally it's a good idea for Rust-side bindings to match the corresponding C-side function declarations as closely as possible. But when passing `&str` or `&[u8]` data as a pointer/length pair, it's more convenient to declare the Rust-side pointer as `*const c_uchar` instead of `*const c_char`. Both pointer types have the same ABI, and using `*const c_uchar` avoids the need for an extra cast from `*const u8` on the Rust side.

For the changes in the main commit, a pointer/length string was being passed with `*const c_char` as the pointer type. This PR changes the Rust-side declaration to take `*const c_uchar` instead.

Changing the declared type avoids the need for explicit casts, making it easier to notice any accidental type errors.

---

A second commit also removes some pointer casts that were completely unnecessary.

There should be no change to compiler output.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 9, 2026
@rustbot rustbot added the A-attributes Area: Attributes (`#[…]`, `#![…]`) label Oct 9, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. F-autodiff `#![feature(autodiff)]` 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-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 9, 2026
@rust-bors

rust-bors Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

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

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

@rust-bors

rust-bors Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 0383b3f 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 9, 2026
@rust-bors

This comment has been minimized.

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

Rollup of 11 pull requests

Successful merges:

 - #162652 (Syntactically reject leading parenthesized precise capturing lists in bare trait object types (`(use<…>)+`))
 - #163337 (MIR move elimination [3/6]: PreciseLiveness)
 - #163954 (fix(bootstrap/darwin): fix rpath for distributed LLD)
 - #163956 (Pass the unremapped path to the `rustc` invocation for doctests)
 - #163634 (move overflow lint computation into decorator)
 - #163666 (Updates the expect message library/core/src/time.rs)
 - #163727 (rigid aliases to non-rigid for fully normalized check)
 - #163745 (replace `fully_monomorphized` with `cx.typing_env()`)
 - #164000 (When mentioning that closure doesn't implement trait, point at closure)
 - #164007 ([rustdoc] Prefer local paths over remote ones when foreign item is locally reexported)
 - #164017 (cg_llvm: Avoid some explicit casts to `*const c_char`)
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors treeopen

@rust-bors

rust-bors Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Tree is now open for merging.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
---- [ui] tests/rustdoc-ui/remap-path-prefix-file.rs#debuginfo_scope stdout ----

error in revision `debuginfo_scope`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="0" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor" "--sysroot" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "debuginfo_scope" "--check-cfg" "cfg(test,FALSE,macro_scope,diagnostics_scope,documentation_scope,debuginfo_scope,object_scope,all_scope,no_scopes)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/remap-path-prefix-file.debuginfo_scope" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--edition=2015" "--test" "--test-args=--test-threads=1" "--remap-path-prefix=/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui=/REMAPPED" "--remap-path-scope=debuginfo" "-Z" "unstable-options"
--- stdout -------------------------------

running 1 test
test /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs - f (line 24) ... FAILED

---
---- [ui] tests/rustdoc-ui/remap-path-prefix-file.rs#diagnostics_scope stdout ----

error in revision `diagnostics_scope`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="0" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor" "--sysroot" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "diagnostics_scope" "--check-cfg" "cfg(test,FALSE,macro_scope,diagnostics_scope,documentation_scope,debuginfo_scope,object_scope,all_scope,no_scopes)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/remap-path-prefix-file.diagnostics_scope" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--edition=2015" "--test" "--test-args=--test-threads=1" "--remap-path-prefix=/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui=/REMAPPED" "--remap-path-scope=diagnostics" "-Z" "unstable-options"
--- stdout -------------------------------

running 1 test
test /REMAPPED/remap-path-prefix-file.rs - f (line 24) ... FAILED

failures:

---- /REMAPPED/remap-path-prefix-file.rs - f (line 24) stdout ----
Test executable failed (exit status: 101).

stderr:

thread 'main' (416255) panicked at /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs:14:1:
/tmp leaked: /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace



failures:
    /REMAPPED/remap-path-prefix-file.rs - f (line 24)

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
------------------------------------------
stderr: none

---- [ui] tests/rustdoc-ui/remap-path-prefix-file.rs#diagnostics_scope stdout end ----
---- [ui] tests/rustdoc-ui/remap-path-prefix-file.rs#documentation_scope stdout ----

error in revision `documentation_scope`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="0" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor" "--sysroot" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "documentation_scope" "--check-cfg" "cfg(test,FALSE,macro_scope,diagnostics_scope,documentation_scope,debuginfo_scope,object_scope,all_scope,no_scopes)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/remap-path-prefix-file.documentation_scope" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--edition=2015" "--test" "--test-args=--test-threads=1" "--remap-path-prefix=/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui=/REMAPPED" "--remap-path-scope=documentation" "-Z" "unstable-options"
--- stdout -------------------------------

running 1 test
test /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/remap-path-prefix-file.rs - f (line 24) ... FAILED

---
test result: FAILED. 466 passed; 3 failed; 6 ignored; 0 measured; 0 filtered out; finished in 18.93s

Some tests failed in compiletest suite=rustdoc-ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu
Build completed unsuccessfully in 1:25:09
make: *** [Makefile:49: check] Error 1
Command `make check [workdir=/tmp/distcheck/distcheck-rustc-src]` failed with exit code 2
Created at: src/bootstrap/src/core/build_steps/test.rs:4020:5
Executed at: src/bootstrap/src/core/build_steps/test.rs:4026:10

Command has failed. Rerun with -v to see more details.
Bootstrap failed while executing `test distcheck`
Currently active steps:
test::Distcheck {  } at src/bootstrap/src/core/build_steps/test.rs:3972
Build completed unsuccessfully in 1:32:29
  local time: Fri Oct  9 09:43:03 UTC 2026

@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. labels Oct 9, 2026
@rust-bors

rust-bors Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

💔 Test for db1eb3f failed: CI. Failed job:

@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 9, 2026
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 9, 2026
@rust-bors

rust-bors Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved due to being closed.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. F-autodiff `#![feature(autodiff)]` rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-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.