Skip to content
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

Rollup of 10 pull requests #134099

Closed
wants to merge 33 commits into from
Closed

Conversation

fmease
Copy link
Member

@fmease fmease commented Dec 9, 2024

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

sassman and others added 30 commits November 15, 2024 15:25
- Add test for issue 47446
- Implement the new lint lint_builtin_mixed_export_name_and_no_mangle
- Add suggestion how to fix it
When upgrading [Zed](zed-industries/zed#19349) to Rust 1.82 I've encountered a test failure in our test suite. Specifically, one of our extension tests started hanging. I've tracked it down to a call to std::fs::remove_dir_all not returning when an extension is compiled with Rust 1.82
Our extension system uses WASM components, thus I've looked at the diff between 1.81 and 1.82 with respect to WASI and found 736f773

As it turned out, calling remove_dir_all from extension returned io::ErrorKind::NotFound in 1.81;
the underlying issue is that the ReadDir iterator never actually terminates iteration, however since it loops around, with 1.81 we'd come across an entry second time and fail to remove it, since it would've been removed previously.
With 1.82 and 736f773 it is no longer the case, thus we're seeing the hang.

This commit makes ReadDir::next adhere to readdir contract, namely it will no longer call readdir once the returned # of bytes is smaller than the size of a passed-in buffer.
Previously we'd only terminate the loop if readdir returned 0.
The target has support for pthreads and allows
registration of TLS destructors.
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This query (`coverage_ids_info`) already determines which counter/expression
IDs are unused, so it only takes a little extra effort to also determine which
counters/expressions must have a value of zero.
The information that was being collected by this builder type is now collected
by the `coverage_ids_info` query instead.
commit suggestion of not always pretty printing

Co-authored-by: Urgau <3616612+Urgau@users.noreply.github.com>
…together-with-export-name, r=Urgau

Lint on combining `#[no_mangle]` and `#[export_name]`

This is my very first contribution to the compiler, even though I read the [chapter about lints](https://rustc-dev-guide.rust-lang.org/diagnostics.html) I'm not very certain that this ~~new lint is done right as a builtin lint~~ PR is right. I appreciate any guidance on how to improve the code.

- Add test for issue rust-lang#47446
- ~~Implement the new lint `mixed_export_name_and_no_mangle` as a builtin lint (not sure if that is the right way to go)~~ Extend `unused_attributes` lint
- Add suggestion how to fix it

<details>

<summary>Old proposed new lint</summary>

> The `mixed_export_name_and_no_mangle` lint detects usage of both `#[export_name]` and `#[no_mangle]` on the same item which results on `#[no_mangle]` being ignored.
>
> *warn-by-default*
>
> ### Example
>
> ```rust
> #[no_mangle] // ignored
> #[export_name = "foo"] // takes precedences
> pub fn bar() {}
> ```
>
> ### Explanation
>
> The compiler will not respect the `#[no_mangle]` attribute when generating the symbol name for the function, as the `#[export_name]` attribute takes precedence. This can lead to confusion and is unnecessary.

</details>
Add unpolished, experimental support for AFIDT (async fn in dyn trait)

This allows us to begin messing around `async fn` in `dyn Trait`. Calling an async fn from a trait object always returns a `dyn* Future<Output = ...>`.

To make it work, Implementations are currently required to return something that can be coerced to a `dyn* Future` (see the example in `tests/ui/async-await/dyn/works.rs`). If it's not the right size, then it'll raise an error at the coercion site (see the example in `tests/ui/async-await/dyn/wrong-size.rs`). Currently the only practical way of doing this is wrapping the body in `Box::pin(async move { .. })`.

This PR does not implement a helper type like a "`Boxing`"[^boxing] adapter, and I'll probably follow-up with another PR to improve the error message for the `PointerLike` trait (something that explains in just normal prose what is happening here, rather than a trait error).
[^boxing]: https://rust-lang.github.io/async-fundamentals-initiative/explainer/user_guide_future.html#the-boxing-adapter

This PR also does not implement new trait solver support for AFIDT; I'll need to think how best to integrate it into candidate assembly, and that's a bit of a matter of taste, but I don't think it will be difficult to do.

This could also be generalized:
* To work on functions that are `-> impl Future` (soon).
* To work on functions that are `-> impl Iterator` and other "dyn rpitit safe" traits. We still need to nail down exactly what is needed for this to be okay (not soon).

Tracking:
* rust-lang#133119
…-remove-dir-all, r=Noratrieb

wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next

When upgrading [Zed](zed-industries/zed#19349) to Rust 1.82 I've encountered a test failure in our test suite. Specifically, one of our extension tests started hanging. I've tracked it down to a call to std::fs::remove_dir_all not returning when an extension is compiled with Rust 1.82 Our extension system uses WASM components, thus I've looked at the diff between 1.81 and 1.82 with respect to WASI and found 736f773

As it turned out, calling remove_dir_all from extension returned io::ErrorKind::NotFound in 1.81; the underlying issue is that the ReadDir iterator never actually terminates iteration, however since it loops around, with 1.81 we'd come across an entry second time and fail to remove it, since it would've been removed previously. With 1.82 and 736f773 it is no longer the case, thus we're seeing the hang. The tests do pass when everything but the extensions is compiled with 1.82.

This commit makes ReadDir::next adhere to readdir contract, namely it will no longer call readdir once the returned # of bytes is smaller than the size of a passed-in buffer. Previously we'd only terminate the loop if readdir returned 0.
Add licenses + Run `cargo update`

Replaces rust-lang#131311

try-job: dist-x86_64-linux

License changes:
- `unicode_ident` 1.0.14 introduces `(MIT OR Apache-2.0) AND Unicode-3.0`, but `unicode_ident` 1.0.12 (`(MIT OR Apache-2.0) AND Unicode-DFS-2016`) is still in tree
- `instant` and its license exception are no longer used
```
compiler & tools dependencies:
    Updating allocator-api2 v0.2.18 -> v0.2.20
    Updating anyhow v1.0.92 -> v1.0.93
    Removing bitflags v1.3.2
    Updating blake3 v1.5.4 -> v1.5.5
    Updating bstr v1.10.0 -> v1.11.0
    Updating bytes v1.8.0 -> v1.9.0
    Updating cargo-platform v0.1.8 -> v0.1.9
    Updating cc v1.2.0 -> v1.2.2
    Updating clap v4.5.20 -> v4.5.21
    Updating clap_builder v4.5.20 -> v4.5.21
    Updating clap_complete v4.5.36 -> v4.5.38
    Updating clap_lex v0.7.2 -> v0.7.3
    Updating color-print v0.3.6 -> v0.3.7
    Updating color-print-proc-macro v0.3.6 -> v0.3.7
    Updating cpufeatures v0.2.14 -> v0.2.16
    Updating curl-sys v0.4.77+curl-8.10.1 -> v0.4.78+curl-8.11.0
    Updating errno v0.3.9 -> v0.3.10
    Updating fastrand v2.1.1 -> v2.2.0
    Updating flate2 v1.0.34 -> v1.0.35
    Updating handlebars v5.1.2 -> v6.2.0
      Adding icu_collections v1.5.0
      Adding icu_normalizer v1.5.0
      Adding icu_normalizer_data v1.5.0
      Adding icu_properties v1.5.1
      Adding icu_properties_data v1.5.0
    Updating idna v0.5.0 -> v1.0.3
      Adding idna_adapter v1.2.0
    Updating indexmap v2.6.0 -> v2.7.0
    Updating indicatif v0.17.8 -> v0.17.9
    Removing instant v0.1.13
    Updating itoa v1.0.11 -> v1.0.14
    Updating js-sys v0.3.72 -> v0.3.74
    Updating libc v0.2.164 -> v0.2.167
    Updating libloading v0.8.5 -> v0.8.6
    Updating litemap v0.7.3 -> v0.7.4
    Updating mdbook v0.4.40 -> v0.4.43
      Adding num-modular v0.6.1
      Adding num-order v1.2.0
    Updating pathdiff v0.2.2 -> v0.2.3
    Updating portable-atomic v1.9.0 -> v1.10.0
    Updating proc-macro2 v1.0.89 -> v1.0.92
    Updating regex-automata v0.4.8 -> v0.4.9
    Updating rustc-hash v2.0.0 -> v2.1.0
    Updating rustc_apfloat v0.2.1+llvm-462a31f5a5ab -> v0.2.2+llvm-462a31f5a5ab
    Updating rustix v0.38.38 -> v0.38.41
    Updating schannel v0.1.26 -> v0.1.27
    Updating serde v1.0.214 -> v1.0.215
    Updating serde_derive v1.0.214 -> v1.0.215
    Updating serde_json v1.0.132 -> v1.0.133
    Updating socket2 v0.5.7 -> v0.5.8
    Updating spdx v0.10.6 -> v0.10.7
    Updating syn v2.0.87 -> v2.0.90
    Updating tempfile v3.13.0 -> v3.14.0
    Updating terminal_size v0.4.0 -> v0.4.1
    Updating thiserror v1.0.66 -> v1.0.69 (available: v2.0.3)
    Updating thiserror-impl v1.0.66 -> v1.0.69
    Updating tokio v1.41.0 -> v1.41.1
    Updating tracing-attributes v0.1.27 -> v0.1.28
    Updating tracing-error v0.2.0 -> v0.2.1
    Removing unicode-bidi v0.3.17
    Updating unicode-ident v1.0.13 -> v1.0.14
    Updating url v2.5.2 -> v2.5.4
      Adding utf16_iter v1.0.5
      Adding utf8_iter v1.0.4
     Updating wasm-bindgen v0.2.95 -> v0.2.97
    Updating wasm-bindgen-backend v0.2.95 -> v0.2.97
    Updating wasm-bindgen-macro v0.2.95 -> v0.2.97
    Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97
    Updating wasm-bindgen-shared v0.2.95 -> v0.2.97
    Updating wasm-encoder v0.220.0 -> v0.221.0
      Adding wasmparser v0.221.0
    Updating wast v219.0.1 -> v221.0.0
    Updating wat v1.219.1 -> v1.221.0
      Adding web-time v1.1.0
      Adding write16 v1.0.0
    Updating yoke v0.7.4 -> v0.7.5
    Updating yoke-derive v0.7.4 -> v0.7.5
    Updating zerofrom v0.1.4 -> v0.1.5
    Updating zerofrom-derive v0.1.4 -> v0.1.5

library dependencies:
    Updating allocator-api2 v0.2.18 -> v0.2.20
    Updating cc v1.2.0 -> v1.2.2
    Updating libc v0.2.162 -> v0.2.164
    Updating unwinding v0.2.3 -> v0.2.4

rustbook dependencies:
    Updating anstream v0.6.17 -> v0.6.18
    Updating anyhow v1.0.92 -> v1.0.93
    Updating bstr v1.10.0 -> v1.11.0
    Updating cc v1.2.0 -> v1.2.2
    Updating clap v4.5.20 -> v4.5.21
    Updating clap_builder v4.5.20 -> v4.5.21
    Updating clap_complete v4.5.36 -> v4.5.38
    Updating clap_lex v0.7.2 -> v0.7.3
    Updating cpufeatures v0.2.14 -> v0.2.16
      Adding displaydoc v0.2.5
    Updating errno v0.3.9 -> v0.3.10
    Updating fastrand v2.1.1 -> v2.2.0
    Updating flate2 v1.0.34 -> v1.0.35
    Updating hashbrown v0.15.0 -> v0.15.2
      Adding icu_collections v1.5.0
      Adding icu_locid v1.5.0
      Adding icu_locid_transform v1.5.0
      Adding icu_locid_transform_data v1.5.0
      Adding icu_normalizer v1.5.0
      Adding icu_normalizer_data v1.5.0
      Adding icu_properties v1.5.1
      Adding icu_properties_data v1.5.0
      Adding icu_provider v1.5.0
      Adding icu_provider_macros v1.5.0
    Updating idna v0.5.0 -> v1.0.3
      Adding idna_adapter v1.2.0
    Updating indexmap v2.6.0 -> v2.7.0
    Updating itoa v1.0.11 -> v1.0.14
    Updating js-sys v0.3.72 -> v0.3.74
    Updating libc v0.2.161 -> v0.2.167
      Adding litemap v0.7.4
    Updating mdbook v0.4.42 -> v0.4.43
    Updating pathdiff v0.2.2 -> v0.2.3
    Updating proc-macro2 v1.0.89 -> v1.0.92
    Updating regex-automata v0.4.8 -> v0.4.9
    Updating rustix v0.38.38 -> v0.38.41
    Updating serde v1.0.214 -> v1.0.215
    Updating serde_derive v1.0.214 -> v1.0.215
    Updating serde_json v1.0.132 -> v1.0.133
      Adding stable_deref_trait v1.2.0
    Updating syn v2.0.87 -> v2.0.90
      Adding synstructure v0.13.1
    Updating tempfile v3.13.0 -> v3.14.0
    Updating terminal_size v0.4.0 -> v0.4.1
    Updating thiserror v1.0.66 -> v1.0.69
    Updating thiserror-impl v1.0.66 -> v1.0.69
      Adding tinystr v0.7.6
    Removing tinyvec v1.8.0
    Removing tinyvec_macros v0.1.1
    Removing unicode-bidi v0.3.17
    Updating unicode-ident v1.0.13 -> v1.0.14
    Removing unicode-normalization v0.1.24
    Updating url v2.5.2 -> v2.5.4
      Adding utf16_iter v1.0.5
      Adding utf8_iter v1.0.4
    Updating wasm-bindgen v0.2.95 -> v0.2.97
    Updating wasm-bindgen-backend v0.2.95 -> v0.2.97
    Updating wasm-bindgen-macro v0.2.95 -> v0.2.97
    Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97
    Updating wasm-bindgen-shared v0.2.95 -> v0.2.97
      Adding write16 v1.0.0
      Adding writeable v0.5.5
      Adding yoke v0.7.5
      Adding yoke-derive v0.7.5
      Adding zerofrom v0.1.5
      Adding zerofrom-derive v0.1.5
      Adding zerovec v0.10.4
      Adding zerovec-derive v0.10.3
```
Run TLS destructors for wasm32-wasip1-threads

The target wasm32-wasip1-threads has support for pthreads and allows registration of TLS destructors.

For spawned threads, this registers Rust TLS destructors by creating a pthreads key with an attached destructor function.
For the main thread, this registers an `atexit` handler to run the TLS destructors.

try-job: test-various
…-dist-build, r=Kobzol

use vendor sources by default on dist tarballs

Tarball sources are distributed with vendor sources along with the `.cargo/config.toml` file configured for vendor sources. This means we can use vendor sources by default unless explicitly disabled with `build.vendor=false` by the user. So, let's do that.
coverage: Prefer to visit nodes whose predecessors have been visited

In coverage instrumentation, we need to traverse the control-flow graph and decide what kind of counter (physical counter or counter-expression) should be used for each node that needs a counter.

The existing traversal order is complex and hard to tweak. This new traversal order tries to be a bit more principled, by always preferring to visit nodes whose predecessors have already been visited, which is a good match for how the counter-creation code ends up dealing with a node's in-edges and out-edges.

For several of the coverage tests, this ends up being a strict improvement in reducing the size of the coverage metadata, and also reducing the number of physical counters needed.

(The new traversal should hopefully also allow some further code simplifications in the future.)

---

This is made possible by the separate simplification pass introduced by rust-lang#133849. Without that, almost any change to the traversal order ends up increasing the size of the expression table or the number of physical counters.
…r=oli-obk

fix ICE on type error in promoted

Fixes rust-lang#133968

Ensure that when we turn a type error into a "this promoted failed to evaluate" error, we do record this as something that may happen even in "infallible" promoteds.
coverage: Use a query to find counters/expressions that must be zero

As of rust-lang#133446, this query (`coverage_ids_info`) determines which counter/expression IDs are unused. So with only a little extra work, we can take the code that was using that information to determine which coverage counters/expressions must be zero, and move that inside the query as well.

There should be no change in compiler output.
Configure renovatebot

This PR adds a basic Renovatebot configuration. We would mostly like to use the bot for updating lockfiles. First, I want to try out if the built-in lockFileMaintenance will work for that. I'm a bit skeptical, because it is not very configurable, but it's worth a try. I set the schedule for Tuesday, so that we can test what happens tomorrow.

I also enabled the dependency dashboard, as I think it could be useful for us, to see a global state of our dependencies.

r? ``@MarcoIeni``
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-wasi Operating system: Wasi, Webassembly System Interface S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Dec 9, 2024
@fmease
Copy link
Member Author

fmease commented Dec 9, 2024

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Dec 9, 2024

📌 Commit 28a95e4 has been approved by fmease

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 Dec 9, 2024
@bors
Copy link
Contributor

bors commented Dec 10, 2024

⌛ Testing commit 28a95e4 with merge 22689e3...

bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 10, 2024
Rollup of 10 pull requests

Successful merges:

 - rust-lang#131558 (Lint on combining `#[no_mangle]` and `#[export_name]`)
 - rust-lang#133122 (Add unpolished, experimental support for AFIDT (async fn in dyn trait))
 - rust-lang#133184 (wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next)
 - rust-lang#133456 (Add licenses + Run `cargo update`)
 - rust-lang#133472 (Run TLS destructors for wasm32-wasip1-threads)
 - rust-lang#133853 (use vendor sources by default on dist tarballs)
 - rust-lang#133946 (coverage: Prefer to visit nodes whose predecessors have been visited)
 - rust-lang#134010 (fix ICE on type error in promoted)
 - rust-lang#134029 (coverage: Use a query to find counters/expressions that must be zero)
 - rust-lang#134071 (Configure renovatebot)

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

The job aarch64-gnu-debug failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] serde_spanned test:false 0.239
   Compiling toml_datetime v0.6.8
[RUSTC-TIMING] toml_datetime test:false 0.864
   Compiling hir-expand v0.0.0 (/checkout/src/tools/rust-analyzer/crates/hir-expand)
error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
242 |                 collect_attrs(&item)
242 |                 collect_attrs(&item)
    |                               ^^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Item` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
549 |     collect_attrs(node)
549 |     collect_attrs(node)
    |                   ^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&Adt` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
566 |     collect_attrs(node).nth(invoc_attr_index.ast_index()).and_then(|(_, attr)| Either::left(attr))
    |                   ^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Item` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
130 |                 transparency(&macro_rules).unwrap_or(Transparency::SemiTransparent),
    |                              ^^^^^^^^^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::MacroRules` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
158 |                 transparency(&macro_def).unwrap_or(Transparency::Opaque),
    |                              ^^^^^^^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::MacroDef` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
110 |             if !collect_attrs(it).map(TupleExt::tail).any(|it| it.is_left()) =>
    |                               ^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::ExternBlock` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
118 |         ast::Item::Impl(it) if !collect_attrs(it).map(TupleExt::tail).any(|it| it.is_left()) => {
    |                                               ^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Impl` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
123 |         ast::Item::Module(it) if !collect_attrs(it).map(TupleExt::tail).any(|it| it.is_left()) => {
    |                                                 ^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Module` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
128 |         ast::Item::Trait(it) if !collect_attrs(it).map(TupleExt::tail).any(|it| it.is_left()) => {
    |                                                ^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Trait` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
596 |                     collect_attrs(&it)
596 |                     collect_attrs(&it)
    |                                   ^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&Adt` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
609 |                         collect_attrs(&it)
609 |                         collect_attrs(&it)
    |                                       ^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Item` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
735 |                 collect_attrs(&ast_id.to_node(db))
    |                               ^^^^^^^^^^^^^^^^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&Adt` to `&dyn HasAttrs`

error[E0277]: `impl Iterator<Item = syntax::ast::Attr>` needs to have the same ABI as a pointer
    |
    |
745 |                 collect_attrs(&ast_id.to_node(db))
    |                               ^^^^^^^^^^^^^^^^^^^ `impl Iterator<Item = syntax::ast::Attr>` needs to be a pointer-like type
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = help: the trait `PointerLike` is not implemented for `impl Iterator<Item = syntax::ast::Attr>`
    = note: required for the cast from `&syntax::ast::Item` to `&dyn HasAttrs`
For more information about this error, try `rustc --explain E0277`.
[RUSTC-TIMING] hir_expand test:false 4.449
error: could not compile `hir-expand` (lib) due to 13 previous errors
warning: build failed, waiting for other jobs to finish...

@bors
Copy link
Contributor

bors commented Dec 10, 2024

💔 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 Dec 10, 2024
@fmease
Copy link
Member Author

fmease commented Dec 10, 2024

@bors r-

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 10, 2024
@fmease fmease closed this Dec 10, 2024
@fmease fmease deleted the rollup-f709cqr branch December 10, 2024 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-wasi Operating system: Wasi, Webassembly System Interface rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-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.