Skip to content

Rollup of 9 pull requests #142438

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 20 commits into from
Jun 13, 2025
Merged

Rollup of 9 pull requests #142438

merged 20 commits into from
Jun 13, 2025

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jun 12, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

chenyukang and others added 20 commits May 27, 2025 22:19
When a method is not present because of a trait bound not being met, and that trait bound is on a tuple, we check if making the tuple have no borrowed types makes the method to be found and highlight it if it does. This is a common problem for Bevy in particular and ORMs in general.
It corresponds 1:1 to the bootstrap team, and with the review preferences we shouldn't need it.
…rors,traviscross

Lint on fn pointers comparisons in external macros

This PR extends the recently stabilized `unpredictable_function_pointer_comparisons` lint ~~to also lint on `Option<{function pointer}>` and~~ as well as linting in external macros (as to catch `assert_eq!` and others).

```rust
assert_eq!(Some::<FnPtr>(func), Some(func as unsafe extern "C" fn()));
//~^ WARN function pointer comparisons

#[derive(PartialEq, Eq)]
struct A {
    f: fn(),
    //~^ WARN function pointer comparisons
}
```

Fixes rust-lang#134527
…st-mut, r=davidtwco

Suggest mut when possbile for temporary value dropped while borrowed

Fixes rust-lang#137486
…r-errors

resolve: Tweak `private_macro_use` lint to be compatible with upcoming macro prelude changes

Unblocks rust-lang#139493.
Zulip thread requesting help - [#t-compiler/help > Help requested for effects of rust-lang#139493](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Help.20requested.20for.20effects.20of.20.23139493/with/514653911).

This PR by itself shouldn't cause any observable changes, its only observable effect is that the prelude changes from rust-lang#139493 will no longer cause regressions in tests like `tests/ui/imports/issue-119369.rs` or `tests/ui/extern/issue-80074.rs`.

This is achieved by moving the "is this thing in stdlib prelude" check from an early point (`fn process_macro_use_imports`) to a later point (`fn record_use_inner`), at which the stdlib prelude is already populated and can be inspected.
(The `is_builtin_macro` check is subsumed by the stdlib prelude check, all built-in macros go through the stdlib prelude anyway.)
Detect method not being present that is present in other tuple types

When a method is not present because of a trait bound not being met, and that trait bound is on a tuple, we check if making the tuple have no borrowed types makes the method to be found and highlight it if it does. This is a common problem for Bevy in particular and ORMs in general.

<img width="1166" alt="Screenshot 2025-06-04 at 10 38 24 AM" src="https://github.com/user-attachments/assets/d257c9ea-c2d7-42e7-8473-8b93aa54b8e0" />

Address rust-lang#141258. I believe that more combination of cases in the tuple types should be handled (like adding borrows and checking when a specific type needs to not be a borrow while the rest stay the same), but for now this handles the most common case.
…orkingjubilee

chore(doctest): Remove redundant blank lines

Remove redundant leading blank lines from doctests of [`iN::cast_unsigned`](https://doc.rust-lang.org/std/primitive.i32.html#method.cast_unsigned), [`slice::escape_ascii`](https://doc.rust-lang.org/std/primitive.slice.html#method.escape_ascii) and [`u8::escape_ascii`](https://doc.rust-lang.org/std/primitive.u8.html#method.escape_ascii).
…t, r=WaffleLapkin

Note when enum variants shadow an associated function

r? ``@WaffleLapkin``

Closes rust-lang#142263
…p, r=davidtwco

Remove bootstrap adhoc group

It corresponds 1:1 to the current bootstrap team, and with the new review preferences we shouldn't need it.

Discussed on Zulip.

r? ``@davidtwco``
…fleLapkin

Add myself (WaffleLapkin) to review rotation

`@bors` r+
…ease

Remove lower_arg_ty as all callers were passing `None`

r? ``@fmease`` or ``@BoxyUwU``

I think this is just leftover from other refactorings
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 12, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jun 12, 2025

📌 Commit 7309c10 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 12, 2025
@bors
Copy link
Collaborator

bors commented Jun 12, 2025

⌛ Testing commit 7309c10 with merge bb3a3c5...

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 13, 2025
@bors bors merged commit bb3a3c5 into rust-lang:master Jun 13, 2025
1 check passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 13, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#134536 Lint on fn pointers comparisons in external macros 1879871878eb3d7bf7749818b5b411eb008d11a5 (link)
#141069 Suggest mut when possbile for temporary value dropped while… cb80c7600c5bd4483a633bb248f336c7066c4636 (link)
#141934 resolve: Tweak private_macro_use lint to be compatible wi… 37f361030d6fd8e2ca662bb1d958893867dcdcc8 (link)
#142034 Detect method not being present that is present in other tu… 6dcf8fe0c11e74a037dca13fe491c2e736f54529 (link)
#142402 chore(doctest): Remove redundant blank lines a32275d76386f69f248c4e48bef67f9c03b9678e (link)
#142406 Note when enum variants shadow an associated function 7e50ae830a148083541e0303e97d17f5e792823f (link)
#142407 Remove bootstrap adhoc group 08aa295f476e99792e692cbc3bd03174e5d34943 (link)
#142408 Add myself (WaffleLapkin) to review rotation dda00b54b798b400fd56671883f56e5f693e6c4c (link)
#142418 Remove lower_arg_ty as all callers were passing None 2f1ef32f5de806af813f3831c0574bfe91edce73 (link)

previous master: 573a015690

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 573a015 (parent) -> bb3a3c5 (this PR)

Test differences

Show 1824 test diffs

Stage 1

  • [ui] tests/ui/enum/dead-code-associated-function.rs: [missing] -> pass (J1)
  • [ui] tests/ui/methods/missing-bound-on-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/nll/sugg-mut-for-binding-issue-137486.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/enum/dead-code-associated-function.rs: [missing] -> pass (J0)
  • [ui] tests/ui/methods/missing-bound-on-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/nll/sugg-mut-for-binding-issue-137486.rs: [missing] -> pass (J0)

Additionally, 1818 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 bb3a3c530c23147a12ec7ec479e191571ccbe92b --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-linux: 5682.4s -> 8153.0s (43.5%)
  2. x86_64-apple-2: 6576.6s -> 3906.0s (-40.6%)
  3. dist-x86_64-msvc-alt: 8838.4s -> 7141.0s (-19.2%)
  4. x86_64-apple-1: 9029.2s -> 7365.6s (-18.4%)
  5. dist-various-1: 4917.7s -> 4200.4s (-14.6%)
  6. dist-aarch64-apple: 5936.3s -> 5101.4s (-14.1%)
  7. dist-x86_64-apple: 10934.9s -> 9724.6s (-11.1%)
  8. aarch64-apple: 5162.9s -> 4612.8s (-10.7%)
  9. i686-msvc-1: 9183.2s -> 9962.2s (8.5%)
  10. i686-gnu-2: 5875.8s -> 5382.7s (-8.4%)
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 (bb3a3c5): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (secondary 0.7%)

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

Cycles

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

Binary size

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

Bootstrap: 754.801s -> 755.435s (0.08%)
Artifact size: 372.21 MiB -> 372.24 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 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-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.