Skip to content

Rollup of 8 pull requests - #164216

Merged
rust-bors[bot] merged 208 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-YK9Ft3h
Oct 12, 2026
Merged

rust-bors[bot] merged 208 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-YK9Ft3h

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

RalfJung and others added 30 commits September 2, 2026 15:47
This also closes gaps we had, e.g. now `check_impl()` will include field defaults.

The only changes to tests are some ordering changes due to sorting by the root expr's location now instead of the full item's location, and removal of trait functions without bodies, since they don't have a root expr. As their inference is meaningless (only the parameter types, unless you have anon consts in the parameters' patterns which we don't have in our tests), I felt safe to ignore that.
Instead store `Option`s for the self-referential parts.
…n_args_for_alias()`

It's not an optimization yet, but in the in-tree solver this function reuses the `GenericArgs` if the assoc has no args of its own.
And since `Projection::project()` does not require `DbInterner`, also remove this requirement from any slice's `new_from_iter()`, which is probably better anyway.
Again for the intent of making `AnonConst` a tracked struct (as well as for perf).

We still have one problematic query: `resolve_type_param_assoc_type_shorthand()`. It is problematic and I need to think what to do with it.
E.g.:
```rust
trait Trait
where
    Self::Assoc: OtherTrait,
{
    type Assoc;
}
```
Is equivalent to:
```rust
trait Trait {
    type Assoc: OtherTrait;
}
```

The code was copied from rustc and adapted.
Signed-off-by: 0xull <mrikehchukwuka@gmail.com>
fix: cache macro-expanded roots when climbing ancestors
…-refactor

internal: Refactor `SyntaxContext` to not reimplement Salsa macros
If the discover command failed, log which directory we tried to run it
in. This is really helpful when users have a bunch of worktrees.
This package is deprecated (producing npm warnings) and its GitHub
repository has been archived.

We can just use eslint Config types directly these days, so do that instead.

AI disclosure: Code partly written by GPT-5.6 Sol, commit message and
review by me.
…ine-config

internal: Remove deprecated eslint-define-config dependency
fix: Include working directory when discover command fails
Example
---
```rust
trait Trait { fn method(); }
impl Trait for Foo { fn method() {} }
struct Foo;

fn main() {
    Foo::$0method()
}
```

**Before this PR**

```rust
fn method()
```

**After this PR**

```rust
impl Trait for Foo
fn method()
```
rust-analyzer would panic when the trait solver called itself, which
can happen during const evaluation.

rustc has the same function, but doesn't panic, so just copy the rustc
implementation:

https://github.com/rust-lang/rust/blob/5392d2f545c6836dc79f209bcc14ac7179dbc4f2/compiler/rustc_middle/src/ty/context/impl_interner.rs#L155

This caused SCIP crashes on the dudykr/stc, renegade-fi/renegade, and
tikv/tikv GitHub repositories, so would presumably cause LSP crashes
too.

The linked trait-system-refactor-initiative issue has a repro, but for
reference I minimised a repro independently:

    trait Tr { const N: usize; }
    struct A<const N: usize>;
    impl<const N: usize> Tr for A<N> { const N: usize = N; }
    const fn k<T: Tr>() -> usize { T::N }
    struct B<const N: usize>;
    impl<const N: usize> Tr for B<N> where A<{ k::<A<3>>() }>: Tr { const N: usize = 0; }
    fn need<T: Tr>() {}
    fn f() { need::<B<1>>(); }

Since this is strictly removing a panic and copying rustc, I haven't
added a unit test with this.

AI disclosure: Triaged and minimised with help by an LLM, but commit
message and final code by me.
fix: Panic when trait solver re-enters itself
…binary_op_error

fix: return an error early for unsupported string binary operations
When an enum variant discriminant
initializer references another variant via a cast, e.g. `B = Foo::A as isize + 1`
the previous implementation would lower `Foo::A` as a place and then extract its
discriminant via `Rvalue::Discriminant`.
This caused infinite recursion during consteval because evaluating the discriminant of one variant requires evaluating another.

# Conflicts:
#	crates/hir-ty/src/mir/lower.rs
…r#18281

`isValidExecutable` was synchronous until rust-lang/rust-analyzer#18281 made
it `async` without updating its only caller. `!isValidExecutable(...)` has
negated a Promise ever since, which is never false, so the check has silently
done nothing for about 2 years.

A bad `rust-analyzer.server.path` therefore failed with

    Cannot activate rust-analyzer extension: undefined

naming neither the binary nor the setting, because vscode-languageclient
rejects with a string rather than an Error. The probe command still runs
and still logs a warning with the real reason.

Also fixed some string messages that were hidden by the dead check:

- missing space after `--version.`, plus a run of indentation pulled in by a
  line continuation inside the template literal
- the bootstrap notification and the `trace.extension` deprecation message
  both pointed at `OUTPUT > Rust Analyzer Client`, which is now called
  `rust-analyzer Extension`

This restores the behaviour from before that change, which I think is
desirable. However, there are two (somewhat uncommon, IMO) things that can
start failing _again_ as a result of restoring this behavior:

- a `server.path` that does not exit 0 on `--version`, even if it speaks LSP
  fine. Yesterday that would log the warning and continue, and would
  work fine. Now it will give an error, which is probably what was
  originally intended there.
- a relative `server.path`, since the probe runs in the extension host's
  working directory while the server is launched in the workspace
  folder.
…ecutable

fix: restore the server binary check broken by rust-lang#18281
vfs-notify registered one recursive `watch()` per directory in the workspace
walk. On macOS, notify's fsevent backend rebuilds the entire FSEventStream on
every `watch()` call, so watching N directories cost O(N^2) realpath/getattrlist
syscalls. This translates to minutes of startup in a large workspace.

Fortunately, the per-directory recursive watches became redundant when
rust-lang/rust-analyzer#21771 switched the watch to `RecursiveMode::Recursive`,
so we can remove most of them. However, symlinked directories are still watched
explicitly because macOS fsevent framework does not follow symlinks on its own.

Result: LSP indexing time for https://github.com/delta-io/delta-kernel-rs on my
macOS laptop dropped from ~11 minutes to ~45 seconds.
fix: watch include roots recursively once, not every directory
@rustbot rustbot added 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-rust-analyzer Relevant to the rust-analyzer 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Oct 12, 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 12, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 5bbae1e 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 12, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 12, 2026
Rollup of 8 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-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e6b1184 (e6b118400b4d774d38c255b0e99c2fd704394ceb)
Base parent: 34ca1df (34ca1dfc0e425a261707a6491a4eb45d58a97d38)

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

rust-bors Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 2h 54m 54s
Pushing d64de46 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 0093837 (parent) -> d64de46 (this PR)

Test differences

Show 376 test diffs

Stage 0

  • consteval::tests::unsupported_str_binary_op_in_eval_rvalue: [missing] -> pass (J2)
  • handlers::generate_enum_variant::tests::generate_variant_for_self_in_impl: [missing] -> pass (J2)
  • handlers::generate_function::tests::not_applicable_for_self_enum_variant: [missing] -> pass (J2)
  • handlers::missing_match_arms::tests::builtin_cfg_pred_pat: [missing] -> pass (J2)
  • hover::tests::hover_cfg_predicate: [missing] -> pass (J2)
  • hover::tests::hover_with_enum_closure_capture: [missing] -> pass (J2)
  • render::function::tests::no_turbofish: [missing] -> pass (J2)
  • render::function::tests::turbofish: [missing] -> pass (J2)
  • render::tests::call_parens_in_non_direct_expr: [missing] -> pass (J2)
  • render::tests::set_type_alias_completion_info: [missing] -> pass (J2)
  • semantic_tokens_delta_after_edit: [missing] -> pass (J2)
  • tests::coercion::coerce_fn_items_with_unsafe_in_match_arms: [missing] -> pass (J2)
  • tests::runner::err::attr_end_of_stmt_list: [missing] -> pass (J2)
  • tests::traits::assoc_type_bounds_on_trait: [missing] -> pass (J2)

Stage 1

  • attrs::docs::tests::doc_attr_source_map: [missing] -> pass (J0)
  • handlers::extract_module::tests::test_extract_module_trait: [missing] -> pass (J0)
  • handlers::introduce_named_type_parameter::tests::replace_impl_long_path: [missing] -> pass (J0)
  • handlers::non_exhaustive_let::tests::regression_23336_2: [missing] -> pass (J0)
  • handlers::type_mismatch::tests::type_match_cfg_macros: [missing] -> pass (J0)
  • hover::tests::hover_cfg_predicate: [missing] -> pass (J0)
  • hover::tests::show_impl_container_without_type_params: [missing] -> pass (J0)
  • render::tests::call_parens_in_bad_case: [missing] -> pass (J0)
  • render::tests::not_type_match_useless_types: [missing] -> pass (J0)
  • semantic_tokens_delta_after_edit: [missing] -> pass (J0)
  • tests::attribute::attr_before_arg: [missing] -> pass (J0)
  • tests::coercion::coerce_unsize_infer_var_via_default_and_box: [missing] -> pass (J0)
  • tests::never_type::diverging_let_with_else: [missing] -> pass (J0)
  • tests::regression::new_solver::async_closure_hrtb_return_type: [missing] -> pass (J0)
  • tests::runner::err::enum_variant_attrs_without_variant: [missing] -> pass (J0)
  • tests::runner::ok::cfg_pred_pat: [missing] -> pass (J0)
  • tests::traits::assoc_type_bounds_on_trait: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/transmutability/vec-recycle-next-solver.rs#current: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/ambiguity-in-closure-arg.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/ambiguity-in-closure-arg.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/lifetimes.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/main.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/main.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/recursive-size-skeleton.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/recursive-size-skeleton.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-array-to-scalar.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-associated-type-to-slice.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-bool-u8.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-bool-u8.rs#current: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-different-sizes.rs#current: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-fat-pointers.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-from-fn-item-types-error.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-impl.rs#current: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-impl.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-slice-to-dst.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-type-parameters.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-type-parameters.rs#next: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/transmute/transmute-zst-generics.rs#next: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/virtual-attrs.rs: [missing] -> pass (J2)
  • [ui] tests/ui/transmutability/with-condition-nested-goals.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/diverging-fn-transmute.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/diverging-fn-transmute.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/lifetimes.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/lifetimes.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/recursive-size-skeleton.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/recursive-size-skeleton.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-array-to-scalar.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-associated-type-to-slice.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-bool-u8.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-bool-u8.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-fat-pointers.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/transmute-fat-pointers.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-fat-pointers.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-imut-to-mut.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-imut-to-mut.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-in-async-fn.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/transmute-in-async-fn.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-in-async-fn.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-same-associated-type.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/transmute/transmute-slice-to-dst.rs: pass -> [missing] (J4)
  • [ui] tests/ui/transmute/unnecessary-transmute-path-remap-ice-140277.rs#current: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/assumptions_on_binders/replace_region_vars_with_placeholders.rs: [missing] -> pass (J3)
  • [ui] tests/ui/transmutability/vec-recycle-next-solver.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/ambiguity-in-closure-arg.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/lifetimes.rs: pass -> [missing] (J3)
  • [ui] tests/ui/transmute/main.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/recursive-size-skeleton.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-associated-type-to-slice.rs: pass -> [missing] (J3)
  • [ui] tests/ui/transmute/transmute-associated-type-to-slice.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-bool-u8.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-different-sizes.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-from-fn-item-types-error.rs: pass -> [missing] (J3)
  • [ui] tests/ui/transmute/transmute-from-fn-item-types-error.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-impl.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-imut-to-mut.rs: pass -> [missing] (J3)
  • [ui] tests/ui/transmute/transmute-imut-to-mut.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-imut-to-mut.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-in-async-fn.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-in-async-fn.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-same-associated-type.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-same-associated-type.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/transmute-zst-generics.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/unnecessary-transmutation.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/unnecessary-transmutation.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/transmute/unnecessary-transmute-path-remap-ice-140277.rs#next: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/virtual-attrs.rs: [missing] -> pass (J5)

(and 196 additional test diffs)

Additionally, 80 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 d64de46d0aab619b69efe68a99d43d11434b6924 --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-miri: 45m 12s -> 1h 31m (+103.2%)
  2. test-x86_64-msvc-ext2: 1h 1m -> 1h 47m (+75.7%)
  3. optional-test-x86_64-gnu-autodiff: 32m 27s -> 55m 51s (+72.1%)
  4. dist-i686-linux: 1h 8m -> 1h 55m (+69.0%)
  5. test-x86_64-mingw-2: 1h 43m -> 2h 53m (+67.7%)
  6. test-x86_64-gnu-llvm-22-3: 1h 13m -> 1h 54m (+55.7%)
  7. test-arm-android: 1h 10m -> 1h 49m (+54.8%)
  8. test-x86_64-mingw-1: 1h 53m -> 2h 51m (+50.4%)
  9. dist-x86_64-musl: 1h 36m -> 2h 22m (+47.9%)
  10. test-pr-check-2: 26m 47s -> 39m 18s (+46.7%)
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 (d64de46): comparison URL.

Overall result: ❌ regressions - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.4% [0.1%, 0.6%] 4
Regressions ❌
(secondary)
0.4% [0.2%, 0.8%] 37
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.1%, 0.6%] 4

Max RSS (memory usage)

Results (primary 6.1%)

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

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

Cycles

This perf run didn't have relevant results for this metric.

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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.2%, -0.0%] 89
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.0%] 55
All ❌✅ (primary) -0.1% [-0.2%, -0.0%] 89

Bootstrap: 488.816s -> 490.869s (0.42%)
Artifact size: 406.86 MiB -> 406.63 MiB (-0.05%)

@rustbot rustbot added the perf-regression Performance regression. label Oct 12, 2026
@rust-bors

rust-bors Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#164196 rust-analyzer subtree update dd8a2e6770d9560bcfd5254d93b49a3c2ecb71df
(link)
#164037 Restrict application of optimization attributes from instan… c644166aab0d25d97e6edac7cab779b959e2aa1e
(link)
#164201 Improve --bless output for tests/debuginfo 32ccc877f1045cc860a72c05ab4c6aed1e76d75d
(link)
#164202 [rustdoc] Move the creation of IndividualTestOptions into… 7e6c6cbc1b51ca9596a6c15231ab218b3f92587b
(link)
#162140 fn_addr_eq: we actually can guarantee basically nothing 7b53055d89ea1451090d9c6dc697897b41dd6abc
(link)
#163946 Fix transmutability type mismatch bug e0ea861c97b30fe1003dbf88e0a03d3f81283bec
(link)
#163978 Copy over some methods from At to InferCtxt d33aa67cc9550c0e48d2e9a4417a857f74c63a3c
(link)
#164045 -Zassumptions-on-binders: replace region vars with bound va… 2cbb8f3b23d2b53650437747128a8a70691e782b
(link)

parent commit: 0093837afd

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.

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rust-timer triage all

@rust-timer

rust-timer commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator
Running triage with 19 benchmarks

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • await-call-tree
  • clap_derive-4.5.32
  • coercions
  • ctfe-stress-5
  • deeply-nested-multi
  • helloworld
  • helloworld-tiny
  • issue-46449
  • issue-58319
  • issue-88862
  • large-workspace
  • projection-caching
  • regression-31157
  • token-stream-stress
  • unicode-normalization-0.1.24
  • unify-linearly
  • wf-projection-stress-65510
  • wg-grammar
  • wg-grammar-new-solver

#164196 dd8a2e6 rust-analyzer subtree update

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (secondary -2.6%)

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

Cycles

This perf run didn't have relevant results for this metric.

Binary size

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

#164037 c644166 Restrict application of optimization attributes from instance

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary 2.4%)

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

Binary size

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

#164201 32ccc87 Improve --bless output for tests/debuginfo

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

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

#164202 7e6c6cb [rustdoc] Move the creation of IndividualTestOptions into the test runner closure to ensure the temporary folder is removed right after the test is done running

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary 4.6%)

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

Binary size

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

#162140 7b53055 fn_addr_eq: we actually can guarantee basically nothing

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

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

#163946 e0ea861 Fix transmutability type mismatch bug

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

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

#163978 d33aa67 Copy over some methods from At to InferCtxt

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

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

#164045 2cbb8f3 -Zassumptions-on-binders: replace region vars with bound vars when handling alias outlives'

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary 2.9%)

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

Binary size

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

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 merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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-rust-analyzer Relevant to the rust-analyzer 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. 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.