Skip to content

Rollup of 9 pull requests#154870

Merged
rust-bors[bot] merged 23 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-OFrhW8F
Apr 6, 2026
Merged

Rollup of 9 pull requests#154870
rust-bors[bot] merged 23 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-OFrhW8F

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Randl and others added 23 commits January 31, 2026 12:02
By not pushing any crates to each_linked_rlib_for_lto when no
cross-crate LTO is used, we can avoid special cases elsewhere.
It is still not entirely correct I think, but much
closer to the current way things are done.
Forward discriminant-related queries through `ty::UnsafeBinder` to the erased
inner type, matching the existing layout behavior.
Scalable vector types in `core_arch` are cfg'd for aarch64 and for
rustdoc, which can successfully document these types given any `--target`
(`core_arch` CI uses `i686-unknown-linux-gnu`) - this shouldn't trigger
the "scalable vectors not supported on arch" error.
Various LTO cleanups

* Move some special casing of thin local LTO into a single location.
* Move lto_import_only_modules handling for fat LTO earlier. There is no reason to keep it separate until right before pass the LTO modules to the codegen backend. For thin LTO this introduces `ThinLtoInput` to correctly handle incr comp caching.
* Remove the `Linker` type from cg_llvm. It previously helped deduplicate code for `-Zcombine-cgus`, but that flag no longer exists.

Part of rust-lang/compiler-team#908
Constify fold, reduce and last for iterator

These functions only require the addition of `[const]` in appropriate places, so it feels like almost a trivial change. Most of the others require either consitifying additional traits, const closures, or both.
…fter-visibility, r=TaKO8Ki

Suggest similar keyword when visibility is not followed by an item

Fixes rust-lang#153353.

I would appreciate feedback on the following:
- I inlined [`find_similar_kw`](https://github.com/rust-lang/rust/blob/cd14b73b4a41542d921f59e362a5b5005fa4f2ef/compiler/rustc_parse/src/parser/diagnostics.rs#L218-L224) instead of changing its visibility to `pub(super)`. I am happy to switch if it is preferred;
- I didn't add a comment to the new test. Although the rustc-dev-guide specifies that a [comment should be added](https://rustc-dev-guide.rust-lang.org/tests/adding.html#comment-explaining-what-the-test-is-about) to every new test, this is not common in `tests/ui/parser/misspelled_keywords/` and the test seems self-explanatory. Let me know if you would like me to add a comment;

Thank you in advance for your time and input!
…rn-assignment-help, r=Kivooeo

Fix pattern assignment suggestions for uninitialized bindings

Fixes rust-lang#145564
…iminant, r=jdonszelmann

Fix ICE in unsafe binder discriminant helpers

Forward discriminant-related helpers through `ty::UnsafeBinder` to the erased inner type, matching the existing layout behavior.

Tracking issue: rust-lang#130516
Closes rust-lang#154424
…message, r=jdonszelmann

fix(lints): Improve `ill_formed_attribute_input` with better help message

Add a better help message to `ill_formed_attribute_input` for the cases where it matches the usage of `#![allow]`.

For further details see rust-lang#154667

closes rust-lang#154667

cc: @Zalathar
…szelmann

`#[cfg]`: suggest alternative `target_` name when the value does not match
…Mark-Simulacrum

Promote `char::is_case_ignorable` from perma-unstable to unstable

(Take two of rust-lang#154658, which was closed when GitHub Codespaces somehow managed to squash the entire commit history of rust-lang/rust into one commit)

This function is currently used in the implementation of `str::to_lowercase()`. There is no reason to restrict it to the stdlib, though. Reimplementations of string casing for types other than `str` -> `String` shouldn't need to waste space with a duplicate copy of this table.

@rustbot label A-unicode T-libs-api

r? @Mark-Simulacrum
…, r=JonathanBrouwer

ast_validation: scalable vectors okay for rustdoc

Scalable vector types in `core_arch` are cfg'd for aarch64 and for rustdoc, which can successfully document these types given any `--target` (`core_arch` CI uses `i686-unknown-linux-gnu`) - this shouldn't trigger the "scalable vectors not supported on arch" error.

This fixes the CI failure in rust-lang/stdarch#2071.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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. labels Apr 6, 2026
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Apr 6, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 6, 2026

📌 Commit ec78f91 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 Apr 6, 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 Apr 6, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 6, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 9m 38s
Pushing 5a0d572 to main...

@rust-bors rust-bors bot merged commit 5a0d572 into rust-lang:main Apr 6, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Apr 6, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#151899 Constify fold, reduce and last for iterator 77002c237c8059b9416e4dbc308bf3221fd28486 (link)
#153440 Various LTO cleanups 081047f36f09249f561c8880451362c66a06dc6d (link)
#154561 Suggest similar keyword when visibility is not followed by … 74a0756a02858f2a89335c5b095b242a35e1e58b (link)
#154657 Fix pattern assignment suggestions for uninitialized bindin… 04dcb705740660a40c407eefcf22c471f5586e82 (link)
#154717 Fix ICE in unsafe binder discriminant helpers 82bc48213596bccc46e81234e7e1b97e9279f780 (link)
#154722 fix(lints): Improve ill_formed_attribute_input with bette… f7215d055ffc7f207d16240f7fe79ad80be40816 (link)
#154777 #[cfg]: suggest alternative target_ name when the value… 09fd169bf9b724ce9db151b8289759c0b7409399 (link)
#154849 Promote char::is_case_ignorable from perma-unstable to un… 07b092353d2639eecb40bdc813ad7caaf293a1a7 (link)
#154850 ast_validation: scalable vectors okay for rustdoc 86d91345358ffd921563fca92532c79cb404731e (link)

previous master: c2efcc4ae0

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

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 c2efcc4 (parent) -> 5a0d572 (this PR)

Test differences

Show 789 test diffs

Stage 1

  • [ui] tests/ui/cfg/suggest-alternative-name-on-target.rs: [missing] -> pass (J1)
  • [ui] tests/ui/malformed/ignore-with-lint-name.rs: [missing] -> pass (J1)
  • [ui] tests/ui/moves/assign-value-after-at-pattern-issue-145564.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/misspelled-keywords/pub-const-fn.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe-binders/discriminant-for-variant.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/cfg/suggest-alternative-name-on-target.rs: [missing] -> pass (J0)
  • [ui] tests/ui/malformed/ignore-with-lint-name.rs: [missing] -> pass (J0)
  • [ui] tests/ui/moves/assign-value-after-at-pattern-issue-145564.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/misspelled-keywords/pub-const-fn.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe-binders/discriminant-for-variant.rs: [missing] -> pass (J0)

Additionally, 779 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 5a0d572cd1bbe1e3f75d64b32d86dbd277ce4b89 --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-apple: 1h 36m -> 2h 12m (+37.5%)
  2. i686-msvc-2: 2h 16m -> 1h 41m (-25.2%)
  3. x86_64-gnu-gcc: 1h 3m -> 1h 9m (+9.8%)
  4. x86_64-gnu-llvm-21-3: 1h 46m -> 1h 56m (+9.5%)
  5. dist-x86_64-musl: 2h 10m -> 1h 59m (-8.7%)
  6. x86_64-gnu-tools: 1h 2m -> 57m 41s (-8.4%)
  7. aarch64-apple: 3h 2m -> 2h 50m (-6.6%)
  8. dist-aarch64-llvm-mingw: 1h 37m -> 1h 43m (+5.8%)
  9. dist-loongarch64-musl: 1h 42m -> 1h 47m (+5.5%)
  10. x86_64-gnu-llvm-21-1: 1h 17m -> 1h 13m (-5.2%)
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 (5a0d572): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

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

Cycles

Results (primary 3.0%, secondary -9.3%)

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

mean range count
Regressions ❌
(primary)
3.0% [3.0%, 3.0%] 1
Regressions ❌
(secondary)
3.4% [3.4%, 3.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-22.1% [-22.1%, -22.1%] 1
All ❌✅ (primary) 3.0% [3.0%, 3.0%] 1

Binary size

Results (primary -0.0%, secondary -0.0%)

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

Bootstrap: 487.096s -> 488.486s (0.29%)
Artifact size: 395.13 MiB -> 395.12 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-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. merged-by-bors This PR was explicitly merged by bors. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.