Skip to content

Rollup of 8 pull requests #141113

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 19 commits into from
May 17, 2025
Merged

Rollup of 8 pull requests #141113

merged 19 commits into from
May 17, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errors and others added 19 commits April 29, 2025 02:43
The output of Array::map is intended to be an array of the same size, and does not modify the
original in place nor is it intended for side-effects. Thus, under normal circumstances it should be consumed.

See [discussion](https://internals.rust-lang.org/t/array-map-annotate-with-must-use/22813/26).

Attaching to tracking issue rust-lang#75243
On Fuchsia, we have an internal Gerrit mirrors of the rust repositories
to avoid excess load on the public github servers. Since rust uses
submodules, we need to then use git's `url.<base>.insteadOf` to point
our checkouts at our mirrors.

We'd prefer to be able to point all repositories under
`https://github.com/rust-lang` to
`https://rust.googlesource.com/rust-lang`, but unfortunately it seems
that when Rust mirrored Enzyme, the repository name was lower cased to
`https://github.com/rust-lang/enzyme`, but kept the name capitalized in
the .gitmodules file. This didn't cause a problem for Github, which
seems to handle repository names in a case insensitive way, Gerrit is
case sensitive, so we can't use a glob rule. Instead we have to setup
`insteadOf` rules for each repository.

This renames the URL to match the case of the repository name, which
should avoid the issue.
One could be tempted to replace the "then" `hir::Expr` with kind
`hir::ExprKind::Block` by a `hir::Block`. Explain why this would not be
a good idea.
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
…ypeck/ to it

Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
…lcnr

Make well-formedness predicates no longer coinductive

This PR makes well-formedness no longer coinductive. It was made coinductive in rust-lang#98542, but AFAICT this was only to fix UI tests since we stopped lowering `where Ty:` to an empty-region outlives predicate but to a WF predicate instead.

Arguably it should lower to something completely different, something like a "type mentioned no-op predicate", but well-formedness serves this purpose fine today, and since no code (according to crater) relies on this coinductive behavior, we'd like to avoid having to emulate it in the new solver.

Fixes rust-lang#123456 (I didn't want to add a test since it seems low-value to have a ICE test for a fuzzer minimization that is basically garbage code.)

Fixes #109764 (not sure if this behavior is emulatable w/o coinductive WF?)

Fixes rust-lang/trait-system-refactor-initiative#169

r? lcnr
…-Simulacrum

Add `#[must_use]` to Array::map

The output of Array::map is intended to be an array of the same size, and does not modify the original in place nor is it intended for side-effects. Thus, under normal circumstances it should be consumed.

See [discussion](https://internals.rust-lang.org/t/array-map-annotate-with-must-use/22813/26).

Attaching to tracking issue rust-lang#75243
…ncy-fix, r=oli-obk

Async drop fix for dropee from another crate (rust-lang#140858)

Fixes rust-lang#140858.

For `AsyncDestructor` impl def id was wrongly kept as a LocalDefId, which causes crash when dropee is declared in another crate.

Also, potential problem found:
when user crate drops type with async drop in dependency crate, and user crate doesn't enable `feature(async_drop)`, then sync drop version will be used.

Is it a problem? Do we need some notification about such situations?
ci: split the dist-ohos job

try-job: `dist-ohos-*`
…hercote

Remove some unnecessary erases

Some nits I pulled out of rust-lang#140814.
Lowercase git url for rust-lang/enzyme.git

On Fuchsia, we have an internal Gerrit mirrors of the rust repositories to avoid excess load on the public github servers. Since rust uses submodules, we need to then use git's `url.<base>.insteadOf` to point our checkouts at our mirrors.

We'd prefer to be able to point all repositories under `https://github.com/rust-lang` to
`https://rust.googlesource.com/rust-lang`, but unfortunately it seems that when Rust mirrored Enzyme, the repository name was lower cased to `https://github.com/rust-lang/enzyme`, but kept the name capitalized in the .gitmodules file. This didn't cause a problem for Github, which seems to handle repository names in a case insensitive way, Gerrit is case sensitive, so we can't use a glob rule. Instead we have to setup `insteadOf` rules for each repository.

This renames the URL to match the case of the repository name, which should avoid the issue.
…=compiler-errors

HIR: explain in comment why `ExprKind::If` "then" is an `Expr`

One could be tempted to replace the "then" `hir::Expr` with kind `hir::ExprKind::Block` by a `hir::Block`. Explain why this would not be a good idea.

I've been there.

r? ``@compiler-errors``
Do not emit help when shorthand from macro when suggest `?` or `expect`

Fixes rust-lang#140659

I didn't fully minimize the original bug, but I found a similar test case, and they have perhaps the same root cause. For the bug mentioned in rust-lang#140659 , I also tested it locally and passed it.

Jieyou has worked on this part before, maybe r? `@jieyouxu`
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc 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-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. rollup A PR which is a rollup labels May 17, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented May 17, 2025

📌 Commit 14f3ef9 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 May 17, 2025
@bors
Copy link
Collaborator

bors commented May 17, 2025

⌛ Testing commit 14f3ef9 with merge a43b8d1d2b10bf4d9e9d935aed497f7ebbeeb6e4...

@bors
Copy link
Collaborator

bors commented May 17, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 17, 2025
@bors bors merged commit a43b8d1 into rust-lang:master May 17, 2025
7 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 17, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140208 Make well-formedness predicates no longer coinductive 28e1a5cc9c1338a9c9eccdd6ae12be8f0dcd2bd5 (link)
#140957 Add #[must_use] to Array::map abba163b9207276cb3c21007d114d64cf47278a2 (link)
#141031 Async drop fix for dropee from another crate (#140858) 36e599b6e03bd7f25a7e058c1861d4d6693eef74 (link)
#141036 ci: split the dist-ohos job c96968d855ce53bb27fb3774cc77494178ac53ea (link)
#141051 Remove some unnecessary erases 38f900955c983607e46b9e4b8b4c55e090a0cdae (link)
#141056 Lowercase git url for rust-lang/enzyme.git f695d3b29c33065a1832754e196037d98f569fe4 (link)
#141059 HIR: explain in comment why ExprKind::If "then" is an `Ex… 7b563361488728003acf86655ee86d0aeb17be7c (link)
#141070 Do not emit help when shorthand from macro when suggest ? d27747581f67dc8bfcccf0491157f4475ea1821a (link)

previous master: b0e925903a

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

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 b0e9259 (parent) -> a43b8d1 (this PR)

Test differences

Show 72 test diffs

Stage 1

  • [crashes] tests/crashes/123456.rs: pass -> [missing] (J0)
  • [ui] tests/ui/async-await/async-drop/dependency-dropped.rs: [missing] -> pass (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs: [missing] -> pass (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs#old: pass -> [missing] (J0)
  • [ui] tests/ui/typeck/suggest-adding-missing-zero-to-floating-point-number.rs: pass -> [missing] (J0)
  • [ui] tests/ui/typeck/suggest-arg-comma-delete-ice.rs: pass -> [missing] (J0)
  • [ui] tests/ui/typeck/suggest-box-on-divergent-if-else-arms.rs: pass -> [missing] (J0)
  • [ui] tests/ui/typeck/suggest-similar-impls-for-root-obligation.rs: pass -> [missing] (J0)
  • [ui] tests/ui/typeck/suggestions/macro-shorthand-issue-140659.rs: [missing] -> pass (J0)
  • [ui] tests/ui/typeck/suggestions/suggest-adding-missing-zero-to-floating-point-number.rs: [missing] -> pass (J0)
  • [ui] tests/ui/typeck/suggestions/suggest-arg-comma-delete-ice.rs: [missing] -> pass (J0)
  • [ui] tests/ui/typeck/suggestions/suggest-box-on-divergent-if-else-arms.rs: [missing] -> pass (J0)
  • [ui] tests/ui/typeck/suggestions/suggest-similar-impls-for-root-obligation.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/async-await/async-drop/dependency-dropped.rs: [missing] -> pass (J1)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs: [missing] -> pass (J1)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/higher-ranked/trait-bounds/issue-95230.rs#old: pass -> [missing] (J1)
  • [ui] tests/ui/typeck/suggest-adding-missing-zero-to-floating-point-number.rs: pass -> [missing] (J1)
  • [ui] tests/ui/typeck/suggest-arg-comma-delete-ice.rs: pass -> [missing] (J1)
  • [ui] tests/ui/typeck/suggest-box-on-divergent-if-else-arms.rs: pass -> [missing] (J1)
  • [ui] tests/ui/typeck/suggest-similar-impls-for-root-obligation.rs: pass -> [missing] (J1)
  • [ui] tests/ui/typeck/suggestions/macro-shorthand-issue-140659.rs: [missing] -> pass (J1)
  • [ui] tests/ui/typeck/suggestions/suggest-adding-missing-zero-to-floating-point-number.rs: [missing] -> pass (J1)
  • [ui] tests/ui/typeck/suggestions/suggest-arg-comma-delete-ice.rs: [missing] -> pass (J1)
  • [ui] tests/ui/typeck/suggestions/suggest-box-on-divergent-if-else-arms.rs: [missing] -> pass (J1)
  • [ui] tests/ui/typeck/suggestions/suggest-similar-impls-for-root-obligation.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/123456.rs: pass -> [missing] (J2)

Additionally, 44 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 a43b8d1d2b10bf4d9e9d935aed497f7ebbeeb6e4 --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-2: 6222.2s -> 3966.9s (-36.2%)
  2. x86_64-apple-1: 8840.5s -> 6195.9s (-29.9%)
  3. dist-x86_64-illumos: 6162.8s -> 5613.4s (-8.9%)
  4. dist-arm-linux: 4797.6s -> 5222.6s (8.9%)
  5. x86_64-rust-for-linux: 2824.7s -> 2577.1s (-8.8%)
  6. dist-apple-various: 6165.7s -> 6601.2s (7.1%)
  7. dist-aarch64-apple: 5116.0s -> 5476.2s (7.0%)
  8. dist-powerpc-linux: 5228.6s -> 5525.6s (5.7%)
  9. dist-various-1: 4620.9s -> 4371.4s (-5.4%)
  10. dist-powerpc64le-linux: 10083.3s -> 9560.4s (-5.2%)
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 (a43b8d1): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

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

Max RSS (memory usage)

Results (primary 1.2%, secondary 2.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
2.6% [1.2%, 4.2%] 4
Regressions ❌
(secondary)
2.6% [1.3%, 3.8%] 16
Improvements ✅
(primary)
-1.7% [-2.1%, -1.2%] 2
Improvements ✅
(secondary)
-0.5% [-0.5%, -0.4%] 2
All ❌✅ (primary) 1.2% [-2.1%, 4.2%] 6

Cycles

Results (secondary 1.8%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.7% [0.5%, 4.8%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.7% [-2.7%, -2.7%] 1
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 775.66s -> 774.898s (-0.10%)
Artifact size: 365.38 MiB -> 365.43 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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 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-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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.