Skip to content

Rollup of 9 pull requests #142979

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
Jun 25, 2025
Merged

Rollup of 9 pull requests #142979

merged 27 commits into from
Jun 25, 2025

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jun 24, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Urgau and others added 27 commits June 18, 2025 00:06
Non-functional change to simplify control flow.
Since [1], the fragment specifier is unconditionally required in all
editions. This means `NonTerminalKind` no longer needs to be optional,
as we can reject this code during the expansion of `macro_rules!` rather
than handling it throughout the code. Do this cleanup here.

[1]: rust-lang#128425
`tt` should match more, so use this for both missing and invalid
fragment specifiers.

Also remove one unneeded instance of `String`.
…sysroots

Also avoid creating and cloning sysroot unnecessarily.
The version string is difficult to properly normalize out, and removing
it isn't a huge deal (the user can query version info easily through
`rustc --version` or `cargo --version`).

The normalization options were all non-ideal:

- Per-test version string normalization is nasty to maintain, and we
  need to maintain `n` copies of it.
- Centralized compiletest normalization (with a directive opt-out) is
  also not ideal, because `cfg(version(..))` tests can't have those
  accidentally normalized out (and you'd have to remember to opt-out).
When encountering `use _;`, `use _::*'` or similar, do not emit two errors for that single mistake. This also side-steps the issue of resolve errors suggesting adding a crate named `_` to `Cargo.toml`.
…, r=fmease

Also emit suggestions for usages in the `non_upper_case_globals` lint

This PR adds suggestions for all the usages of the renamed item in the warning of the  `non_upper_case_globals` lint.

Fixes rust-lang#124061
…ifiers-cleanup, r=petrochenkov

mbe: Clean up code with non-optional `NonterminalKind`

Since [rust-lang#128425], the fragment specifier is unconditionally required in all
editions. This means `NonTerminalKind` no longer needs to be optional,
as we can reject this code during the expansion of `macro_rules!` rather
than handling it throughout the code. Do this cleanup here.

[rust-lang#128425]: rust-lang#128425
rustc_session: Add a structure for keeping both explicit and default sysroots

Also avoid creating and cloning sysroot unnecessarily.

Implements the suggestion from rust-lang#142089 (comment).
r? ``@bjorn3``
…iler-errors

Emit a single error when importing a path with `_`

When encountering `use _;`, `use _::*'` or similar, do not emit two errors for that single mistake. This also side-steps the issue of resolve errors suggesting adding a crate named `_` to `Cargo.toml`.

Fix rust-lang#142662.
…etrochenkov

Lazy init diagnostics-only local_names in borrowck

`local_names` is not used during successful compilation, so not initializing it saves a little bit of work.

I've also made it accessible only from the diagnostics module to make it clearer that the names are from `var_debug_info` which is technically optional and could be absent.
Add impl_trait_in_bindings tests from rust-lang#61773

This adds the [three test cases](rust-lang#61773 (comment)) from the rust-lang#61773 as was suggested by ``@lcnr.``

I have merged the first two cases into one, named as `region-lifetimes.rs`

r? ``@lcnr``

Closes rust-lang#61773
…ler-errors

Don't include current rustc version string in feature removed help

The version string is difficult to properly normalize out, and removing it isn't a huge deal (the user can query version info easily through `rustc --version` or `cargo --version`).

The normalization options were all non-ideal (see rust-lang#142940 (comment)):

- Per-test version string normalization is nasty to maintain, and we  need to maintain `n` copies of it. See rust-lang#142930 where the regex wasn't  robust against different release channels.
- Centralized compiletest normalization (with a directive opt-out) is  also not ideal, because `cfg(version(..))` tests can't have those accidentally normalized out (and you'd have to remember to opt-out).

r? `@workingjubilee` (discussed in rust-lang#142940)
…ink-to-rust-va-list-fn_test, r=jieyouxu

[RTE-497] Ignore `c-link-to-rust-va-list-fn` test on SGX platform

rust-lang#141856 enables using the runner defined in bootstrap.toml to execute run-make tests. A test was added for this feature that compiles a Rust library and C code, links them together and passes the result to the runner. Unfortunately, that's not sufficient for the SGX platform; x86 machine code cannot be directly executed. This PR fixes the issue by disabling this test for SGX.
Add a missing mailmap entry

There aren't too many commits with the new emails, but per rust-lang#142470 (comment) they belong to the same person so we may as well map them.
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic labels Jun 24, 2025
@rustbot rustbot added 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 24, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jun 24, 2025

📌 Commit f299456 has been approved by matthiaskrgr

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 Jun 24, 2025
@bors
Copy link
Collaborator

bors commented Jun 24, 2025

⌛ Testing commit f299456 with merge 3de5b08...

@bors
Copy link
Collaborator

bors commented Jun 25, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 3de5b08 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 25, 2025
@bors bors merged commit 3de5b08 into rust-lang:master Jun 25, 2025
11 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jun 25, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#142645 Also emit suggestions for usages in the `non_upper_case_glo… 3ff69b730f301488452a893ad6efffad7f5d7bf9 (link)
#142657 mbe: Clean up code with non-optional NonterminalKind 31bfa64a581981fc95281aed3d6555534a27026f (link)
#142799 rustc_session: Add a structure for keeping both explicit an… 3cf1f2fe12789fbe8e89cacd89b5a94c245d6779 (link)
#142805 Emit a single error when importing a path with _ feccc6b556b4c26804a9f126fb6d414a51e518cd (link)
#142882 Lazy init diagnostics-only local_names in borrowck 5f2ddde6d0afa4ceed10169cf3262f97b77e3e0e (link)
#142883 Add impl_trait_in_bindings tests from #61773 f46799a574a3d81bf8b88206f77a59272f0c6697 (link)
#142943 Don't include current rustc version string in feature remov… ed4f88f3ba12e2d84174ebe49475ce771abffa2a (link)
#142965 [RTE-497] Ignore c-link-to-rust-va-list-fn test on SGX pl… f11243e58b438f9333f5300b2fbcca8e7a14ae68 (link)
#142972 Add a missing mailmap entry f29c4c75df515e36904b158ccb9881b466bb50bb (link)

previous master: 28f1c80791

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

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 28f1c80 (parent) -> 3de5b08 (this PR)

Test differences

Show 34 test diffs

Stage 1

  • [ui] tests/ui/impl-trait/in-bindings/lifetime-equality.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/in-bindings/region-lifetimes.rs: [missing] -> pass (J0)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs: pass -> [missing] (J0)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs#ed2015: [missing] -> pass (J0)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs#ed2021: [missing] -> pass (J0)
  • [ui] tests/ui/lint/lint-non-uppercase-usages.rs: [missing] -> pass (J0)
  • [ui] tests/ui/underscore-imports/issue-110164.rs: pass -> [missing] (J0)
  • [ui] tests/ui/underscore-imports/issue-110164.rs#ed2015: [missing] -> pass (J0)
  • [ui] tests/ui/underscore-imports/issue-110164.rs#ed2021: [missing] -> pass (J0)
  • [ui] tests/ui/underscore-imports/multiple-uses.rs#ed2015: [missing] -> pass (J0)
  • [ui] tests/ui/underscore-imports/multiple-uses.rs#ed2021: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/impl-trait/in-bindings/lifetime-equality.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/in-bindings/region-lifetimes.rs: [missing] -> pass (J1)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs: pass -> [missing] (J1)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs#ed2015: [missing] -> pass (J1)
  • [ui] tests/ui/imports/multiple-extern-by-macro-for-underscore.rs#ed2021: [missing] -> pass (J1)
  • [ui] tests/ui/lint/lint-non-uppercase-usages.rs: [missing] -> pass (J1)
  • [ui] tests/ui/underscore-imports/issue-110164.rs: pass -> [missing] (J1)
  • [ui] tests/ui/underscore-imports/issue-110164.rs#ed2015: [missing] -> pass (J1)
  • [ui] tests/ui/underscore-imports/issue-110164.rs#ed2021: [missing] -> pass (J1)
  • [ui] tests/ui/underscore-imports/multiple-uses.rs#ed2015: [missing] -> pass (J1)
  • [ui] tests/ui/underscore-imports/multiple-uses.rs#ed2021: [missing] -> pass (J1)

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 3de5b08ef6b260277dd4c77f7472fe6904bd6002 --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-apple-1: 6741.1s -> 8318.4s (23.4%)
  2. dist-apple-various: 7818.8s -> 6282.2s (-19.7%)
  3. dist-x86_64-apple: 10328.5s -> 8419.2s (-18.5%)
  4. mingw-check-tidy: 84.2s -> 71.3s (-15.3%)
  5. x86_64-rust-for-linux: 2557.4s -> 2935.7s (14.8%)
  6. aarch64-gnu-debug: 3551.6s -> 4073.2s (14.7%)
  7. i686-gnu-2: 5480.6s -> 6228.3s (13.6%)
  8. aarch64-apple: 5084.6s -> 4408.5s (-13.3%)
  9. i686-gnu-nopt-1: 7215.1s -> 8172.6s (13.3%)
  10. mingw-check-1: 1591.0s -> 1799.0s (13.1%)
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 (3de5b08): comparison URL.

Overall result: ✅ improvements - 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
Improvements ✅
(primary)
-0.8% [-3.0%, -0.1%] 5
Improvements ✅
(secondary)
-0.4% [-0.7%, -0.1%] 10
All ❌✅ (primary) -0.8% [-3.0%, -0.1%] 5

Max RSS (memory usage)

Results (primary -0.1%, secondary -0.4%)

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

mean range count
Regressions ❌
(primary)
1.0% [1.0%, 1.0%] 1
Regressions ❌
(secondary)
2.2% [2.2%, 2.2%] 2
Improvements ✅
(primary)
-1.2% [-1.2%, -1.2%] 1
Improvements ✅
(secondary)
-1.7% [-1.9%, -1.4%] 4
All ❌✅ (primary) -0.1% [-1.2%, 1.0%] 2

Cycles

Results (primary 1.8%)

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

mean range count
Regressions ❌
(primary)
2.8% [1.7%, 3.6%] 5
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.8% [-2.8%, -2.8%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.8% [-2.8%, 3.6%] 6

Binary size

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

Bootstrap: 689.458s -> 690.192s (0.11%)
Artifact size: 372.01 MiB -> 372.07 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic merged-by-bors This PR was explicitly merged by bors. 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-compiler Relevant to the compiler 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.