Skip to content

Rollup of 13 pull requests #144450

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

Closed
wants to merge 39 commits into from

Conversation

GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Jul 25, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

tshepang and others added 30 commits July 21, 2025 12:19
…tocol

add rdg push git config entry for git protocol pushers (again)
Now all our Josh subtrees should be using josh-sync.
Given

```rust
fn main() {
    let maybe_vec = Some(vec![1,2,3]);
    assert_eq!(maybe_vec.len(), 3);
}
```

suggest unwraping `maybe_vec` to call `.len()` on the `Vec<_>`.

```
error[E0624]: method `len` is private
  --> $DIR/enum-method-probe.rs:61:9
   |
LL |     res.len();
   |         ^^^ private method
  --> $SRC_DIR/core/src/option.rs:LL:COL
   |
   = note: private method defined here
   |
note: the method `len` exists on the type `Vec<{integer}>`
  --> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
help: consider using `Option::expect` to unwrap the `Vec<{integer}>` value, panicking if the value is an `Option::None`
   |
LL |     res.expect("REASON").len();
   |        +++++++++++++++++
```
This updates the rust-version file to efd420c.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: efd420c
Filtered ref: d11dbbb02905535a89393e80c24274bee81fa928

This merge was created using https://github.com/rust-lang/josh-sync.
A recent change altered the definition of the link! macro when the windows_raw_dylib feature is enabled, changing its syntax from pub macro {..} to pub macro($tt:tt) {..} in rust-lang#143592

This change introduced a build failure with the error: "macros that expand to items must be delimited with braces or followed by a semicolon".

We add a semicolon to the line causing the issue as we also modify the non windows_raw_dylib link to make use of the link_dylib macro
Since this test is limited to aarch64 and linux hosts, the --target
flag is entirely unnecessary and only breaks this on musl hosts. Let the
compiler use the default target instead.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
I missed this during review. We cannot declare a `tests` module within
`shared_helpers.rs` itself, as shim binaries that tries to include the
`shared_helpers` module through `#[path = ".."]` attributes would fail
to find it, breaking `./x check bootstrap`.

This reverts commit `40c2ca96411caaeab1563ff9041879f742d1d71b`.
This check is relatively cheap, and is a quick way to root out breaking
check flow of `bootstrap` itself.
…=jieyouxu

Add `ignore-backends` annotations in failing GCC backend ui tests

Follow-up of rust-lang#144125.

In the GCC backend, we don't support all ui tests yet and we have a list of tests we currently ignore available [here](https://github.com/rust-lang/rustc_codegen_gcc/blob/master/tests/failing-ui-tests.txt).

This PR adds the `ignore-backends` annotations to the corresponding ui tests.

The second commit is a fix to compiletest, complaining about `ignore-backends`.

r? `@jieyouxu`
…r-errors

add codegen test for variadics

This is a part of rust-lang#144066 that can land without FCP.
Suggest unwrapping when private method name is available in inner type

Given

```rust
fn main() {
    let maybe_vec = Some(vec![1,2,3]);
    assert_eq!(maybe_vec.len(), 3);
}
```

suggest unwraping `maybe_vec` to call `.len()` on the `Vec<_>`.

```
error[E0624]: method `len` is private
  --> $DIR/enum-method-probe.rs:61:9
   |
LL |     res.len();
   |         ^^^ private method
  --> $SRC_DIR/core/src/option.rs:LL:COL
   |
   = note: private method defined here
   |
note: the method `len` exists on the type `Vec<{integer}>`
  --> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
help: consider using `Option::expect` to unwrap the `Vec<{integer}>` value, panicking if the value is an `Option::None`
   |
LL |     res.expect("REASON").len();
   |        +++++++++++++++++
```

When a method isn't available, we emit E0599, but when it is private we emit E0624. We now just invoke the same suggestion logic from the later that we already did in the former.

Fix rust-lang#143795.
…-multiple-abis, r=RalfJung

test using multiple c-variadic ABIs in the same program

tracking issue: rust-lang#100189

Check that multiple c-variadic calling conventions can be used in the same program.

Clang and gcc reject defining functions with a non-default calling convention and a variable
argument list, so C programs that use multiple c-variadic calling conventions are unlikely
to come up. Here we validate that our codegen backends do in fact generate correct code.

(CI will not run this test because it runs on aarch64, I would like to at least test that this runs on windows)

try-job: `x86_64-gnu`
try-job: `x86_64-msvc-*`
@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 Jul 25, 2025
@bors
Copy link
Collaborator

bors commented Jul 25, 2025

⌛ Testing commit a3ab44f with merge 188e30b...

bors added a commit that referenced this pull request Jul 25, 2025
Rollup of 13 pull requests

Successful merges:

 - #144356 (Add `ignore-backends` annotations in failing GCC backend ui tests)
 - #144359 (add codegen test for variadics)
 - #144376 (Suggest unwrapping when private method name is available in inner type)
 - #144379 (test using multiple c-variadic ABIs in the same program)
 - #144383 (disable cfg.has_reliable_f128 on amdgcn)
 - #144409 (Stop compilation early if macro expansion failed)
 - #144412 (Small cleanup: Use LocalKey<Cell> methods more)
 - #144421 (Call `is_parsed_attribute` rather than keeping track of a list of parsed attributes manually)
 - #144422 (library/windows_targets: Fix macro expansion error in 'link' macro)
 - #144424 (Allow setting `release-blog-post` label with rustbot)
 - #144430 (tests: aarch64-outline-atomics: Remove hardcoded target)
 - #144435 (rustc-dev-guide subtree update)
 - #144445 (Fix `./x check bootstrap` (again))

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Jul 25, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 25, 2025
@GuillaumeGomez
Copy link
Member Author

@bors retry

@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 Jul 25, 2025
@bors
Copy link
Collaborator

bors commented Jul 25, 2025

⌛ Testing commit a3ab44f with merge 8a4c727...

bors added a commit that referenced this pull request Jul 25, 2025
Rollup of 13 pull requests

Successful merges:

 - #144356 (Add `ignore-backends` annotations in failing GCC backend ui tests)
 - #144359 (add codegen test for variadics)
 - #144376 (Suggest unwrapping when private method name is available in inner type)
 - #144379 (test using multiple c-variadic ABIs in the same program)
 - #144383 (disable cfg.has_reliable_f128 on amdgcn)
 - #144409 (Stop compilation early if macro expansion failed)
 - #144412 (Small cleanup: Use LocalKey<Cell> methods more)
 - #144421 (Call `is_parsed_attribute` rather than keeping track of a list of parsed attributes manually)
 - #144422 (library/windows_targets: Fix macro expansion error in 'link' macro)
 - #144424 (Allow setting `release-blog-post` label with rustbot)
 - #144430 (tests: aarch64-outline-atomics: Remove hardcoded target)
 - #144435 (rustc-dev-guide subtree update)
 - #144445 (Fix `./x check bootstrap` (again))

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
/dev/sda1        74G  4.1G   66G   6% /mnt
tmpfs           1.6G   12K  1.6G   1% /run/user/1001
================================================================================

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2377 (apt)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
##[error]Process completed with exit code 100.
Post job cleanup.

@bors
Copy link
Collaborator

bors commented Jul 25, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 25, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-19-3 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
46    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
-    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
+    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
48    = note: `#[warn(bare_trait_objects)]` on by default
49    = note: this warning originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)
50 help: you might have intended to implement this trait for a given type


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/const-traits/macro-const-trait-bound-theoretical-regression.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018"
stdout: none
--- stderr -------------------------------
error: macro expansion ignores keyword `dyn` and any tokens following
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:14:31
   |
LL |     (dyn $c:ident Trait) => { dyn $c Trait {} }; //~ ERROR macro expansion
   |                               ^^^
...
LL | demo! { dyn const Trait }
   | ------------------------- caused by the macro expansion here
   |
   = note: the usage of `demo!` is likely invalid in item context

error: inherent impls cannot be `const`
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:10:40
   |
LL |     (impl $c:ident Trait) => { impl $c Trait {} };
   |                                        ^^^^^ inherent impl for this type
...
LL | demo! { impl const Trait }
   | --------------------------
   | |            |
   | |            `const` because of this
   | in this macro invocation
   |
   = note: only trait implementations may be annotated with `const`
   = note: this error originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0658]: const trait impls are experimental
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:17:14
   |
LL | demo! { impl const Trait }
   |              ^^^^^
   |
   = note: see issue #143874 <https://github.com/rust-lang/rust/issues/143874> for more information
   = help: add `#![feature(const_trait_impl)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

warning: trait objects without an explicit `dyn` are deprecated
##[warning]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:10:40
   |
LL |     (impl $c:ident Trait) => { impl $c Trait {} };
   |                                        ^^^^^
...
LL | demo! { impl const Trait }
   | -------------------------- in this macro invocation
   |
   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
   = note: `#[warn(bare_trait_objects)]` on by default
   = note: this warning originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you might have intended to implement this trait for a given type
   |
LL |     (impl $c:ident Trait) => { impl $c Trait for /* Type */ {} };
   |                                              ++++++++++++++

error: aborting due to 3 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0658`.

@GuillaumeGomez
Copy link
Member Author

@bors retry

@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 Jul 25, 2025
@bors
Copy link
Collaborator

bors commented Jul 25, 2025

⌛ Testing commit a3ab44f with merge 6e522cf...

bors added a commit that referenced this pull request Jul 25, 2025
Rollup of 13 pull requests

Successful merges:

 - #144356 (Add `ignore-backends` annotations in failing GCC backend ui tests)
 - #144359 (add codegen test for variadics)
 - #144376 (Suggest unwrapping when private method name is available in inner type)
 - #144379 (test using multiple c-variadic ABIs in the same program)
 - #144383 (disable cfg.has_reliable_f128 on amdgcn)
 - #144409 (Stop compilation early if macro expansion failed)
 - #144412 (Small cleanup: Use LocalKey<Cell> methods more)
 - #144421 (Call `is_parsed_attribute` rather than keeping track of a list of parsed attributes manually)
 - #144422 (library/windows_targets: Fix macro expansion error in 'link' macro)
 - #144424 (Allow setting `release-blog-post` label with rustbot)
 - #144430 (tests: aarch64-outline-atomics: Remove hardcoded target)
 - #144435 (rustc-dev-guide subtree update)
 - #144445 (Fix `./x check bootstrap` (again))

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Jul 25, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 25, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-19-3 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
46    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
-    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
+    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
48    = note: `#[warn(bare_trait_objects)]` on by default
49    = note: this warning originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)
50 help: you might have intended to implement this trait for a given type


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/const-traits/macro-const-trait-bound-theoretical-regression.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018"
stdout: none
--- stderr -------------------------------
error: macro expansion ignores keyword `dyn` and any tokens following
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:14:31
   |
LL |     (dyn $c:ident Trait) => { dyn $c Trait {} }; //~ ERROR macro expansion
   |                               ^^^
...
LL | demo! { dyn const Trait }
   | ------------------------- caused by the macro expansion here
   |
   = note: the usage of `demo!` is likely invalid in item context

error: inherent impls cannot be `const`
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:10:40
   |
LL |     (impl $c:ident Trait) => { impl $c Trait {} };
   |                                        ^^^^^ inherent impl for this type
...
LL | demo! { impl const Trait }
   | --------------------------
   | |            |
   | |            `const` because of this
   | in this macro invocation
   |
   = note: only trait implementations may be annotated with `const`
   = note: this error originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0658]: const trait impls are experimental
##[error]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:17:14
   |
LL | demo! { impl const Trait }
   |              ^^^^^
   |
   = note: see issue #143874 <https://github.com/rust-lang/rust/issues/143874> for more information
   = help: add `#![feature(const_trait_impl)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

warning: trait objects without an explicit `dyn` are deprecated
##[warning]  --> /checkout/tests/ui/traits/const-traits/macro-const-trait-bound-theoretical-regression.rs:10:40
   |
LL |     (impl $c:ident Trait) => { impl $c Trait {} };
   |                                        ^^^^^
...
LL | demo! { impl const Trait }
   | -------------------------- in this macro invocation
   |
   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
   = note: `#[warn(bare_trait_objects)]` on by default
   = note: this warning originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you might have intended to implement this trait for a given type
   |
LL |     (impl $c:ident Trait) => { impl $c Trait for /* Type */ {} };
   |                                              ++++++++++++++

error: aborting due to 3 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0658`.

@GuillaumeGomez
Copy link
Member Author

Failed because of #144409.

@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CI Area: Our Github Actions CI 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-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup 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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.