Skip to content

Rollup of 21 pull requests - #165056

Merged
rust-bors[bot] merged 56 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZFCUK9j
Oct 28, 2026
Merged

rust-bors[bot] merged 56 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZFCUK9j

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

View all comments

Successful merges:

r? @ghost

Create a similar rollup

mejrs and others added 30 commits October 21, 2026 23:41
Previously, expressions behind stmt_expr_attributes were only rejected
when the cfg condition evaluated to false. If the condition was true,
the code compiled successfully.

This meant code like an attributed binary operand could compile on one
platform but fail on another, even though removing the operand would leave
an invalid expression.

This change always rejects cfg in expression positions where removing the
expression would produce invalid code. Expression positions where removal is
safe continue to work as before.

Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
```
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 3
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> {
   |        +++++++++
help: consider adding an explicit lifetime bound
   |
LL | fn bb<'a, R>(r: R) -> Box<dyn Foo + 'a> {
   |       +++                         ++++
```
Report the same error for true and false cfg predicates when the
surrounding expression cannot be removed. Apply it consistently during
normal expansion and cfg_eval.

Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
This is the abstraction that clang/flang both use. It simplifies the
code by quite a bit (although not until we delete the old version).
Mainly this enables the use of the NewPM for LLVM targets that opt-in
(currently only Lanai and MSP430, but more soon).
It's an error to have `#[inline]#[rustc_force_inline]fn blah(){}`, but they both lower to the same `InlineAttr`, so this would error and then have an attribute list of multiple inline attrs
```
error[E0803]: cannot infer an appropriate lifetime for lifetime parameter `'s` in generic type due to conflicting requirements
```
Fixes a side effect of 127a5d9 reported
on Zulip.
@rdrpenguin04

Copy link
Copy Markdown

test-aarch64-apple-macos-26-2 might be stuck?

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

It looks to be still making progress actually, just very slowly. Lets let it live for now?

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

rust-bors Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

💔 Test for f7ed956 failed: CI. Failed job:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-aarch64-apple-macos-26-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

Important

For more information how to resolve CI failures of this job, visit this link.

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors retry

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

rust-bors Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 12m 59s
Pushing ab019e7 to main...

@github-actions

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 41089d0 (parent) -> ab019e7 (this PR)

Test differences

Show 1972 test diffs

Stage 1

  • [ui] tests/ui/assumptions_on_binders/drop-superset-ands.rs: [missing] -> pass (J0)
  • [ui] tests/ui/assumptions_on_binders/region_outlives_to_false.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/self-mapping-zero-fields-infer-ice.rs: [missing] -> pass (J0)
  • [ui] tests/ui/eii/type_checking/generic_declaration_and_impl.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/issues/invalid-ret-ty-issue-162947.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/ret-ty-recover-eof-1.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/ret-ty-recover-eof-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/tool-attributes/no_implicit_prelude.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/assumptions_on_binders/drop-superset-ands.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/assumptions_on_binders/region_outlives_to_false.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/delegation/self-mapping-zero-fields-infer-ice.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/eii/type_checking/generic_declaration_and_impl.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/parser/issues/invalid-ret-ty-issue-162947.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/parser/ret-ty-recover-eof-1.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/parser/ret-ty-recover-eof-2.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/tool-attributes/no_implicit_prelude.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/jump-to-def/nested-dirs.rs: [missing] -> pass (J4)
  • [rustdoc-js] tests/rustdoc-js/import-crate-preference.rs: [missing] -> pass (J4)

Stage 2

  • [rustdoc-js] tests/rustdoc-js/import-crate-preference.rs: [missing] -> pass (J1)
  • [ui] tests/ui/assumptions_on_binders/drop-superset-ands.rs: [missing] -> pass (J2)
  • [ui] tests/ui/assumptions_on_binders/region_outlives_to_false.rs: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/self-mapping-zero-fields-infer-ice.rs: [missing] -> pass (J2)
  • [ui] tests/ui/eii/type_checking/generic_declaration_and_impl.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/issues/invalid-ret-ty-issue-162947.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/ret-ty-recover-eof-1.rs: [missing] -> pass (J2)
  • [ui] tests/ui/parser/ret-ty-recover-eof-2.rs: [missing] -> pass (J2)
  • [ui] tests/ui/tool-attributes/no_implicit_prelude.rs: [missing] -> pass (J2)
  • [rustdoc-html] tests/rustdoc-html/jump-to-def/nested-dirs.rs: [missing] -> pass (J5)

Additionally, 1944 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 ab019e71a1a1f4688bcc4d5bf06d2c5a424a31a5 --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. test-x86_64-gnu-parallel-frontend: -> 1h 16m (+inf%)
  2. test-i686-gnu-nopt-1: -> 2h 11m (+inf%)
  3. dist-android: -> 25m 34s (+inf%)
  4. dist-i686-linux: -> 1h 16m (+inf%)
  5. dist-powerpc64-linux-gnu: -> 1h 36m (+inf%)
  6. dist-riscv64-linux-musl: -> 1h 21m (+inf%)
  7. dist-x86_64-linux: -> 1h 48m (+inf%)
  8. test-x86_64-gnu-gcc-core-tests: -> 9m 59s (+inf%)
  9. optional-test-x86_64-gnu-autodiff: -> 36m 2s (+inf%)
  10. test-aarch64-gnu-llvm-22-1: -> 1h 7m (+inf%)
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.

@tgross35

Copy link
Copy Markdown
Member

🎉🎉🎉🎉🎉

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (ab019e7): comparison URL.

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

Max RSS (memory usage)

Results (primary 0.1%, secondary 0.3%)

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

mean range count
Regressions ❌
(primary)
1.0% [0.4%, 2.5%] 6
Regressions ❌
(secondary)
1.5% [1.0%, 1.9%] 3
Improvements ✅
(primary)
-0.7% [-1.5%, -0.4%] 7
Improvements ✅
(secondary)
-3.4% [-3.4%, -3.4%] 1
All ❌✅ (primary) 0.1% [-1.5%, 2.5%] 13

Cycles

Results (primary 0.7%, secondary 1.1%)

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

mean range count
Regressions ❌
(primary)
1.2% [0.5%, 2.1%] 9
Regressions ❌
(secondary)
3.1% [2.2%, 4.2%] 4
Improvements ✅
(primary)
-0.8% [-1.1%, -0.5%] 3
Improvements ✅
(secondary)
-2.9% [-3.2%, -2.7%] 2
All ❌✅ (primary) 0.7% [-1.1%, 2.1%] 12

Binary size

Results (primary 0.1%, secondary 0.1%)

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

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

Bootstrap: 490.666s -> 488.323s (-0.48%)
Artifact size: 405.86 MiB -> 405.89 MiB (0.01%)

@rust-bors

rust-bors Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#159580 Reject cfg on expressions that cannot be safely removed e686de8be7ce91d6726d65b5b0cca68aede57522
(link)
#162597 raise ambiguity error on attribute macro that could be tool… 007fb2a5b2ce2d938b68274c9e5091bd80e0829c
(link)
#162808 Enable --generate-link-to-definition rustdoc option on st… 90827e4c7b2f56b5124df92583c6b6b335203e7d
(link)
#163059 Recover invalid return type until {, } or ; 1dd4e3f6d1bd21bc808857162465d12bf3c1cf09
(link)
#163672 Use runCodeGen Abstraction for new LLVM 7b5eb1baeeef9c7766b0ae0dd9c417b9f6f50191
(link)
#164028 Add a future incompat warning for #[no_link] b20dad9f84894d632d6cd7a3a0bacbed7373debb
(link)
#164188 Suggest adding lifetime for dyn Trait in return type 1d74cb4fb7fa9819292495ef3f9036b58392f37b
(link)
#164345 fix: handle false in root contexts 09dd7540bab131bd2e63e2f61681201da0603225
(link)
#164494 drop ands which are a superset of other ands 7dc4744ade853a44a5a750803e196d843c01aab6
(link)
#164785 delegation: emit error when there is no field for Self ma… 4c306d132dd963272cdce8037eed388644540e42
(link)
#164799 Don't use IntoIterator in parallel API 254376f271dc3bf54fcc2918f898fb1201b7e164
(link)
#164871 Refactor call argument codegen bf6cb7d21882e5d984a14af78fe652842c0f57ee
(link)
#164648 parse inline and rustc_force_inline with same parser c9c9f66926d74b262c9b1cc7b12f8ccd72fb4446
(link)
#164811 fix: Prevent ICE when comparing EII impl against generic de… f9a1bc3edf327c734f06cf25b30cdd742d670711
(link)
#164900 make tool_attrs method to retrieve tool attributes. 357d38ea0c8ce1d7c1570c0cf66cff6fec0ae45e
(link)
#164993 copy_nonoverlapping: dont skip ovelrap check when src is fu… 96283c68fefaa63d557ba3f6a540d40d9119a00d
(link)
#164996 miri: add missing alignment check in write_bytes dd04f02b280289e1392292f7614bc7233d1e0295
(link)
#165012 Remove Span::eq_ctxt() 9839f7835a5ac2b0b2993cd75bd7238b628b1afc
(link)
#165013 [tiny] Add missing backticks around lifetime name 20ccbd1420973361c5c1f6fe309876415de68db9
(link)
#165024 rustdoc-search: rank re-export lower ae127163058124277176bd9cb6f7d00cef5e0894
(link)
#165028 Update enzyme submodule to fix one bug related to higher-or… 894f73d06b14c799298b830fa8c237c90bfec119
(link)

parent commit: 41089d07a0

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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. A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-json Area: Rustdoc JSON backend A-rustdoc-search Area: Rustdoc's search feature F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-apple Operating system: Apple / Darwin (macOS, iOS, tvOS, visionOS, watchOS) O-linux Operating system: Linux O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows rollup A PR which is a rollup 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.