Skip to content

Rollup of 4 pull requests#152264

Merged
rust-bors[bot] merged 8 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-pBsxN9G
Feb 7, 2026
Merged

Rollup of 4 pull requests#152264
rust-bors[bot] merged 8 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-pBsxN9G

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

arferreira and others added 8 commits February 6, 2026 12:41
Signed-off-by: arferreira <arfs.antonio@gmail.com>
…ir_build, r=JonathanBrouwer

Convert to inline diagnostics in `rustc_mir_build`

Part of rust-lang#151366.

r? @JonathanBrouwer
…onst_eval, r=JonathanBrouwer

Convert to inline diagnostics in `rustc_const_eval`

Part of rust-lang#151366.

r? @JonathanBrouwer
…=oli-obk

Dont strip const blocks in array lengths

r? oli-obk

mGCA now handles const blocks by *always* handling them during `lower_expr_to_const_arg_direct` instead of *sometimes* stripping them out at parse time. This is just generally a lot clearer/nicer but also means parsing isn't lossy which is just straight up wrong.

We now use `MgcaDisambiguation::Direct` for const blocks because we "directly" represent a const block as `hir::ConstArgKind::Anon` :> The only time that an anon const for const generics uses `MgcaDisambiguation::AnonConst` is for unbraced literals.

Once we properly support literals in `hir::ConstArgKind` (see rust-lang#152139 rust-lang#152001) then `MgcaDisambiguation` can be renamed to `AnonConstKind` with `TypeSystem` and `NonTypeSystem` variants. We can also get rid of `mgca_direct_lit_hack`. I expect this to be a very nice cleanup :)

Fixes rust-lang/rustfmt#6788

The diff relating to passing spans around is to avoid a bunch of mGCA diagnostics changing from  `const {}` to `{}`. I'm not entirely sure why this was happening.

cc @rust-lang/rustfmt

How do I run the tests in the rustfmt repo from here? `x test rustfmt` only seems to run like 100 tests and doesn't result in a `target/issue-6788.rs` getting created. I've verified locally that this formats correctly though
…=GuillaumeGomez

Use relative paths for std links in rustc-docs

Fixes rust-lang#151496

This adds `--extern-html-root-url` for each `STD_PUBLIC_CRATES` entry pointing to `../`, so that `rustc-docs` links to the locally installed `rust-docs` via relative paths.

r? @GuillaumeGomez @rami3l
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 7, 2026
@rustbot rustbot added 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-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. labels Feb 7, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 7, 2026

📌 Commit 7f514e2 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 Feb 7, 2026
@rust-bors

This comment has been minimized.

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

Rollup of 4 pull requests

Successful merges:

 - #152126 (Convert to inline diagnostics in `rustc_mir_build`)
 - #152186 (Convert to inline diagnostics in `rustc_const_eval`)
 - #152234 (Dont strip const blocks in array lengths)
 - #152243 (Use relative paths for std links in rustc-docs)
@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 Feb 7, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 7, 2026

💔 Test for ce9b15c failed: CI. Failed job:

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

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
REPOSITORY                                   TAG       IMAGE ID       CREATED       SIZE
ghcr.io/dependabot/dependabot-updater-core   latest    afc745c7535d   11 days ago   783MB
=> Removing docker images...
Deleted Images:
untagged: ghcr.io/dependabot/dependabot-updater-core:latest
untagged: ghcr.io/dependabot/dependabot-updater-core@sha256:faae3d3a1dedd24cde388bb506bbacc0f7ed1eae99ebac129af66acd8540c84a
deleted: sha256:afc745c7535da1bb12f92c273b9a7e9c52c3f12c5873714b2542da259c6d9769
deleted: sha256:64e147d5e54d9be8b8aa322e511cda02296eda4b8b8d063c6a314833aca50e29
deleted: sha256:5cba409bb463f4e7fa1a19f695450170422582c1bc7c0e934d893b4e5f558bc6
deleted: sha256:cddc6ebd344b0111eaab170ead1dfda24acdfe865ed8a12599a34d338fa8e28b
deleted: sha256:2412c3f334d79134573cd45e657fb6cc0abd75bef3881458b0d498d936545c8d
---
   Compiling ryu v1.0.20
[RUSTC-TIMING] hashbrown test:false 0.529
   Compiling rand v0.9.2

Session terminated, killing shell...::group::Clock drift check
  local time: Sat Feb  7 00:28:31 UTC 2026
  network time: [RUSTC-TIMING] ryu test:false 0.260
[RUSTC-TIMING] build_script_build test:false 0.660
[RUSTC-TIMING] rand test:false 0.600
   Compiling rand_xoshiro v0.7.0

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

rust-bors bot commented Feb 7, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 8m 4s
Pushing c58d9f9 to main...

@rust-bors rust-bors bot merged commit c58d9f9 into rust-lang:main Feb 7, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 7, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#152126 Convert to inline diagnostics in rustc_mir_build 54f40347ea3eba0af848ae587e25112dba1e58eb (link)
#152186 Convert to inline diagnostics in rustc_const_eval 3f41e1902f1be558f913261a5d76c380d3b993ac (link)
#152234 Dont strip const blocks in array lengths d6dc96448aa618389fbfe3063e5cd22b897a6bb3 (link)
#152243 Use relative paths for std links in rustc-docs a889a4e890bff36ca87a26617638e50eed015e09 (link)

previous master: efc9e1b50c

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
Contributor

github-actions bot commented Feb 7, 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 efc9e1b (parent) -> c58d9f9 (this PR)

Test differences

Show 152 test diffs

Stage 0

  • errors::verify_const_eval_const_heap_ptr_in_final_3: pass -> [missing] (J1)
  • errors::verify_const_eval_dangling_ptr_in_final_0: pass -> [missing] (J1)
  • errors::verify_const_eval_live_drop_33: pass -> [missing] (J1)
  • errors::verify_const_eval_long_running_25: pass -> [missing] (J1)
  • errors::verify_const_eval_nested_static_in_thread_local_1: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_await_31: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_fmt_macro_call_17: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_fn_call_18: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_for_loop_into_iter_27: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_intrinsic_19: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_match_eq_26: pass -> [missing] (J1)
  • errors::verify_const_eval_non_const_question_from_residual_29: pass -> [missing] (J1)
  • errors::verify_const_eval_raw_ptr_comparison_8: pass -> [missing] (J1)
  • errors::verify_const_eval_raw_ptr_to_int_7: pass -> [missing] (J1)
  • errors::verify_const_eval_thread_local_access_6: pass -> [missing] (J1)
  • errors::verify_const_eval_unallowed_fn_pointer_call_10: pass -> [missing] (J1)
  • errors::verify_const_eval_unallowed_inline_asm_22: pass -> [missing] (J1)
  • errors::verify_const_eval_unallowed_op_in_const_context_20: pass -> [missing] (J1)
  • errors::verify_const_eval_unstable_const_fn_11: pass -> [missing] (J1)
  • errors::verify_const_eval_unstable_const_trait_12: pass -> [missing] (J1)
  • errors::verify_const_eval_unstable_intrinsic_13: pass -> [missing] (J1)
  • errors::verify_mir_build_bindings_with_variant_name_12: pass -> [missing] (J1)
  • errors::verify_mir_build_borrow_of_moved_value_17: pass -> [missing] (J1)
  • errors::verify_mir_build_const_continue_missing_label_or_value_34: pass -> [missing] (J1)
  • errors::verify_mir_build_const_continue_unknown_jump_target_35: pass -> [missing] (J1)
  • errors::verify_mir_build_const_pattern_depends_on_generic_parameter_4: pass -> [missing] (J1)
  • errors::verify_mir_build_could_not_eval_const_pattern_5: pass -> [missing] (J1)
  • errors::verify_mir_build_invalid_pattern_21: pass -> [missing] (J1)
  • errors::verify_mir_build_irrefutable_let_patterns_if_let_guard_14: pass -> [missing] (J1)
  • errors::verify_mir_build_irrefutable_let_patterns_let_else_15: pass -> [missing] (J1)
  • errors::verify_mir_build_irrefutable_let_patterns_while_let_16: pass -> [missing] (J1)
  • errors::verify_mir_build_leading_irrefutable_let_patterns_10: pass -> [missing] (J1)
  • errors::verify_mir_build_literal_in_range_out_of_bounds_7: pass -> [missing] (J1)
  • errors::verify_mir_build_loop_match_bad_statements_29: pass -> [missing] (J1)
  • errors::verify_mir_build_loop_match_invalid_match_27: pass -> [missing] (J1)
  • errors::verify_mir_build_loop_match_invalid_update_26: pass -> [missing] (J1)
  • errors::verify_mir_build_loop_match_unsupported_type_28: pass -> [missing] (J1)
  • errors::verify_mir_build_lower_range_bound_must_be_less_than_upper_8: pass -> [missing] (J1)
  • errors::verify_mir_build_nan_pattern_23: pass -> [missing] (J1)
  • errors::verify_mir_build_non_const_path_2: pass -> [missing] (J1)
  • errors::verify_mir_build_non_empty_never_pattern_25: pass -> [missing] (J1)
  • errors::verify_mir_build_pointer_pattern_24: pass -> [missing] (J1)
  • errors::verify_mir_build_trailing_irrefutable_let_patterns_11: pass -> [missing] (J1)
  • errors::verify_mir_build_union_pattern_18: pass -> [missing] (J1)
  • errors::verify_mir_build_unreachable_due_to_uninhabited_3: pass -> [missing] (J1)
  • errors::verify_mir_build_unsized_pattern_22: pass -> [missing] (J1)
  • errors::verify_mir_build_upper_range_bound_cannot_be_min_9: pass -> [missing] (J1)

Stage 1

  • errors::verify_const_eval_interior_mutable_borrow_escaping_23: pass -> [missing] (J0)
  • errors::verify_const_eval_long_running_25: pass -> [missing] (J0)
  • errors::verify_const_eval_mutable_borrow_escaping_16: pass -> [missing] (J0)
  • errors::verify_const_eval_nested_static_in_thread_local_1: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_deref_coercion_32: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_fmt_macro_call_17: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_fn_call_18: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_for_loop_into_iter_27: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_match_eq_26: pass -> [missing] (J0)
  • errors::verify_const_eval_non_const_try_block_from_output_30: pass -> [missing] (J0)
  • errors::verify_const_eval_partial_pointer_in_final_4: pass -> [missing] (J0)
  • errors::verify_const_eval_raw_ptr_to_int_7: pass -> [missing] (J0)
  • errors::verify_const_eval_thread_local_access_6: pass -> [missing] (J0)
  • errors::verify_const_eval_unallowed_fn_pointer_call_10: pass -> [missing] (J0)
  • errors::verify_const_eval_unallowed_heap_allocations_21: pass -> [missing] (J0)
  • errors::verify_const_eval_unallowed_inline_asm_22: pass -> [missing] (J0)
  • errors::verify_const_eval_unallowed_op_in_const_context_20: pass -> [missing] (J0)
  • errors::verify_const_eval_unmarked_const_item_exposed_14: pass -> [missing] (J0)
  • errors::verify_const_eval_unmarked_intrinsic_exposed_15: pass -> [missing] (J0)
  • errors::verify_const_eval_unstable_const_fn_11: pass -> [missing] (J0)
  • errors::verify_const_eval_unstable_const_trait_12: pass -> [missing] (J0)
  • errors::verify_const_eval_unstable_intrinsic_13: pass -> [missing] (J0)
  • errors::verify_mir_build_bindings_with_variant_name_12: pass -> [missing] (J0)
  • errors::verify_mir_build_borrow_of_moved_value_17: pass -> [missing] (J0)
  • errors::verify_mir_build_const_continue_bad_const_33: pass -> [missing] (J0)
  • errors::verify_mir_build_const_continue_missing_label_or_value_34: pass -> [missing] (J0)
  • errors::verify_mir_build_const_continue_unknown_jump_target_35: pass -> [missing] (J0)
  • errors::verify_mir_build_const_param_in_pattern_1: pass -> [missing] (J0)
  • errors::verify_mir_build_const_pattern_depends_on_generic_parameter_4: pass -> [missing] (J0)
  • errors::verify_mir_build_could_not_eval_const_pattern_5: pass -> [missing] (J0)
  • errors::verify_mir_build_invalid_pattern_21: pass -> [missing] (J0)
  • errors::verify_mir_build_irrefutable_let_patterns_if_let_13: pass -> [missing] (J0)
  • errors::verify_mir_build_irrefutable_let_patterns_if_let_guard_14: pass -> [missing] (J0)
  • errors::verify_mir_build_irrefutable_let_patterns_let_else_15: pass -> [missing] (J0)
  • errors::verify_mir_build_irrefutable_let_patterns_while_let_16: pass -> [missing] (J0)
  • errors::verify_mir_build_leading_irrefutable_let_patterns_10: pass -> [missing] (J0)
  • errors::verify_mir_build_literal_in_range_out_of_bounds_7: pass -> [missing] (J0)
  • errors::verify_mir_build_loop_match_arm_with_guard_32: pass -> [missing] (J0)
  • errors::verify_mir_build_loop_match_bad_statements_29: pass -> [missing] (J0)
  • errors::verify_mir_build_loop_match_invalid_match_27: pass -> [missing] (J0)
  • errors::verify_mir_build_loop_match_invalid_update_26: pass -> [missing] (J0)
  • errors::verify_mir_build_loop_match_missing_assignment_31: pass -> [missing] (J0)
  • errors::verify_mir_build_lower_range_bound_must_be_less_than_upper_8: pass -> [missing] (J0)
  • errors::verify_mir_build_nan_pattern_23: pass -> [missing] (J0)
  • errors::verify_mir_build_non_const_path_2: pass -> [missing] (J0)
  • errors::verify_mir_build_non_empty_never_pattern_25: pass -> [missing] (J0)
  • errors::verify_mir_build_pointer_pattern_24: pass -> [missing] (J0)
  • errors::verify_mir_build_static_in_pattern_0: pass -> [missing] (J0)
  • errors::verify_mir_build_trailing_irrefutable_let_patterns_11: pass -> [missing] (J0)
  • errors::verify_mir_build_union_pattern_18: pass -> [missing] (J0)
  • errors::verify_mir_build_unreachable_due_to_uninhabited_3: pass -> [missing] (J0)
  • errors::verify_mir_build_unsized_pattern_22: pass -> [missing] (J0)
  • errors::verify_mir_build_upper_range_bound_cannot_be_min_9: pass -> [missing] (J0)

(and 40 additional test diffs)

Additionally, 12 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 c58d9f9f82ead734d73d99a64e910718f5f464d3 --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-apple: 2h 12m -> 2h 37m (+18.8%)
  2. dist-x86_64-solaris: 1h 49m -> 1h 34m (-14.0%)
  3. dist-x86_64-apple: 1h 41m -> 1h 54m (+13.3%)
  4. aarch64-gnu-debug: 1h 20m -> 1h 9m (-13.2%)
  5. x86_64-gnu-llvm-21-2: 1h 37m -> 1h 27m (-11.1%)
  6. x86_64-msvc-2: 2h 30m -> 2h 13m (-11.0%)
  7. x86_64-gnu-debug: 2h 5m -> 1h 53m (-10.0%)
  8. dist-x86_64-msvc-alt: 2h 31m -> 2h 45m (+8.8%)
  9. x86_64-gnu-llvm-20: 1h 11m -> 1h 17m (+8.6%)
  10. dist-armv7-linux: 1h 27m -> 1h 35m (+8.6%)
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

Finished benchmarking commit (c58d9f9): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

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
Regressions ❌
(secondary)
0.2% [0.1%, 0.2%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.0% [-3.2%, -0.4%] 17
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -0.0%, secondary 1.0%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.9%, 0.9%] 1
Regressions ❌
(secondary)
1.0% [1.0%, 1.0%] 1
Improvements ✅
(primary)
-0.9% [-0.9%, -0.9%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.0% [-0.9%, 0.9%] 2

Cycles

Results (secondary -4.2%)

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)
-4.2% [-4.6%, -3.7%] 2
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 474.536s -> 475.659s (0.24%)
Artifact size: 397.98 MiB -> 398.00 MiB (0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Feb 7, 2026
@nnethercote
Copy link
Contributor

Secondary benchmark improvements probably due to inline diagnostics again.

@JonathanBrouwer
Copy link
Contributor Author

Started perf runs to confirm

@JonathanBrouwer
Copy link
Contributor Author

Seems to be mostly explained by the inline diagnostics PRs. Some benchmarks don't show up but that's likely because together they are significant, but separately they are not
Perf more positive than negatives so happy :) @rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Feb 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. 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-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants