Skip to content

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Sep 4, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

kennytm and others added 30 commits July 10, 2025 20:44
They now use the enclosing temporary scope as their scope, regardless of
which `ScopeData` was used to mark it.
```
error[E0408]: variable `Ban` is not bound in all patterns
 --> f12.rs:9:9
  |
9 |         (Foo,Bar)|(Ban,Foo) => {}
  |         ^^^^^^^^^  --- variable not in all patterns
  |         |
  |         pattern doesn't bind `Ban`
  |
help: you might have meant to use the similarly named previously used binding `Bar`
  |
9 -         (Foo,Bar)|(Ban,Foo) => {}
9 +         (Foo,Bar)|(Bar,Foo) => {}
  |
```
Co-authored-by: Jamie Cunliffe <Jamie.Cunliffe@arm.com>
…him is exported

Previously it would attempt to export the allocator shim even linking
for a crate type which pulls in the allocator shim from a dylib rather
than locally defining it.
…ts/variants for suggestions

When encountering an or-pattern with a binding not available in all patterns, look for consts and unit struct/variants that have similar names as the binding to detect typos.

```
error[E0408]: variable `Ban` is not bound in all patterns
  --> $DIR/binding-typo.rs:22:9
   |
LL |         (Foo, _) | (Ban, Foo) => {}
   |         ^^^^^^^^    --- variable not in all patterns
   |         |
   |         pattern doesn't bind `Ban`
   |
help: you might have meant to use the similarly named unit variant `Bar`
   |
LL -         (Foo, _) | (Ban, Foo) => {}
LL +         (Foo, _) | (Bar, Foo) => {}
   |
```

For items that are not in the immedate scope, suggest the full path for them:

```
error[E0408]: variable `Non` is not bound in all patterns
  --> $DIR/binding-typo-2.rs:51:16
   |
LL |         (Non | Some(_))=> {}
   |          ---   ^^^^^^^ pattern doesn't bind `Non`
   |          |
   |          variable not in all patterns
   |
help: you might have meant to use the similarly named unit variant `None`
   |
LL -         (Non | Some(_))=> {}
LL +         (core::option::Option::None | Some(_))=> {}
   |
```
…r name

When encountering a typo in a pattern that gets interpreted as an unused binding, look for unit struct/variant of the same type as the binding:

```
error: unused variable: `Non`
  --> $DIR/binding-typo-2.rs:36:9
   |
LL |         Non => {}
   |         ^^^
   |
help: if this is intentional, prefix it with an underscore
   |
LL |         _Non => {}
   |         +
help: you might have meant to pattern match on the similarly named variant `None`
   |
LL -         Non => {}
LL +         std::prelude::v1::None => {}
   |
```
```
error: unused variable: `Batery`
  --> $DIR/binding-typo-2.rs:110:9
   |
LL |         Batery => {}
   |         ^^^^^^
   |
help: if this is intentional, prefix it with an underscore
   |
LL |         _Batery => {}
   |         +
help: you might have meant to pattern match on the similarly named constant `Battery`
   |
LL |         Battery => {}
   |            +
```
This patch introduces an LSX-optimized version of `analyze_source_file`
for the `loongarch64` target. Similar to existing SSE2 implementation
for x86, this version:

- Processes 16-byte chunks at a time using LSX vector intrinsics.
- Quickly identifies newlines in ASCII-only chunks.
- Falls back to the generic implementation when multi-byte UTF-8
  characters are detected or in the tail portion.
LLVM upstream switched layouts to support 256-bit vector load/store.
It should have the same behavior as rustc, which the last wins.
It checks that its argument is at most isize::MAX, but it is called
only with layout sizes, which are already guaranteed to be at most
isize::MAX.
Change rustdoc's `--emit` to allow only one instance of each type,
regardless of the actual data that `--emit` carries.
This matches rustc's `--emit` behavior.

As of the writing, only `dep-info` emit type carries extra data.

See <rust-lang#141664>
 Use std::thread::available_parallelism() instead of hardcoded
  --test-threads=1 in bootstrap tests.
@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool O-unix Operating system: Unix-like O-windows Operating system: Windows 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-libs Relevant to the library 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. rollup A PR which is a rollup labels Sep 4, 2025
@Zalathar
Copy link
Contributor Author

Zalathar commented Sep 4, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 4, 2025

📌 Commit 11ea573 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors 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 Sep 4, 2025
@Zalathar
Copy link
Contributor Author

Zalathar commented Sep 4, 2025

@bors try jobs=test-various,x86_64-msvc-1,aarch64-apple,armhf-gnu

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Sep 4, 2025
Rollup of 24 pull requests

try-job: test-various
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: armhf-gnu
@bors
Copy link
Collaborator

bors commented Sep 4, 2025

⌛ Testing commit 11ea573 with merge 033c0a4...

@rust-bors
Copy link

rust-bors bot commented Sep 4, 2025

☀️ Try build successful (CI)
Build commit: b512dee (b512dee4a37b080fd89b354e3be006a565651160, parent: a1208bf765ba783ee4ebdc4c29ab0a0c215806ef)

@bors
Copy link
Collaborator

bors commented Sep 4, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 033c0a4 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 4, 2025
@bors bors merged commit 033c0a4 into rust-lang:master Sep 4, 2025
12 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Sep 4, 2025
Copy link
Contributor

github-actions bot commented Sep 4, 2025

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 9385c64 (parent) -> 033c0a4 (this PR)

Test differences

Show 766 test diffs

Stage 0

  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_143: [missing] -> pass (J2)
  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_144: pass -> [missing] (J2)
  • errors::verify_passes_custom_mir_phase_requires_dialect_142: [missing] -> pass (J2)
  • errors::verify_passes_custom_mir_phase_requires_dialect_143: pass -> [missing] (J2)
  • errors::verify_passes_ineffective_unstable_impl_129: [missing] -> pass (J2)
  • errors::verify_passes_ineffective_unstable_impl_130: pass -> [missing] (J2)
  • errors::verify_passes_repr_align_should_be_align_141: [missing] -> pass (J2)
  • errors::verify_passes_repr_align_should_be_align_142: pass -> [missing] (J2)
  • errors::verify_passes_rustc_const_stable_indirect_pairing_132: [missing] -> pass (J2)
  • errors::verify_passes_rustc_const_stable_indirect_pairing_133: pass -> [missing] (J2)
  • errors::verify_passes_sanitize_attribute_not_allowed_131: [missing] -> pass (J2)
  • errors::verify_passes_sanitize_attribute_not_allowed_132: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_adt_with_private_fields_140: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_adt_with_private_fields_141: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_fn_abi_136: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_fn_abi_137: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_generic_fn_135: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_generic_fn_136: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_item_134: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_item_135: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_priv_item_139: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_priv_item_140: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_type_in_interface_138: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_type_in_interface_139: pass -> [missing] (J2)
  • errors::verify_passes_unexportable_type_repr_137: [missing] -> pass (J2)
  • errors::verify_passes_unexportable_type_repr_138: pass -> [missing] (J2)
  • errors::verify_passes_unnecessary_partial_stable_feature_128: [missing] -> pass (J2)
  • errors::verify_passes_unnecessary_partial_stable_feature_129: pass -> [missing] (J2)
  • errors::verify_passes_unnecessary_stable_feature_127: [missing] -> pass (J2)
  • errors::verify_passes_unnecessary_stable_feature_128: pass -> [missing] (J2)
  • errors::verify_passes_unsupported_attributes_in_where_133: [missing] -> pass (J2)
  • errors::verify_passes_unsupported_attributes_in_where_134: pass -> [missing] (J2)
  • errors::verify_passes_unused_assign_passed_130: [missing] -> pass (J2)
  • errors::verify_passes_unused_assign_passed_131: pass -> [missing] (J2)
  • errors::verify_passes_unused_var_assigned_only_127: pass -> [missing] (J2)

Stage 1

  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_143: [missing] -> pass (J1)
  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_144: pass -> [missing] (J1)
  • errors::verify_passes_custom_mir_phase_requires_dialect_142: [missing] -> pass (J1)
  • errors::verify_passes_custom_mir_phase_requires_dialect_143: pass -> [missing] (J1)
  • errors::verify_passes_ineffective_unstable_impl_129: [missing] -> pass (J1)
  • errors::verify_passes_ineffective_unstable_impl_130: pass -> [missing] (J1)
  • errors::verify_passes_repr_align_should_be_align_141: [missing] -> pass (J1)
  • errors::verify_passes_repr_align_should_be_align_142: pass -> [missing] (J1)
  • errors::verify_passes_rustc_const_stable_indirect_pairing_132: [missing] -> pass (J1)
  • errors::verify_passes_rustc_const_stable_indirect_pairing_133: pass -> [missing] (J1)
  • errors::verify_passes_sanitize_attribute_not_allowed_131: [missing] -> pass (J1)
  • errors::verify_passes_sanitize_attribute_not_allowed_132: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_adt_with_private_fields_140: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_adt_with_private_fields_141: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_fn_abi_136: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_fn_abi_137: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_generic_fn_136: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_item_134: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_item_135: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_priv_item_139: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_priv_item_140: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_type_in_interface_138: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_type_in_interface_139: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_type_repr_137: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_type_repr_138: pass -> [missing] (J1)
  • errors::verify_passes_unnecessary_partial_stable_feature_128: [missing] -> pass (J1)
  • errors::verify_passes_unnecessary_partial_stable_feature_129: pass -> [missing] (J1)
  • errors::verify_passes_unnecessary_stable_feature_127: [missing] -> pass (J1)
  • errors::verify_passes_unnecessary_stable_feature_128: pass -> [missing] (J1)
  • errors::verify_passes_unsupported_attributes_in_where_133: [missing] -> pass (J1)
  • errors::verify_passes_unsupported_attributes_in_where_134: pass -> [missing] (J1)
  • errors::verify_passes_unused_assign_passed_130: [missing] -> pass (J1)
  • errors::verify_passes_unused_assign_passed_131: pass -> [missing] (J1)
  • errors::verify_passes_unused_var_assigned_only_127: pass -> [missing] (J1)
  • [run-make] tests/run-make/multiline-args-value: [missing] -> pass (J2)
  • [run-make] tests/run-make/rustdoc-search-load-itemtype: [missing] -> pass (J2)
  • [ui] tests/ui/drop/if-let-super-let.rs#e2021: [missing] -> pass (J2)
  • [ui] tests/ui/drop/if-let-super-let.rs#e2024: [missing] -> pass (J2)
  • [ui] tests/ui/feature-gates/feature-gate-target-feature-inline-always.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J2)
  • [ui] tests/ui/linking/mixed-allocator-shim.rs: [missing] -> pass (J2)
  • [ui] tests/ui/or-patterns/binding-typo-2.rs: [missing] -> pass (J2)
  • [ui] tests/ui/or-patterns/binding-typo.rs: [missing] -> pass (J2)
  • [ui] tests/ui/target-feature/inline-always.rs#aarch64: [missing] -> pass (J2)
  • iter::adapters::peekable::test_peekable_next_if_map_mutation: [missing] -> pass (J7)
  • iter::adapters::peekable::test_peekable_next_if_map_panic: [missing] -> pass (J7)
  • fs::tests::test_read_buf_at: [missing] -> pass (J10)
  • fs::tests::test_read_buf_exact_at: [missing] -> pass (J10)

Stage 2

  • [ui] tests/ui/drop/if-let-super-let.rs#e2021: [missing] -> pass (J0)
  • [ui] tests/ui/drop/if-let-super-let.rs#e2024: [missing] -> pass (J0)
  • [ui] tests/ui/or-patterns/binding-typo-2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/or-patterns/binding-typo.rs: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/inline-always.rs#aarch64: [missing] -> pass (J0)
  • fs::tests::test_seek_read_buf: [missing] -> pass (J3)
  • [run-make] tests/run-make/rustdoc-search-load-itemtype: [missing] -> ignore (skipping test as target does not support all of the crate types ["proc-macro"]) (J4)
  • [ui] tests/ui/linking/mixed-allocator-shim.rs: [missing] -> ignore (skipping test as target does not support all of the crate types ["dylib"]) (J5)
  • fs::tests::test_read_buf_at: [missing] -> pass (J6)
  • fs::tests::test_read_buf_exact_at: [missing] -> pass (J6)
  • [ui] tests/ui/feature-gates/feature-gate-target-feature-inline-always.rs: [missing] -> pass (J8)
  • iter::adapters::peekable::test_peekable_next_if_map_mutation: [missing] -> pass (J9)
  • iter::adapters::peekable::test_peekable_next_if_map_panic: [missing] -> pass (J9)
  • [run-make] tests/run-make/rustdoc-search-load-itemtype: [missing] -> ignore (ignored when cross-compiling) (J11)
  • [run-make] tests/run-make/multiline-args-value: [missing] -> pass (J12)
  • [run-make] tests/run-make/rustdoc-search-load-itemtype: [missing] -> pass (J13)
  • [ui] tests/ui/feature-gates/feature-gate-target-feature-inline-always.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J14)
  • [ui] tests/ui/linking/mixed-allocator-shim.rs: [missing] -> pass (J15)

(and 1 additional test diff)

Additionally, 665 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 033c0a4742794f5608b19eb78458726596f8ec18 --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. x86_64-gnu-distcheck: 5309.0s -> 7243.7s (36.4%)
  2. aarch64-apple: 6003.7s -> 4789.7s (-20.2%)
  3. dist-x86_64-netbsd: 4709.2s -> 5340.1s (13.4%)
  4. aarch64-gnu-debug: 3719.4s -> 4210.7s (13.2%)
  5. i686-gnu-1: 7420.4s -> 8332.5s (12.3%)
  6. i686-gnu-2: 5421.1s -> 6060.6s (11.8%)
  7. dist-ohos-x86_64: 4149.9s -> 4619.1s (11.3%)
  8. x86_64-gnu-llvm-20-1: 3268.3s -> 3592.5s (9.9%)
  9. x86_64-gnu-debug: 6649.4s -> 7299.9s (9.8%)
  10. i686-gnu-nopt-1: 7434.0s -> 8155.1s (9.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.

@Zalathar Zalathar deleted the rollup-n14lyv6 branch September 4, 2025 05:43
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140459 Add read_buf equivalents for positioned reads 65379c903d5cef0ab16e28f541335b17b5f4a6ed (link)
#143725 core: add Peekable::next_if_map 34b3b2b4593319713c0b03b532330e607257c50b (link)
#145209 Stabilize path_add_extension 85a34c3177987aeb09583243e40135c2719cc031 (link)
#145342 fix drop scope for super let bindings within if let bd295e21b8aeb7aa14a74b96620256a7007b3dc2 (link)
#145750 raw_vec.rs: Remove superfluous fn alloc_guard 48f13da207e697e947c1fca02bfe4b9097104425 (link)
#145827 On unused binding or binding not present in all patterns, s… db504996d8a6b88a9afaf73feda376eb68c0b959 (link)
#145932 Allow inline(always) with a target feature behind a unsta… 35b9cc9b116b592ce1939c14b932b38c16b51218 (link)
#145962 Ensure we emit an allocator shim when only some crate types… 4ecbd4f53ccf864804926af06285826700222dff (link)
#145963 Add LSX accelerated implementation for source file analysis 49d5e83999948451d9a66812f0633a3a4a774684 (link)
#146054 add #[must_use] to array::repeat b4f4891c2f0ebee11b0f7533d7555a0942a035e2 (link)
#146090 Derive PartialEq for InvisibleOrigin 4f96dbce34153c548c6023c34071a3bbb92c04c5 (link)
#146112 don't uppercase error messages 244f2339957db5b5842999cad184a06f351d2cc3 (link)
#146120 Correct typo in rustc_errors comment b18b350017a231d9c26802a7b2ba75812fe953b9 (link)
#146124 Test rustc-dev in distcheck 707109c4e59df303ba56f04bc3a286d4fea224a7 (link)
#146127 Rename ToolRustc to ToolRustcPrivate 2ab1462aecde42cd19a3f4758589947fb88c7063 (link)
#146131 rustdoc-search: add test case for indexing every item type 8b0969d65f98002ac7c013922d5e3508dc32dce6 (link)
#146134 llvm: nvptx: Layout update to match LLVM 6a58531b30443c9e8b037a76f264652e1e920853 (link)
#146136 docs(std): add missing closing code block fences in doc com… a274405813f56863f5765d64db1ccad9a4549aa5 (link)
#146137 Disallow frontmatter in --cfg and --check-cfg arguments 6b3824e9df3df0124b35cb1fbb94335ebbb0a54d (link)
#146140 compiletest: cygwin follows windows in using PATH for dynam… a9744ccaf89b8669e27f321010e9ad47e8bde3d3 (link)
#146150 fix(rustdoc): match rustc --emit precedence 3a6a3aaff52d041833735cd7166601d71b515885 (link)
#146155 Make bootstrap self test parallel e2682dcb1fa98881f0a2600b6eaac495e8c7f682 (link)
#146161 [rustdoc] Uncomment code to add scraped rustdoc examples in… 16436b721e463a5f98ca44520fa7c46388d8acd0 (link)
#146172 triagebot: configure some pings when certain attributes are… 0b1da57a92b51807e3b277a54cb967374c4654fe (link)

previous master: 9385c64c95

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-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide 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. O-unix Operating system: Unix-like O-windows Operating system: Windows rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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-libs Relevant to the library 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.