Rollup of 6 pull requests - #161642
Conversation
This also cleans up some legacy runner configurations that aren't currently used. We can always restore these if needed and it's distracting when trying to identify what GitHub large runners are getting used. dist-alt.sh does less (no opt-dist) so we run it on a less powerful EC2 instance.
…sociated functions Explains that a method without `self` cannot be dispatched through a trait object's vtable, and that `where Self: Sized` explicitly opts a method out of dyn-compatibility requirements.
… trait bound extends the remove-this-semicolon suggestion for `-> impl Trait` bodies (rust-lang#81407, rust-lang#95758) to closure arguments. only fires when the type behind the semicolon satisfies the failed bound, never when several closure arguments qualify. before: error[E0277]: the trait bound (): Bar is not satisfied 6 | bar(|| { 5u8; }) | ^^^^^^^^^^^^^^^^ the trait Bar is not implemented for () after: error[E0277]: the trait bound (): Bar is not satisfied 6 | bar(|| { 5u8; }) | ^^^^^^^^^----^^^ | | | | | | | help: remove this semicolon | | this expression has type u8, which implements Bar | the trait Bar is not implemented for () fixes rust-lang#54771
match the failed predicate against the `FnOnce::Output` projection of the parameter the closure is passed as, so unrelated params inferred as `()` no longer fire. share the gates with the function case, downgrade to `MaybeIncorrect`.
the WhereClauseInExpr cause code carries the def id of any item named in an expression, not only a called function, so the closure lookup could reach fn_sig with an associated const or a type alias and ICE. bail out unless the def kind is a function. rename the shared emitter to emit_semicolon_removal_suggestion so it does not read like the suggest_semicolon_removal entry point, and follow the ty::PolyTraitPredicate to ty::PolyTraitClause rename from master.
…-closures, r=chenyukang fix: suggest removing a trailing semicolon when a closure argument fails a trait bound extends the remove-this-semicolon suggestion for `-> impl Trait` bodies (rust-lang#81407, rust-lang#95758) to closure arguments. only fires when the type behind the semicolon satisfies the failed bound, never when several closure arguments qualify. before: ``` error[E0277]: the trait bound (): Bar is not satisfied 6 | bar(|| { 5u8; }) | ^^^^^^^^^^^^^^^^ the trait Bar is not implemented for () ``` after: ``` error[E0277]: the trait bound (): Bar is not satisfied 6 | bar(|| { 5u8; }) | ^^^^^^^^^----^^^ | | | | | | | help: remove this semicolon | | this expression has type u8, which implements Bar | the trait Bar is not implemented for () ``` fixes rust-lang#54771
…tic-159492, r=khyperia Add more context to dyn-compatibility diagnostic for receiver-less associated functions Fixes rust-lang#159492 Expands the two suggestion messages for the "no `self` parameter" dyn-compatibility violation to explain *why* each fix works, per the issue. Before: help: consider turning `create` into a method by giving it a `&self` argument help: alternatively, consider constraining `create` so it does not apply to trait objects After: help: consider turning `create` into a method by giving it a `&self` argument, so that it is accessible through the trait object's vtable help: alternatively, consider constraining `create` so it is explicitly marked as not applying to trait objects Only the two strings in `DynCompatibilityViolationSolution::add_to` (rustc_middle/src/traits/mod.rs) changed — no logic, applicability, or span changes. Added a regression test using the issue's exact example (tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs). Verified against a locally-built rustc; full `tests/ui` suite passes (21643 passed, 0 failed). Note: `next-solver` compare-mode has pre-existing, unrelated failures on 3 tests in this directory, confirmed present on `main` without this diff.
add crashtests [5/N], remove unused aux files Followup to rust-lang#161150. Adds more tests, removes some auxillary files whose crash test was already removed. [Link to issue list](https://github.com/rust-lang/rust/issues?q=is%3Aissue%20state%3Aopen%20label%3AI-ICE%20label%3AS-has-mcve%20sort%3Acreated-asc%20AND%20(%20153005%20OR%20153362%20OR%20153375%20OR%20153947%20OR%20154296%20OR%20154779%20OR%20154782%20OR%20154871%20)).
Add regression test for extern crate alias shadowed by a module of the same name Closes rust-lang#55759
…r=chenyukang Add regression test for private fields lint closes rust-lang#81447
More EC2 instance usage This extends our usage of EC2 to dist-x86_64-linux-alt builders (1h23m with m8a.2xlarge, https://github.com/rust-lang/rust/actions/runs/32137297331/job/95711706485). This is moving from GHA credits to EC2 credits, so we should confirm we want that, but in dollar terms this is cheaper: at 1h55m (last auto build) on [GHA $1.32/hr](https://docs.github.com/en/billing/reference/actions-runner-pricing) = $2.53/run, vs. 1h23m on EC2 at $0.48688/hr = $0.67/run. My primary goal is to try to free up GHA credits so we can move Windows and/or macOS jobs to large runners, since I suspect us trying to host those ourselves is going to be more painful. As a drive-by change this also adds support for EC2 aarch64 machines to the bors config (but not CI config). My suspicion is that if/when we have aarch64 perf we may want faster aarch64 try builds, and in any case dist-aarch64-linux is one of our slower runners -- at 2h24m -- so it may benefit from getting a faster machine. I don't know yet how EC2 will compare but extending the bors config is cheap so I'd rather just do that now to enable easier testing. I also deleted some of the old unused runner templates, I don't see much point in keeping dead ones around. r? Kobzol
This comment has been minimized.
This comment has been minimized.
Rollup of 6 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-1 try-job: aarch64-apple-2 try-job: x86_64-mingw-1 try-job: i686-msvc-1 try-job: i686-msvc-2
This comment has been minimized.
This comment has been minimized.
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 04a3cad (parent) -> 347a1db (this PR) Test differencesShow 30 test diffsStage 1
Stage 2
Additionally, 2 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 347a1dbf428ab92f284e3afafacfa7eb46341a5d --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
parent commit: 04a3cad16c In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
@rust-timer triage beb61f6 682a6b0 Testing the triage command |
#159434 beb61f6 fix: suggest removing a trailing semicolon when a closure argument fails a trait boundInstruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -2.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 0.1%, secondary -4.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
#160428 682a6b0 Add more context to dyn-compatibility diagnostic for receiver-less associated functionsInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesResults (primary 0.2%, secondary -4.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. |
|
Finished benchmarking commit (347a1db): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesResults (secondary -4.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 480.128s -> 468.927s (-2.33%) |
Successful merges:
r? @ghost
Create a similar rollup