Skip to content

Comments

Rollup of 14 pull requests#153026

Merged
rust-bors[bot] merged 125 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-PAPpAYW
Feb 24, 2026
Merged

Rollup of 14 pull requests#153026
rust-bors[bot] merged 125 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-PAPpAYW

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

dependabot bot and others added 30 commits January 21, 2026 23:46
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Example
---
```rust
prt!{abc!$0(3 + 5)};
```

**Before this PR**

Assist not applicable

**After this PR**

```rust
prt!{abc!{3 + 5}};
```
Remove `#[serde(default)]` from optional fields. Fields of type `Option`
are automatically deserialized to `None` when the corresponding keys are
missing in `rust-project.json`, making the explicit attribute redundant.
Mark `cfg`, `env`, and `is_proc_macro` fields optional to match the
corresponding data structure, `project_json::CrateData`.
Example
---
```rust
fn main() {
    match 2 {
        bar => bar.$0
    }
}
```
->
```rust
fn main() {
    match 2 {
        bar => {
            let $1 = bar;
            $0
        }
    }
}
```
Example
---
```rust
fn main() {
    &baz.l$0
}
```

**Before this PR**

```text
sn if       if expr {}
sn match match expr {}
```

**After this PR**

```text
sn if       if expr {}
sn let             let
sn letm        let mut
sn match match expr {}
```
….e. `T::AssocType` without specifying the trait

I believe the new code is both cleaner and more robust, and should fix some edge cases.

rustc does all of this very differently with plenty of queries for various forms of predicate lowering; but we have tight memory constraints so we prefer a different approach.
Example
---
```rust
fn foo(bar: u32) {}
fn bar((a, bar$0)) {}
```

**Before this PR**

```rust
fn foo(bar: u32) {}
fn bar(bar: u32)) {}
```

**After this PR**

Not complete `bar: u32`
…g to `Self`

I.e. `PartialEq` and `PartialOrd`.
Example
---
```rust
//- /mac.rs crate:mac

pub fn my_derive() {}

//- /lib.rs crate:lib deps:mac
pub struct Foo(#[$0] i32);
```

**Before this PR**

```text
...
at must_use
at no_mangle
...
```

**After this PR**

```text
...
at must_use
at my_cool_helper_attribute derive helper of `MyDerive`
at no_mangle
...
```
…ing-cycles

internal: Refactor handling of associated type shorthand for type parameters, i.e. `T::AssocType` without specifying the trait
Without `unsafe` on this block, this feature didn't compile.
fix: Ensure cpu_profiler feature compiles on Rust edition 2024
…erive

fix: Fix predicates of builtin derive traits with two parameters defaulting to `Self`
fix: complete derive helpers on empty nameref
…-pat

fix: no complete suggest param in complex pattern
fix: complete `.let` on block tail prefix expression
…-call

internal: remove redundant double call in postfix
@rust-bors rust-bors bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 23, 2026
@JonathanBrouwer
Copy link
Contributor Author

Trying commonly failed jobs because this is a large rollup
@bors try jobs=test-various,aarch64-apple,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,dist-x86_64-msvc,x86_64-mingw-1,x86_64-msvc-1,dist-various-2

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Feb 23, 2026
Rollup of 14 pull requests


try-job: test-various
try-job: aarch64-apple
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: dist-x86_64-msvc
try-job: x86_64-mingw-1
try-job: x86_64-msvc-1
try-job: dist-various-2
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Feb 23, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #153007 (`rust-analyzer` subtree update)
 - #152670 (Simplify ThinLTO handling)
 - #152768 (Enable autodiff in ci for all major os)
 - #152908 (Enable rust.remap-debuginfo in the dist profile)
 - #152999 (Check importing `crate`/`$crate`/`super` after handling `self`)
 - #152003 (Reflection TypeId::trait_info_of)
 - #152976 (Revert relative paths for std links in rustc-docs)
 - #152985 (Port `#[feature]` to the new attribute system)
 - #152989 (Port `#[rustc_inherit_overflow_checks]` to the new attribute parsers)
 - #152991 (fix interpreter tracing output)
 - #153004 (Superficial tweaks to the query modifier docs in `rustc_middle::query::modifiers`)
 - #153008 (bootstrap.compiler.toml: update name of primary branch)
 - #153016 (Migration of `LintDiagnostic` - part 2)
 - #153020 (rustdoc: Improve sentence for documented empty impl blocks)

Failed merges:

 - #152988 (Port `#[register_tool]` to the new attribute system)
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 23, 2026

☀️ Try build successful (CI)
Build commit: 8c6e558 (8c6e5582834ca699dd6cb1f2496154d0b1a6d677, parent: eeb94be79adc9df7a09ad0b2421f16e60e6d932c)

@ZuseZ4
Copy link
Member

ZuseZ4 commented Feb 24, 2026

@bors cancel
x86_64-msvc1 isn't going anywhere

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 24, 2026

Auto build cancelled. Cancelled workflows:

The next pull request likely to be tested is #153026.

@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 Feb 24, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 24, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 4h 50m 26s
Pushing 0028f34 to main...

@rust-bors rust-bors bot merged commit 0028f34 into rust-lang:main Feb 24, 2026
19 of 24 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 24, 2026
@github-actions
Copy link
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 b3869b9 (parent) -> 0028f34 (this PR)

Test differences

Show 262 test diffs

Stage 0

  • completions::postfix::tests::let_tail_block: [missing] -> pass (J1)
  • completions::postfix::tests::match_arm_let_block: [missing] -> pass (J1)
  • flycheck::test_flycheck_diagnostic_cleared_after_fix: [missing] -> pass (J1)
  • flycheck::test_flycheck_diagnostic_with_override_command: [missing] -> pass (J1)
  • flycheck::test_flycheck_diagnostics_for_unused_variable: [missing] -> pass (J1)
  • handlers::add_missing_impl_members::tests::test_param_name_not_qualified: [missing] -> pass (J1)
  • handlers::add_missing_impl_members::tests::test_param_name_shadows_module: [missing] -> pass (J1)
  • handlers::convert_bool_then::tests::convert_if_to_bool_then_invert_method_call: [missing] -> pass (J1)
  • handlers::convert_to_guarded_return::tests::convert_let_ref_stmt_inside_fn: [missing] -> pass (J1)
  • handlers::generate_function::tests::generate_method_uses_current_impl_block: [missing] -> pass (J1)
  • handlers::generate_getter_or_setter::tests_getter::test_generate_multiple_getters_from_partial_selection: [missing] -> pass (J1)
  • handlers::replace_if_let_with_match::tests::special_case_option_ref: [missing] -> pass (J1)
  • handlers::replace_is_method_with_if_let_method::tests::replace_is_some_and_with_if_let_chain_some_works: [missing] -> pass (J1)
  • handlers::replace_let_with_if_let::tests::replace_let_try_enum_ref: [missing] -> pass (J1)
  • imports::insert_use::tests::insert_before_cfg_module: [missing] -> pass (J1)
  • imports::insert_use::tests::insert_with_existing_imports_and_cfg_module: [missing] -> pass (J1)
  • imports::insert_use::tests::merge_gated_imports: [missing] -> pass (J1)
  • imports::insert_use::tests::merge_gated_imports_different_order: [missing] -> pass (J1)
  • imports::insert_use::tests::merge_gated_imports_with_different_values: [missing] -> pass (J1)
  • imports::insert_use::tests::merge_into_existing_cfg_import: [missing] -> pass (J1)
  • imports::insert_use::tests::reproduce_user_issue_missing_semicolon: [missing] -> pass (J1)
  • path_transform::tests::test_transform_ident_pat: [missing] -> pass (J1)
  • references::tests::exclude_tests_macro_refs: [missing] -> pass (J1)
  • references::tests::test_access: pass -> [missing] (J1)
  • tests::fn_param::not_shows_fully_equal_inside_pattern_params: [missing] -> pass (J1)
  • tests::fn_param::not_shows_locals_inside_pattern_params: [missing] -> pass (J1)
  • tests::regression::infinitely_sized_type: [missing] -> pass (J1)

Stage 1

  • intrinsics::test_type_id_vtable: [missing] -> pass (J0)
  • intrinsics::test_vtable_for: pass -> [missing] (J0)
  • mem::trait_info_of::dst_ice: [missing] -> pass (J0)
  • mem::trait_info_of::test_dyn_creation: [missing] -> pass (J0)
  • mem::trait_info_of::test_implements_trait: [missing] -> pass (J0)
  • mem::trait_info_of::test_incorrect_use: [missing] -> pass (J0)
  • [ui] tests/ui/reflection/trait_info_of_too_big.rs: [missing] -> pass (J1)
  • [ui] tests/ui/use/use-super-in-middle.rs: [missing] -> pass (J1)
  • completions::postfix::tests::let_tail_block: [missing] -> pass (J2)
  • completions::postfix::tests::match_arm_let_block: [missing] -> pass (J2)
  • flycheck::test_flycheck_diagnostic_cleared_after_fix: [missing] -> pass (J2)
  • flycheck::test_flycheck_diagnostic_with_override_command: [missing] -> pass (J2)
  • flycheck::test_flycheck_diagnostics_for_unused_variable: [missing] -> pass (J2)
  • handlers::add_missing_impl_members::tests::test_param_name_not_qualified: [missing] -> pass (J2)
  • handlers::add_missing_impl_members::tests::test_param_name_shadows_module: [missing] -> pass (J2)
  • handlers::convert_bool_then::tests::convert_if_to_bool_then_invert_method_call: [missing] -> pass (J2)
  • handlers::convert_to_guarded_return::tests::convert_let_ref_stmt_inside_fn: [missing] -> pass (J2)
  • handlers::generate_function::tests::generate_method_uses_current_impl_block: [missing] -> pass (J2)
  • handlers::generate_getter_or_setter::tests_getter::test_generate_multiple_getters_from_partial_selection: [missing] -> pass (J2)
  • handlers::replace_if_let_with_match::tests::special_case_option_ref: [missing] -> pass (J2)
  • handlers::replace_is_method_with_if_let_method::tests::replace_is_some_and_with_if_let_chain_some_works: [missing] -> pass (J2)
  • handlers::replace_let_with_if_let::tests::replace_let_try_enum_ref: [missing] -> pass (J2)
  • imports::insert_use::tests::insert_before_cfg_module: [missing] -> pass (J2)
  • imports::insert_use::tests::insert_with_existing_imports_and_cfg_module: [missing] -> pass (J2)
  • imports::insert_use::tests::merge_gated_imports: [missing] -> pass (J2)
  • imports::insert_use::tests::merge_gated_imports_different_order: [missing] -> pass (J2)
  • imports::insert_use::tests::merge_gated_imports_with_different_values: [missing] -> pass (J2)
  • imports::insert_use::tests::merge_into_existing_cfg_import: [missing] -> pass (J2)
  • imports::insert_use::tests::reproduce_user_issue_missing_semicolon: [missing] -> pass (J2)
  • path_transform::tests::test_transform_ident_pat: [missing] -> pass (J2)
  • references::tests::exclude_tests_macro_refs: [missing] -> pass (J2)
  • references::tests::test_access: pass -> [missing] (J2)
  • tests::fn_param::not_shows_fully_equal_inside_pattern_params: [missing] -> pass (J2)
  • tests::fn_param::not_shows_locals_inside_pattern_params: [missing] -> pass (J2)
  • tests::regression::infinitely_sized_type: [missing] -> pass (J2)

Stage 2

  • intrinsics::test_type_id_vtable: [missing] -> pass (J3)
  • intrinsics::test_vtable_for: pass -> [missing] (J3)
  • mem::trait_info_of::dst_ice: [missing] -> pass (J3)
  • mem::trait_info_of::test_dyn_creation: [missing] -> pass (J3)
  • mem::trait_info_of::test_implements_trait: [missing] -> pass (J3)
  • mem::trait_info_of::test_incorrect_use: [missing] -> pass (J3)
  • [ui] tests/ui/reflection/trait_info_of_too_big.rs: [missing] -> pass (J4)
  • [ui] tests/ui/use/use-super-in-middle.rs: [missing] -> pass (J4)

Additionally, 192 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 0028f344ce9f64766259577c998a1959ca1f6a0b --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. aarch64-apple: 3h 11m -> 4h 41m (+47.3%)
  2. dist-apple-various: 2h 18m -> 1h 38m (-28.7%)
  3. dist-x86_64-apple: 2h 23m -> 3h 1m (+26.7%)
  4. dist-aarch64-msvc: 1h 32m -> 1h 49m (+18.0%)
  5. x86_64-rust-for-linux: 45m 9s -> 52m 19s (+15.9%)
  6. aarch64-gnu-debug: 1h 6m -> 1h 16m (+15.6%)
  7. i686-gnu-nopt-1: 2h 4m -> 2h 21m (+13.8%)
  8. x86_64-gnu-stable: 2h 7m -> 2h 23m (+12.4%)
  9. pr-check-1: 28m 43s -> 32m 15s (+12.3%)
  10. x86_64-gnu-llvm-21-1: 1h 9m -> 1h 17m (+11.4%)
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
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#152003 Reflection TypeId::trait_info_of 5b8ce6a094a4ffb434e7580d439912152d625510 (link)
#152670 Simplify ThinLTO handling 4d67c381507c4f8469cab8a48dd5d076304ba29b (link)
#152768 Enable autodiff in ci for all major os 25b246dde02d81ec83c087b3cca62b60f01d7e65 (link)
#152908 Enable rust.remap-debuginfo in the dist profile a9350f4e96c822b4909033dfdd7e9c94f1465991 (link)
#152976 Revert relative paths for std links in rustc-docs c68f4e0c72d36f5480c92fcb2f58ba98fdfa6f66 (link)
#152985 Port #[feature] to the new attribute system 107271ee82f5570193b6150f9164976d0b6ccea5 (link)
#152989 Port #[rustc_inherit_overflow_checks] to the new attribut… 480af16c2e56a2a7879aca55c4f7da75aa2e3c54 (link)
#152991 fix interpreter tracing output 3518baad4a200ebba4f4cef89f0c991565ae14fc (link)
#152999 Check importing crate/$crate/super after handling `se… ff20938bad2c2f9cb28a813c79f6299f0acc408c (link)
#153004 Superficial tweaks to the query modifier docs in `rustc_mid… f75803d1982b53fa82d3f254cddf9968e38d749f (link)
#153007 rust-analyzer subtree update 1caac6f90536c1b908ec731aba411197fa9c6f83 (link)
#153008 bootstrap.compiler.toml: update name of primary branch addbb9d972a467ca765cb8d3582fd29e654f6fcf (link)
#153016 Migration of LintDiagnostic - part 2 ce1cf0ca43c8eb90716a186c382432d23af01590 (link)
#153020 rustdoc: Improve sentence for documented empty impl blocks 84e4dde228b9eec6d7072a83b07d7aa906a1dac4 (link)

previous master: b3869b94cd

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (0028f34): 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 5.5%)

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

Cycles

Results (secondary -4.7%)

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)
-7.0% [-10.1%, -2.8%] 3
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 479.41s -> 479.414s (0.00%)
Artifact size: 395.68 MiB -> 395.72 MiB (0.01%)

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-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc 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. 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. 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.