Skip to content

Rollup of 12 pull requests#154637

Merged
rust-bors[bot] merged 32 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-fGsU36o
Mar 31, 2026
Merged

Rollup of 12 pull requests#154637
rust-bors[bot] merged 32 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-fGsU36o

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

frank-king and others added 30 commits March 11, 2026 15:15
stabilizes `core::range::Range`
stabilizes `core::range::RangeIter`
stabilizes `std::range` which was missed in prior PRs

Updates docs to reflect stabilization (removed "experimental")

`RangeIter::remainder` is excluded from stabilization
…ethercote

Take first task group for further execution

Continuing from rust-lang#153768 (comment).

I thought that storing a first group of tasks for immediate execution instead of pushing and immediately poping it from rayon's local task queue in par_slice would avoid overwhelming work stealing potentially blocking the original thread. So I've implemented this change.

8 threads benchmarks:

<table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>baseline~~9</b></th><td colspan="2"><b>new~take-first-group~1</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.1110s</td><td align="right">0.1086s</td><td align="right">💚  -2.13%</td></tr><tr><td>🟣 <b>hyper</b>:check:initial</td><td align="right">0.1314s</td><td align="right">0.1298s</td><td align="right">💚  -1.23%</td></tr><tr><td>🟣 <b>hyper</b>:check:unchanged</td><td align="right">0.0771s</td><td align="right">0.0755s</td><td align="right">💚  -2.14%</td></tr><tr><td>🟣 <b>clap</b>:check</td><td align="right">0.3787s</td><td align="right">0.3757s</td><td align="right"> -0.80%</td></tr><tr><td>🟣 <b>clap</b>:check:initial</td><td align="right">0.4680s</td><td align="right">0.4564s</td><td align="right">💚  -2.48%</td></tr><tr><td>🟣 <b>clap</b>:check:unchanged</td><td align="right">0.2337s</td><td align="right">0.2301s</td><td align="right">💚  -1.52%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">0.4321s</td><td align="right">0.4265s</td><td align="right">💚  -1.31%</td></tr><tr><td>🟣 <b>syn</b>:check:initial</td><td align="right">0.5586s</td><td align="right">0.5401s</td><td align="right">💚  -3.31%</td></tr><tr><td>🟣 <b>syn</b>:check:unchanged</td><td align="right">0.3434s</td><td align="right">0.3429s</td><td align="right"> -0.14%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">0.2755s</td><td align="right">0.2661s</td><td align="right">💚  -3.40%</td></tr><tr><td>🟣 <b>regex</b>:check:initial</td><td align="right">0.3350s</td><td align="right">0.3347s</td><td align="right"> -0.11%</td></tr><tr><td>🟣 <b>regex</b>:check:unchanged</td><td align="right">0.1851s</td><td align="right">0.1832s</td><td align="right">💚  -1.01%</td></tr><tr><td>Total</td><td align="right">3.5296s</td><td align="right">3.4695s</td><td align="right">💚  -1.70%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9837s</td><td align="right">💚  -1.63%</td></tr></table>
…-clause-space, r=jackh726

Fix  type alias where clause suggestion spacing issue

Fixes rust-lang#153567
…k-Simulacrum

Update flate2 users to use zlib-rs

flate2 is looking to make zlib-rs the default.

Go ahead and make build-manifest and rust-installer use it, to make sure it
doesn't introduce any issues.
…eight, r=joshtriplett

Fix AtomicPtr::update's cfg gate

I'm *pretty* sure this is supposed to be `#[cfg(target_has_atomic = "ptr")]` like `AtomicPtr::try_update` is.

cc @GrigorenkoPV (author), @Noratrieb (r+ to rust-lang#133829)
…gross35

stabilize new Range type and iterator

For rust-lang#125687
Stabilizes `core::range::Range` and `core::range::RangeIter`, newly stable API:

```rust
// in core::range

pub struct Range<Idx> {
    pub start: Idx,
    pub end: Idx,
}

impl<Idx: fmt::Debug> fmt::Debug for Range<Idx> { /* ... */ }

impl<Idx: PartialOrd<Idx>> Range<Idx> {
    pub const fn contains<U>(&self, item: &U) -> bool
    where
        Idx: [const] PartialOrd<U>,
        U: ?Sized + [const] PartialOrd<Idx>;

    pub const fn is_empty(&self) -> bool
    where
        Idx: [const] PartialOrd;
}

impl<Idx: Step> Range<Idx> {
    pub fn iter(&self) -> RangeIter<Idx>;
}

impl<T> const RangeBounds<T> for Range<T> { /* ... */ }
impl<T> const RangeBounds<T> for Range<&T> { /* ... */ }

impl<T> const From<Range<T>> for legacy::Range<T> { /* ... */ }
impl<T> const From<legacy::Range<T>> for Range<T> { /* ... */ }

pub struct RangeIter<A>(/* ... */);

// `RangeIter::remainder` not stabilized

impl<A: Step> Iterator for RangeIter<A> {
    type Item = A;
    /* ... */
}

impl<A: Step> DoubleEndedIterator for RangeIter<A> { /* ... */ }
impl<A: Step> FusedIterator for RangeIter<A> { }
impl<A: Step> IntoIterator for Range<A> {
    type Item = A;
    type IntoIter = RangeIter<A>;
    /* ... */
}

impl ExactSizeIterator for RangeIter<u8> { }
impl ExactSizeIterator for RangeIter<i8> { }

unsafe impl<T> const SliceIndex<[T]> for range::Range<usize> {
    type Output = [T];
    /* ... */
}
unsafe impl const SliceIndex<str> for range::Range<usize> {
    type Output = str;
    /* ... */
}
```

Updates docs to reflect stabilization (removed "experimental")
…r=jackh726

refactor: remove `Adjust::ReborrowPin`

Followed by rust-lang#149130, this PR removes `Adjust::ReborrowPin` and use an `Adjust::Deref(DerefAdjustKind::Pin)` followed by an `Adjust::Borrow(AutoBorrow::Pin)` instead.
…o, r=jdonszelmann

refactor: move doc(rust_logo) check to parser

Reducing `check_attr.rs` size by moving the `#[doc(rust_logo)]` feature gate into `DocParser`.
…mease

fix: guard paren-sugar pretty-printing on short trait args

Fix rust-lang#153855 by adding a guard on trait with only one argument.
…lcnr

Create `Ty` type alias in `rustc_type_ir`

r? lcnr

Anywhere that required the use of the trait `Ty` I used `ty::Ty<I>` otherwise it should be `Ty<I>`
…szelmann

Split AttributeParserError Diagnostic implementation into subfunctions
misc test cleanups

These are some mixed cleanups to `tests/ui` that individually seemed too small for a PR of their own. Some duplicated tests are removed, `issues-*` tests are renamed and more FIXMEs are added to `ui/README.md`.
Reasoning for the deleted tests:
* `tests/ui/associated-types/issue-47814.rs`: duplicate of `tests/ui/associated-consts/issue-47814.rs`
* rename `tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs` to `.../nested-copy-drops-83176.rs` since rust-lang#78720 was not the correct issue, rust-lang#83176 was.
* `tests/ui/specialization/defaultimpl/specialization-feature-gate-default.rs`: duplicate of `tests/ui/specialization/specialization-feature-gate-default.rs`
* `fn/issue-1900.rs`: duplicate of `error-codes/E0131.rs`

r? @Kivooeo
Add a test for a now fixed ICE with `offset_of!()`

Adds a test for rust-lang#125805, which was an ICE with `offset_of!()` on a field with the type of a trait object missing `dyn` and a required lifetime parameter.

Closes rust-lang#125805.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 31, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Mar 31, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

Trying commonly failed jobs
@bors try jobs=test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 31, 2026
Rollup of 12 pull requests


try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never
Again a rollup to weed out early failures

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 31, 2026

📌 Commit bbeec42 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 Mar 31, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 31, 2026

☀️ Try build successful (CI)
Build commit: b4d5190 (b4d5190d9d0a07a1c05cbc0698537e59b71fbc7c, parent: 37cfa179be19cec2236736521bed3ea3c4a1ec97)

@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 Mar 31, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 31, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 30m 57s
Pushing 0e95a0f to main...

@rust-bors rust-bors bot merged commit 0e95a0f into rust-lang:main Mar 31, 2026
13 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 31, 2026
@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 ba11b1e (parent) -> 0e95a0f (this PR)

Test differences

Show 124 test diffs

Stage 1

  • [ui] tests/ui/associated-types/issue-47814.rs: pass -> [missing] (J0)
  • [ui] tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs: pass -> [missing] (J0)
  • [ui] tests/ui/closures/2229_closure_analysis/migrations/nested-copy-drops-83176.rs: [missing] -> pass (J0)
  • [ui] tests/ui/fn/issue-1900.rs: pass -> [missing] (J0)
  • [ui] tests/ui/impl-trait/rpit/unit-impl-default-36379.rs: [missing] -> pass (J0)
  • [ui] tests/ui/issues/issue-36379.rs: pass -> [missing] (J0)
  • [ui] tests/ui/offset-of/offset-of-unsized-trait-object-missing-lifetime.rs: [missing] -> pass (J0)
  • [ui] tests/ui/specialization/defaultimpl/specialization-feature-gate-default.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unboxed-closures/paren-sugar-non-fn-trait-issue-153855.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unboxed-closures/paren-sugar-non-fn-trait-ufcs-issue-153855.rs: [missing] -> pass (J0)
  • [ui] tests/ui/where-clauses/alias-type-where-suggest-issue-153567.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/associated-types/issue-47814.rs: pass -> [missing] (J1)
  • [ui] tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs: pass -> [missing] (J1)
  • [ui] tests/ui/closures/2229_closure_analysis/migrations/nested-copy-drops-83176.rs: [missing] -> pass (J1)
  • [ui] tests/ui/fn/issue-1900.rs: pass -> [missing] (J1)
  • [ui] tests/ui/impl-trait/rpit/unit-impl-default-36379.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-36379.rs: pass -> [missing] (J1)
  • [ui] tests/ui/offset-of/offset-of-unsized-trait-object-missing-lifetime.rs: [missing] -> pass (J1)
  • [ui] tests/ui/specialization/defaultimpl/specialization-feature-gate-default.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unboxed-closures/paren-sugar-non-fn-trait-issue-153855.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unboxed-closures/paren-sugar-non-fn-trait-ufcs-issue-153855.rs: [missing] -> pass (J1)
  • [ui] tests/ui/where-clauses/alias-type-where-suggest-issue-153567.rs: [missing] -> pass (J1)

Additionally, 102 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 0e95a0f4c677002a5d4ac5bc59d97885e6f51f71 --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-aarch64-linux: 2h 42m -> 1h 43m (-36.2%)
  2. aarch64-apple: 2h 51m -> 3h 25m (+19.6%)
  3. dist-x86_64-apple: 2h 7m -> 2h 27m (+15.5%)
  4. dist-aarch64-apple: 1h 44m -> 1h 59m (+14.2%)
  5. dist-aarch64-msvc: 1h 38m -> 1h 51m (+13.3%)
  6. dist-apple-various: 1h 42m -> 1h 54m (+12.3%)
  7. x86_64-gnu: 2h 13m -> 2h 26m (+9.5%)
  8. x86_64-gnu-tools: 1h 4m -> 59m 9s (-8.5%)
  9. x86_64-msvc-ext2: 1h 46m -> 1h 55m (+8.3%)
  10. x86_64-gnu-nopt: 2h 17m -> 2h 29m (+8.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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#151932 refactor: remove Adjust::ReborrowPin 5c4aaff7d241be418a3f33b4d07cc7dfcaaf8731 (link)
#153980 refactor: move doc(rust_logo) check to parser 63e48ed2869aaa809a955cee7f6eaf8da1295821 (link)
#154134 fix: guard paren-sugar pretty-printing on short trait args d281573a935b3ef253af484cbf49e490582ceb65 (link)
#154270 Create Ty type alias in rustc_type_ir 5133ba7ccd47fbbeed4fd89512d28b7ff33ec025 (link)
#154419 Take first task group for further execution 2b6bd90d4cd43bb3671e4160849bf11a8d36954c (link)
#154569 Fix type alias where clause suggestion spacing issue 3683d252e2e8ac329ccb05debe853ff39be5e8f9 (link)
#154580 Split AttributeParserError Diagnostic implementation into s… 9090df3585ba0cceddac3b4d9f8070157bf7feb0 (link)
#154606 misc test cleanups 854941093e05622e917790b1da91a30d0e48d9f3 (link)
#154612 Add a test for a now fixed ICE with offset_of!() b4f7b0d510891b0e7083899c8f865355064cced3 (link)
#154617 Update flate2 users to use zlib-rs f9f9c4a005ae957c96ea0199babdaafb498d3255 (link)
#154618 Fix AtomicPtr::update's cfg gate 53fd6f71db871006892e27ad5b03843b539a5b68 (link)
#154620 stabilize new Range type and iterator 689f52eb72e14cc4f766f9b4d0ee735a89e79da8 (link)

previous master: ba11b1e3f0

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-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI 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. 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.