Skip to content

Rollup of 7 pull requests#155567

Merged
rust-bors[bot] merged 217 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-0zpjwMk
Apr 20, 2026
Merged

Rollup of 7 pull requests#155567
rust-bors[bot] merged 217 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-0zpjwMk

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Young-Flash and others added 30 commits April 11, 2026 13:23
Co-authored-by: Amit Singhmar <abhay.singhmar2@gmail.com>
The "ExecutionGraph" GenMC folder has been renamed to "Execution",
and there is a GenMC class named ExecutionState.

This commit adjust the include paths in some cpp files, and renames
an enum in lib.rs (ExecutionState->ExecutionStatus).
The new parameter allows to step the event index by an arbitrary
amount. The functions now return void.

This is a preparatory commit that lays the ground before adjusting
all API calls to match the new GenMC API. The code does not
compile.
Another preparatory commit before API adjustment.
This commit adds a new result type for malloc (preparatory).
In the newer GenMC version, two RMWs might read from the same
write during an exploration. In such a case, the exploration
has to be dropped so that an alternative one can be explored.

Miri did not provide a way to completely stop an execution
without throwing an error. This commit adds a new TerminationInfo
case in diagnostics that is used by GenMC to signal that an
execution should be aborted.

On the API side, a new result field is introduced.
…ocking

Add support for non-blocking TCP sockets and operations
  - Fixes API calls to existing GenMC functions, which now
  return the number by which event_count should be increased
  - Properly handles "Invalid" results (where applicable)
  - Introduces handle_non_atomic_{store,load} in Miri and
  ensures they call their GenMC counterparts.
  - Adds NA handlers in Miri's GenmcCtx, and renames the previous
  handle_{load,store} to handle_atomic_{load,store}.
  - Removes handle_load_reset_if_none, the only purpose of which
  was to decrease the event counter.
  - Removes dec_pos(), which is now also unnecessary.
BUG_ON() no longer exists in GenMC.
GenMC no longer relies on interpreter callbacks. It collects
all information it needs for both exploration and error-reporting
dynamically.
Necessary for GenMC to build. Makes exploration much faster
since NAs are not explicitly tracked.
The difference is caused by the different order in which GenMC
explores executions, and the new error-detection mechanism.
GenMC: Fixes and improved non-atomic handling
Example
---
```rust
fn foo() {
    let mut arr = [1i32];
    $0arr[0] = 3;$0
    let _ = arr;
}
```

**Before this PR**

```rust
fn foo() {
    let mut arr = [1i32];
    fun_name(&mut arr);
    let _ = arr;
}

fn $0fun_name(arr: &mut [i32; 1]) {
    *arr[0] = 3;
}
```

**After this PR**

```rust
fn foo() {
    let mut arr = [1i32];
    fun_name(&mut arr);
    let _ = arr;
}

fn $0fun_name(arr: &mut [i32; 1]) {
    arr[0] = 3;
}
```
…ent-index

fix: no deref index-expr for extract_function
I chose the order of mut restrictions to be `unsafe mut(...)` for unsafe fields, but it's undecided yet.
`rust-analyzer` subtree update

Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@cc5bc48.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
…ed-closure-return, r=petrochenkov

Suggest returning a reference for unsized place from a closure

Fixes rust-lang#152064

There are 3 similar note:
`the size for values of type str cannot be known at compilation time`
for different spans, maybe need more work to remove some of them.

This PR only adds a suggestion for using a reference.
Simplify macros for target-modifier and mitigation flags

- Rebased and revised version of rust-lang#154501.
---

The macros used for handling command-line flags that are “target modifiers” or “mitigations” are quite complicated, and can be significantly simplified by tweaking their syntax and by making use of `${ignore(..)}` metavars.

It's possible that more code could be moved out of macros (e.g. declaring some of the enums by hand), but that can be investigated in a potential follow-up.

There should be no change to compiler behaviour.
…tern, r=ehuss

tests/ui/extern: add annotations for reference rules
Make reparsed guard metavars collect tokens

This should avoid missing tokens.

Closes rust-lang#155333
…d, r=JonathanBrouwer

Remove `AttributeLintKind` variants - part 4

Part of rust-lang#153099.

r? @JonathanBrouwer
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Apr 20, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

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

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. labels Apr 20, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 20, 2026

📌 Commit ca0710a 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 20, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Apr 20, 2026
Rollup of 7 pull requests


try-job: dist-various-1
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
try-job: i686-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 20, 2026

☀️ Try build successful (CI)
Build commit: 88cae15 (88cae15acfeae841e7e1212b77269791e6985c90, parent: 91367b0f73196f0d133066e0e9363da339ed87b5)

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

rust-bors Bot commented Apr 20, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 34m 12s
Pushing 66da6ca to main...

@rust-bors rust-bors Bot merged commit 66da6ca into rust-lang:main Apr 20, 2026
13 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 20, 2026
@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#152162 Suggest returning a reference for unsized place from a clos… 0fb69d1f4e42fd3cae4a2c448179fd6620fda2e2 (link)
#153546 tests/ui/extern: add annotations for reference rules d20c45d7451fdd2965a9275e2c8fabc30523d90d (link)
#155389 Simplify macros for target-modifier and mitigation flags 775dd21e66ebf578228430035bd1caee73aa7ec3 (link)
#155475 Make reparsed guard metavars collect tokens 89f9cde0f39c3376c95c76d9b953fcf56c95289d (link)
#155553 miri subtree update 26fcb35e2873f4580d1744d59e4518fab884a3bb (link)
#155556 rust-analyzer subtree update 07204710f73ab4477568aa1911149936a5ba82ef (link)
#155560 Remove AttributeLintKind variants - part 4 5de96a141124e7018ef4257d69c7953a396ef025 (link)

previous master: c28e303778

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

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 c28e303 (parent) -> 66da6ca (this PR)

Test differences

Show 74 test diffs

Stage 0

  • ast::edit_in_place::tests::test_create_generic_param_list: pass -> [missing] (J1)
  • ast::edit_in_place::tests::test_ident_pat_set_pat: pass -> [missing] (J1)
  • flycheck::test_flycheck_diagnostics_with_override_command_cleared_after_fix: pass -> ignore (this test tends to stuck, FIXME: investigate that) (J1)
  • handlers::auto_import::tests::prefer_underscore_import: [missing] -> pass (J1)
  • handlers::convert_comment_block::tests::empty_block_to_line: [missing] -> pass (J1)
  • handlers::extract_function::tests::mut_index_from_outer_scope: [missing] -> pass (J1)
  • handlers::extract_type_alias::tests::duplicate_names: [missing] -> pass (J1)
  • handlers::extract_variable::tests::extract_variable_in_token_tree: [missing] -> pass (J1)
  • handlers::extract_variable::tests::extract_variable_in_token_tree_record_expr: [missing] -> pass (J1)
  • handlers::replace_if_let_with_match::tests::test_if_with_match_paren_jump_scrutinee: [missing] -> pass (J1)
  • handlers::replace_let_with_if_let::tests::replace_let_record_expr: [missing] -> pass (J1)
  • hover::tests::hover_recursive_const_fn: [missing] -> pass (J1)
  • references::tests::exclude_library_refs_filtering: [missing] -> pass (J1)
  • references::tests::find_refs_from_library_source_keeps_library_refs: [missing] -> pass (J1)
  • render::tests::complete_ref_match_after_keyword_prefix: [missing] -> pass (J1)
  • render::tests::score_has_local_inherent_impl: [missing] -> pass (J1)
  • tests::coercion::coerce_unsize_apit: pass -> ignore (rustc emits E0277 here) (J1)
  • tests::expression::expr_unstable_item_internal_feature: [missing] -> pass (J1)
  • tests::flyimport::prefer_underscore_import: [missing] -> pass (J1)
  • tests::item::completes_variant_through_hidden_enum_alias: [missing] -> pass (J1)
  • tests::regression::regression_21885: [missing] -> pass (J1)
  • tests::regression::regression_22007: [missing] -> pass (J1)
  • tests::runner::ok::impl_restrictions: [missing] -> pass (J1)
  • tests::runner::ok::record_mut_restrictions_after: [missing] -> pass (J1)
  • tests::runner::ok::record_mut_restrictions_before: [missing] -> pass (J1)
  • tests::runner::ok::tuple_mut_restrictions: [missing] -> pass (J1)
  • tests::runner::ok::type_const: [missing] -> pass (J1)
  • upvars::tests::self_upvar: [missing] -> pass (J1)

Stage 1

  • ast::edit_in_place::tests::test_create_generic_param_list: pass -> [missing] (J0)
  • ast::edit_in_place::tests::test_ident_pat_set_pat: pass -> [missing] (J0)
  • flycheck::test_flycheck_diagnostics_with_override_command_cleared_after_fix: pass -> ignore (this test tends to stuck, FIXME: investigate that) (J0)
  • handlers::auto_import::tests::prefer_underscore_import: [missing] -> pass (J0)
  • handlers::convert_comment_block::tests::empty_block_to_line: [missing] -> pass (J0)
  • handlers::extract_function::tests::mut_index_from_outer_scope: [missing] -> pass (J0)
  • handlers::extract_type_alias::tests::duplicate_names: [missing] -> pass (J0)
  • handlers::extract_variable::tests::extract_variable_in_token_tree: [missing] -> pass (J0)
  • handlers::extract_variable::tests::extract_variable_in_token_tree_record_expr: [missing] -> pass (J0)
  • handlers::replace_if_let_with_match::tests::test_if_with_match_paren_jump_scrutinee: [missing] -> pass (J0)
  • handlers::replace_let_with_if_let::tests::replace_let_record_expr: [missing] -> pass (J0)
  • hover::tests::hover_recursive_const_fn: [missing] -> pass (J0)
  • references::tests::exclude_library_refs_filtering: [missing] -> pass (J0)
  • references::tests::find_refs_from_library_source_keeps_library_refs: [missing] -> pass (J0)
  • render::tests::complete_ref_match_after_keyword_prefix: [missing] -> pass (J0)
  • render::tests::score_has_local_inherent_impl: [missing] -> pass (J0)
  • tests::coercion::coerce_unsize_apit: pass -> ignore (rustc emits E0277 here) (J0)
  • tests::expression::expr_unstable_item_internal_feature: [missing] -> pass (J0)
  • tests::flyimport::prefer_underscore_import: [missing] -> pass (J0)
  • tests::item::completes_variant_through_hidden_enum_alias: [missing] -> pass (J0)
  • tests::regression::regression_21885: [missing] -> pass (J0)
  • tests::regression::regression_22007: [missing] -> pass (J0)
  • tests::runner::ok::impl_restrictions: [missing] -> pass (J0)
  • tests::runner::ok::record_mut_restrictions_after: [missing] -> pass (J0)
  • tests::runner::ok::record_mut_restrictions_before: [missing] -> pass (J0)
  • tests::runner::ok::tuple_mut_restrictions: [missing] -> pass (J0)
  • tests::runner::ok::type_const: [missing] -> pass (J0)
  • upvars::tests::self_upvar: [missing] -> pass (J0)
  • [ui] tests/ui/closures/unsized-return-suggest-ref-issue-152064.rs: [missing] -> pass (J1)
  • [ui] tests/ui/macros/macro-guard-matcher-recursion.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/closures/unsized-return-suggest-ref-issue-152064.rs: [missing] -> pass (J2)
  • [ui] tests/ui/macros/macro-guard-matcher-recursion.rs: [missing] -> pass (J2)

Additionally, 14 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 66da6cae1a6f12e9585493ab8f8f19cf753091fd --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. armhf-gnu: 1h 10m -> 1h 36m (+37.0%)
  2. x86_64-gnu-stable: 1h 53m -> 2h 27m (+29.9%)
  3. dist-i686-linux: 1h 25m -> 1h 47m (+25.5%)
  4. i686-gnu-1: 2h 28m -> 1h 52m (-24.7%)
  5. dist-android: 22m 25s -> 27m 45s (+23.7%)
  6. i686-msvc-2: 2h 17m -> 1h 45m (-23.6%)
  7. test-various: 1h 41m -> 2h 4m (+23.1%)
  8. dist-ohos-aarch64: 1h 2m -> 1h 16m (+22.7%)
  9. x86_64-mingw-2: 2h 45m -> 2h 9m (-22.0%)
  10. x86_64-gnu-gcc: 52m 52s -> 1h 4m (+21.9%)
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 (66da6ca): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

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

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

Bootstrap: 491.853s -> 496.86s (1.02%)
Artifact size: 394.39 MiB -> 394.38 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 (`#[…]`, `#![…]`) 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-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.