Skip to content

Tracking Issue for async_fn_in_trait, return_position_impl_trait_in_trait #91611

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
3 of 7 tasks
Tracked by #1568 ...
nikomatsakis opened this issue Dec 6, 2021 · 26 comments · Fixed by #115822
Closed
3 of 7 tasks
Tracked by #1568 ...

Tracking Issue for async_fn_in_trait, return_position_impl_trait_in_trait #91611

nikomatsakis opened this issue Dec 6, 2021 · 26 comments · Fixed by #115822
Labels
B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC F-async_fn_in_trait Static async fn in traits F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` S-tracking-impl-incomplete Status: The implementation is incomplete. T-lang Relevant to the language team, which will review and decide on the PR/issue.

Comments

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Dec 6, 2021

About tracking issues

Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.

Steps

Unresolved Questions

Async fn in trait

Return position impl Trait in trait

Implementation history

Async fn in trait

F-async_fn_in_trait Static async fn in traits

Return position impl Trait in trait

F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]`

Several of these include code specific to async fn in trait.

@nikomatsakis nikomatsakis added T-lang Relevant to the language team, which will review and decide on the PR/issue. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC labels Dec 6, 2021
@HTGAzureX1212
Copy link
Contributor

May I take a go at this?

@crlf0710 crlf0710 added B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. F-async_fn_in_trait Static async fn in traits labels Feb 5, 2022
@LeSeulArtichaut
Copy link
Contributor

Currently trying to take a stab at this. @rustbot claim

@nikomatsakis
Copy link
Contributor Author

@LeSeulArtichaut actually, @spastorino has been looking into doing various refactorings to make this easier, you should probably synchronize with him, I'm not sure what state we are in.

@spastorino
Copy link
Member

spastorino commented Mar 24, 2022

Ohh, unsure why I've never assigned this to myself. I've been working on this since a while, and I've implemented RPITIT and async fns in traits support partially. At some point, we've realized that we wanted to change the design of the solution and started doing some refactors on RPITs.
Anyway, I've already talked with @LeSeulArtichaut, and I'd be happy to share some work with them about this feature or about any other feature ❤️

@LeSeulArtichaut

This comment was marked as resolved.

@fakedrake
Copy link

It seems this has been asleep for a while, is it blocked? is it dead? Does it need more love?

@spastorino
Copy link
Member

@fakedrake we are working on this thing, there's some support work being done by my RPIT Refactor and by RPITIT PR that just landed. You can see discussions on https://rust-lang.zulipchat.com/#narrow/stream/330606-wg-async.2Fasync-fn-in-trait-impl

@crlf0710 crlf0710 added F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` F-dyn_star `#![feature(dyn_star)]` labels Sep 17, 2022
github-actions bot pushed a commit to rust-lang/glacier that referenced this issue Oct 2, 2022
=== stdout ===
=== stderr ===
warning: the feature `return_position_impl_trait_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /home/runner/work/glacier/glacier/ices/102140.rs:1:12
  |
1 | #![feature(return_position_impl_trait_in_trait)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #91611 <rust-lang/rust#91611> for more information
  = note: `#[warn(incomplete_features)]` on by default

error[E0601]: `main` function not found in crate `102140`
  --> /home/runner/work/glacier/glacier/ices/102140.rs:23:2
   |
23 | }
   |  ^ consider adding a `main` function to `/home/runner/work/glacier/glacier/ices/102140.rs`

error[E0277]: the trait bound `&dyn MyTrait: MyTrait` is not satisfied
  --> /home/runner/work/glacier/glacier/ices/102140.rs:21:22
   |
21 |         MyTrait::foo(&self)
   |         ------------ -^^^^
   |         |            |
   |         |            the trait `MyTrait` is not implemented for `&dyn MyTrait`
   |         |            help: consider removing the leading `&`-reference
   |         required by a bound introduced by this call

error[E0277]: the trait bound `&dyn MyTrait: MyTrait` is not satisfied
  --> /home/runner/work/glacier/glacier/ices/102140.rs:21:9
   |
21 |         MyTrait::foo(&self)
   |         ^^^^^^^^^^^^^^^^^^^ the trait `MyTrait` is not implemented for `&dyn MyTrait`
   |
   = help: the trait `MyTrait` is implemented for `Outer`

error[E0277]: the trait bound `&dyn MyTrait: MyTrait` is not satisfied
  --> /home/runner/work/glacier/glacier/ices/102140.rs:21:9
   |
21 |         MyTrait::foo(&self)
   |         ^^^^^^^^^^^^ the trait `MyTrait` is not implemented for `&dyn MyTrait`
   |
   = help: the trait `MyTrait` is implemented for `Outer`

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

Some errors have detailed explanations: E0277, E0601.
For more information about an error, try `rustc --explain E0277`.
==============
github-actions bot pushed a commit to rust-lang/glacier that referenced this issue Oct 2, 2022
=== stdout ===
=== stderr ===
warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /home/runner/work/glacier/glacier/ices/102219.rs:2:12
  |
2 | #![feature(async_fn_in_trait)]
  |            ^^^^^^^^^^^^^^^^^
  |
  = note: see issue #91611 <rust-lang/rust#91611> for more information
  = note: `#[warn(incomplete_features)]` on by default

warning: 1 warning emitted

==============
github-actions bot pushed a commit to rust-lang/glacier that referenced this issue Oct 4, 2022
=== stdout ===
=== stderr ===
error[E0706]: functions in traits cannot be declared `async`
 --> /home/runner/work/glacier/glacier/ices/101665.rs:7:5
  |
7 |     async fn baz()-> impl Debug{}
  |     -----^^^^^^^^^^^^^^^^^^^^^^
  |     |
  |     `async` because of this
  |
  = note: `async` trait functions are not currently supported
  = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
  = note: see issue #91611 <rust-lang/rust#91611> for more information
  = help: add `#![feature(async_fn_in_trait)]` to the crate attributes to enable

error[E0308]: mismatched types
 --> /home/runner/work/glacier/glacier/ices/101665.rs:7:32
  |
7 |     async fn baz()-> impl Debug{}
  |                                ^^ expected associated type, found `()`
  |
  = note: expected associated type `impl Debug`
                   found unit type `()`

error[E0308]: mismatched types
 --> /home/runner/work/glacier/glacier/ices/101665.rs:7:32
  |
7 |     async fn baz()-> impl Debug{}
  |                                ^^ expected associated type, found opaque type
  |
  = note: expected associated type `impl Future<Output = impl Debug>` (trait associated opaque type at </home/runner/work/glacier/glacier/ices/101665.rs:7:22>)
                 found opaque type `impl Future<Output = impl Debug>` (opaque type at </rustc/f83e0266cf7aaa4b41505c49a5fd9c2363166522/library/core/src/future/mod.rs:72:43>)

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0308, E0706.
For more information about an error, try `rustc --explain E0308`.
==============
@crlf0710 crlf0710 removed the F-dyn_star `#![feature(dyn_star)]` label Oct 22, 2022
bors bot referenced this issue in stackabletech/operator-rs Nov 4, 2022
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [Swatinem/rust-cache](https://togithub.com/Swatinem/rust-cache) | action | patch | `v2.0.0` -> `v2.0.2` |
| [clap](https://togithub.com/clap-rs/clap) | dependencies | patch | `3.2.17` -> `3.2.23` |
| [const_format](https://togithub.com/rodrimati1992/const_format_crates) | dependencies | patch | `0.2.26` -> `0.2.30` |
| [darling](https://togithub.com/TedDriggs/darling) | dependencies | patch | `0.14.1` -> `0.14.2` |
| [futures](https://rust-lang.github.io/futures-rs) ([source](https://togithub.com/rust-lang/futures-rs)) | dependencies | patch | `0.3.23` -> `0.3.25` |
| [proc-macro2](https://togithub.com/dtolnay/proc-macro2) | dependencies | patch | `1.0.43` -> `1.0.47` |
| [serde](https://serde.rs) ([source](https://togithub.com/serde-rs/serde)) | dependencies | patch | `1.0.144` -> `1.0.147` |
| [serde_json](https://togithub.com/serde-rs/json) | dependencies | patch | `1.0.85` -> `1.0.87` |
| [serde_yaml](https://togithub.com/dtolnay/serde-yaml) | dependencies | patch | `0.9.10` -> `0.9.14` |
| [snafu](https://togithub.com/shepmaster/snafu) | dependencies | patch | `0.7.1` -> `0.7.3` |
| [syn](https://togithub.com/dtolnay/syn) | dependencies | patch | `1.0.99` -> `1.0.103` |
| [thiserror](https://togithub.com/dtolnay/thiserror) | dependencies | patch | `1.0.32` -> `1.0.37` |
| [tokio](https://tokio.rs) ([source](https://togithub.com/tokio-rs/tokio)) | dependencies | patch | `1.21.1` -> `1.21.2` |
| [tracing](https://tokio.rs) ([source](https://togithub.com/tokio-rs/tracing)) | dependencies | patch | `0.1.36` -> `0.1.37` |
| [tracing-subscriber](https://tokio.rs) ([source](https://togithub.com/tokio-rs/tracing)) | dependencies | patch | `0.3.15` -> `0.3.16` |

---

### Release Notes

<details>
<summary>Swatinem/rust-cache</summary>

### [`v2.0.2`](https://togithub.com/Swatinem/rust-cache/releases/tag/v2.0.2)

[Compare Source](https://togithub.com/Swatinem/rust-cache/compare/v2.0.1...v2.0.2)

-   Avoid calling cargo metadata on pre-cleanup.

### [`v2.0.1`](https://togithub.com/Swatinem/rust-cache/releases/tag/v2.0.1)

[Compare Source](https://togithub.com/Swatinem/rust-cache/compare/v2.0.0...v2.0.1)

-   Primarily just updating dependencies to fix GitHub deprecation notices.

</details>

<details>
<summary>clap-rs/clap</summary>

### [`v3.2.23`](https://togithub.com/clap-rs/clap/releases/tag/v3.2.23)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.22...v3.2.23)

#### \[3.2.23] - 2022-10-24

##### Fixes

-   Upgrade to `textwrap` 0.16

### [`v3.2.22`](https://togithub.com/clap-rs/clap/releases/tag/v3.2.22)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.21...v3.2.22)

##### \[3.2.22] - 2022-09-16

##### Fixes

-   Unify dependencies on `terminal_size` to the 0.2 release

### [`v3.2.21`](https://togithub.com/clap-rs/clap/releases/tag/v3.2.21)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.20...v3.2.21)

#### \[3.2.21] - 2022-09-12

##### Features

-   `TypedValueParser::map` to allow reusing existing value parsers for other purposes

### [`v3.2.20`](https://togithub.com/clap-rs/clap/releases/tag/v3.2.20)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.19...v3.2.20)

#### \[3.2.20] - 2022-09-02

##### Features

-   `ArgMatches::get_count` help for `ArgAction::Count`
-   `ArgMatches::get_flag` help for `ArgAction::SetTrue` / `ArgAction::SetFalse`

### [`v3.2.19`](https://togithub.com/clap-rs/clap/releases/tag/v3.2.19)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.18...v3.2.19)

#### \[3.2.19] - 2022-08-30

##### Fixes

-   *(help)* Ensure required arguments for parent commands aren't shown in their subcommands when using `args_conflicts_with_subcommand`

### [`v3.2.18`](https://togithub.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;3218---2022-08-29)

[Compare Source](https://togithub.com/clap-rs/clap/compare/v3.2.17...v3.2.18)

##### Fixes

-   *(help)* `Command::print_help` now respects `Command::colored_help`
-   *(derive)* Improved error messages

</details>

<details>
<summary>rodrimati1992/const_format_crates</summary>

### [`v0.2.29`](https://togithub.com/rodrimati1992/const_format_crates/blob/HEAD/Changelog.md#&#8203;0229)

Added lowercase hexadecimal formatting support.

Breaking: to add lowercase hexadecimal formatting, this crate changed the uppercase hexadecimal formatter from `{:x}` to `{:X}`

### [`v0.2.27`](https://togithub.com/rodrimati1992/const_format_crates/blob/HEAD/Changelog.md#&#8203;0227)

Replacing existing features with these:

-   `"rust_1_64"`: superceeding the soft-deprecated `"more_str_macros"` feature.
-   `"rust_1_51"`: superceeding the soft-deprecated `"const_generics"` feature.
    The new features are enabled by the feature they superceede.

Now the `"fmt"` feature enables the `"rust_1_64"` feature.

</details>

<details>
<summary>TedDriggs/darling</summary>

### [`v0.14.2`](https://togithub.com/TedDriggs/darling/blob/HEAD/CHANGELOG.md#v0142-October-26-2022)

[Compare Source](https://togithub.com/TedDriggs/darling/compare/v0.14.1...v0.14.2)

-   Derived impls of `FromMeta` will now error on literals, rather than silently ignoring them. [#&#8203;193](https://togithub.com/TedDriggs/darling/pull/193)
-   Don't include property paths in compile errors when spans are available. [#&#8203;203](https://togithub.com/TedDriggs/darling/pull/203)

</details>

<details>
<summary>rust-lang/futures-rs</summary>

### [`v0.3.25`](https://togithub.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#&#8203;0325---2022-10-20)

[Compare Source](https://togithub.com/rust-lang/futures-rs/compare/0.3.24...0.3.25)

-   Fix soundness issue in `join!` and `try_join!` macros ([#&#8203;2649](https://togithub.com/rust-lang/futures-rs/issues/2649))
-   Implement `Clone` for `sink::Drain` ([#&#8203;2650](https://togithub.com/rust-lang/futures-rs/issues/2650))

### [`v0.3.24`](https://togithub.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#&#8203;0324---2022-08-29)

[Compare Source](https://togithub.com/rust-lang/futures-rs/compare/0.3.23...0.3.24)

-   Fix incorrect termination of `select_with_strategy` streams ([#&#8203;2635](https://togithub.com/rust-lang/futures-rs/issues/2635))

</details>

<details>
<summary>dtolnay/proc-macro2</summary>

### [`v1.0.47`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.47)

[Compare Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.46...1.0.47)

-   Fix integer overflow when nesting depth of nested comments exceeds 4 billion ([#&#8203;357](https://togithub.com/dtolnay/proc-macro2/issues/357))

### [`v1.0.46`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.46)

[Compare Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.45...1.0.46)

-   Make proc_macro2::TokenStream's `FromStr` impl consistent with proc_macro::TokenStream's on strings that begin with a byte order mark `\u{feff}` ([#&#8203;353](https://togithub.com/dtolnay/proc-macro2/issues/353))

### [`v1.0.45`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.45)

[Compare Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.44...1.0.45)

-   Fix panic on parsing disallowed raw identifiers such as `r#self` ([#&#8203;351](https://togithub.com/dtolnay/proc-macro2/issues/351))

### [`v1.0.44`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.44)

[Compare Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.43...1.0.44)

-   Expose `span.before()` and `span.after()` to access an empty `Span` located immediately before or after the input span ([#&#8203;348](https://togithub.com/dtolnay/proc-macro2/issues/348), upstream tracking issue: [https://github.com/rust-lang/rust/issues/87552](https://togithub.com/rust-lang/rust/issues/87552))

</details>

<details>
<summary>serde-rs/serde</summary>

### [`v1.0.147`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.147)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.146...v1.0.147)

-   Add `serde::de::value::EnumAccessDeserializer` which transforms an `EnumAccess` into a `Deserializer` ([#&#8203;2305](https://togithub.com/serde-rs/serde/issues/2305))

### [`v1.0.146`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.146)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.145...v1.0.146)

-   Allow internally tagged newtype variant to contain unit ([#&#8203;2303](https://togithub.com/serde-rs/serde/issues/2303), thanks [@&#8203;tage64](https://togithub.com/tage64))

### [`v1.0.145`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.145)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.144...v1.0.145)

-   Allow RefCell\<T>, Mutex\<T>, and RwLock\<T> to be serialized regardless of whether T is `Sized` ([#&#8203;2282](https://togithub.com/serde-rs/serde/issues/2282), thanks [@&#8203;ChayimFriedman2](https://togithub.com/ChayimFriedman2))

</details>

<details>
<summary>serde-rs/json</summary>

### [`v1.0.87`](https://togithub.com/serde-rs/json/releases/tag/v1.0.87)

[Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.86...v1.0.87)

-   Add `write_i128` and `write_u128` methods to `serde_json::Formatter` to control the formatting of 128-bit integers ([#&#8203;940](https://togithub.com/serde-rs/json/issues/940), thanks [@&#8203;Lucretiel](https://togithub.com/Lucretiel))

### [`v1.0.86`](https://togithub.com/serde-rs/json/releases/tag/v1.0.86)

[Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.85...v1.0.86)

-   Support `arbitrary_precision` feature even in no-std mode ([#&#8203;928](https://togithub.com/serde-rs/json/issues/928), thanks [@&#8203;kvinwang](https://togithub.com/kvinwang))

</details>

<details>
<summary>dtolnay/serde-yaml</summary>

### [`v0.9.14`](https://togithub.com/dtolnay/serde-yaml/releases/tag/0.9.14)

[Compare Source](https://togithub.com/dtolnay/serde-yaml/compare/0.9.13...0.9.14)

-   Implement `Deserializer` for `TaggedValue` and `&TaggedValue` ([#&#8203;339](https://togithub.com/dtolnay/serde-yaml/issues/339))

### [`v0.9.13`](https://togithub.com/dtolnay/serde-yaml/releases/tag/0.9.13)

[Compare Source](https://togithub.com/dtolnay/serde-yaml/compare/0.9.12...0.9.13)

-   Recognize `True`, `TRUE`, `False`, `FALSE` as booleans, `Null`, `NULL` as null ([#&#8203;330](https://togithub.com/dtolnay/serde-yaml/issues/330))

### [`v0.9.12`](https://togithub.com/dtolnay/serde-yaml/releases/tag/0.9.12)

[Compare Source](https://togithub.com/dtolnay/serde-yaml/compare/0.9.11...0.9.12)

-   Support deserializing tagged literal scalar into primitive ([#&#8203;327](https://togithub.com/dtolnay/serde-yaml/issues/327))

    ```yaml
    "foo": !!int |-
      7200
    ```

### [`v0.9.11`](https://togithub.com/dtolnay/serde-yaml/releases/tag/0.9.11)

[Compare Source](https://togithub.com/dtolnay/serde-yaml/compare/0.9.10...0.9.11)

-   Serialize strings on a single line when they do not already contain a newline character, regardless of string length ([#&#8203;321](https://togithub.com/dtolnay/serde-yaml/issues/321), [#&#8203;322](https://togithub.com/dtolnay/serde-yaml/issues/322))

</details>

<details>
<summary>shepmaster/snafu</summary>

### [`v0.7.3`](https://togithub.com/shepmaster/snafu/blob/HEAD/CHANGELOG.md#&#8203;073---2022-10-20)

[Compare Source](https://togithub.com/shepmaster/snafu/compare/0.7.2...0.7.3)

##### Fixed

-   The macro no longer generates invalid code when implicitly-generated
    types (such as backtraces) were used in conjunction with
    `#[snafu(source(from))]` and the type before transformation does not
    implement `std::error::Error`.

[0.7.3]: https://togithub.com/shepmaster/snafu/releases/tag/0.7.3

### [`v0.7.2`](https://togithub.com/shepmaster/snafu/blob/HEAD/CHANGELOG.md#&#8203;072---2022-10-09)

[Compare Source](https://togithub.com/shepmaster/snafu/compare/0.7.1...0.7.2)

##### Added

-   `Report` can be returned from `main` or test functions to provide a
    user-friendly display of errors.

-   A cheat sheet for the most common `#[snafu(...)]` attribute usages
    has been added to the `Snafu` macro's documentation.

-   Optional support for using the standard library's
    `std::backtrace::Backtrace` type via the `backtraces-impl-std`
    feature flag.

-   Optional support for implementing the Provider API using the
    `std::error::Error::provide` method via the `unstable-provider-api`
    feature flag.

-   Optional support for implementing the `core::error::Error` trait
    instead of `std::error::Error` via the `unstable-core-error` feature
    flag.

-   `GenerateImplicitData` has a new method `generate_with_source`.

##### Changed

-   `ErrorCompat::iter_chain` and `ChainCompat` are now available in
    no_std environments.

-   `ChainCompat` now implements `Clone`.

-   The `Debug` implementation for `Location` no longer shows some
    irrelevant internal details.

[0.7.2]: https://togithub.com/shepmaster/snafu/releases/tag/0.7.2

</details>

<details>
<summary>dtolnay/syn</summary>

### [`v1.0.103`](https://togithub.com/dtolnay/syn/releases/tag/1.0.103)

[Compare Source](https://togithub.com/dtolnay/syn/compare/1.0.102...1.0.103)

-   Implement `PartialOrd` for `Cursor` ([#&#8203;1236](https://togithub.com/dtolnay/syn/issues/1236), [#&#8203;1237](https://togithub.com/dtolnay/syn/issues/1237), thanks [@&#8203;CAD97](https://togithub.com/CAD97))

### [`v1.0.102`](https://togithub.com/dtolnay/syn/releases/tag/1.0.102)

[Compare Source](https://togithub.com/dtolnay/syn/compare/1.0.101...1.0.102)

-   More efficient internal representation for `TokenBuffer` ([#&#8203;1223](https://togithub.com/dtolnay/syn/issues/1223), thanks [@&#8203;CAD97](https://togithub.com/CAD97))
-   Fix parsing of a left shift after macro metavariable in type position ([#&#8203;1229](https://togithub.com/dtolnay/syn/issues/1229))

### [`v1.0.101`](https://togithub.com/dtolnay/syn/releases/tag/1.0.101)

[Compare Source](https://togithub.com/dtolnay/syn/compare/1.0.100...1.0.101)

-   Eliminate a bunch of redundant work done by LitStr::parse ([#&#8203;1221](https://togithub.com/dtolnay/syn/issues/1221))

### [`v1.0.100`](https://togithub.com/dtolnay/syn/releases/tag/1.0.100)

[Compare Source](https://togithub.com/dtolnay/syn/compare/1.0.99...1.0.100)

-   Parse closures with explicit empty lifetime parameter list `for<> || -> T {…}` ([#&#8203;1212](https://togithub.com/dtolnay/syn/issues/1212), [https://github.com/rust-lang/rust/issues/97362](https://togithub.com/rust-lang/rust/issues/97362))
-   Parse `dyn*` provisional syntax ([#&#8203;1213](https://togithub.com/dtolnay/syn/issues/1213), [https://github.com/rust-lang/rust/issues/91611](https://togithub.com/rust-lang/rust/issues/91611))
-   Parse attributes on the "rest" pattern of a struct in pattern position, `Struct { #[attr] .. }` ([#&#8203;1214](https://togithub.com/dtolnay/syn/issues/1214))
-   Parse `static async` and `static async move` closures ([#&#8203;1215](https://togithub.com/dtolnay/syn/issues/1215), [https://github.com/rust-lang/rust/issues/62290](https://togithub.com/rust-lang/rust/issues/62290))

</details>

<details>
<summary>dtolnay/thiserror</summary>

### [`v1.0.37`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.37)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.36...1.0.37)

-   Documentation improvements

### [`v1.0.36`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.36)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.35...1.0.36)

-   Documentation improvements ([#&#8203;195](https://togithub.com/dtolnay/thiserror/issues/195), thanks [@&#8203;matklad](https://togithub.com/matklad))

### [`v1.0.35`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.35)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.34...1.0.35)

-   More work on integrating [std::any::Provider](https://doc.rust-lang.org/std/any/trait.Provider.html) for backtrace support
-   Fix *"Multiple applicable `provide` methods in scope"* error when the caller has both std::error::Error and std::any::Provide traits in scope ([#&#8203;185](https://togithub.com/dtolnay/thiserror/issues/185))

### [`v1.0.34`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.34)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.33...1.0.34)

-   Tweak "generic member access" based Backtrace implementation ([#&#8203;184](https://togithub.com/dtolnay/thiserror/issues/184))

### [`v1.0.33`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.33)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.32...1.0.33)

-   Expose backtraces via the new "generic member access" API on the Error trait ([https://github.com/rust-lang/rust/issues/99301](https://togithub.com/rust-lang/rust/issues/99301), [https://github.com/rust-lang/rust/issues/96024](https://togithub.com/rust-lang/rust/issues/96024))

</details>

<details>
<summary>tokio-rs/tokio</summary>

### [`v1.21.2`](https://togithub.com/tokio-rs/tokio/releases/tag/tokio-1.21.2)

[Compare Source](https://togithub.com/tokio-rs/tokio/compare/tokio-1.21.1...tokio-1.21.2)

### 1.21.2 (September 27, 2022)

This release removes the dependency on the `once_cell` crate to restore the MSRV of 1.21.x, which is the latest minor version at the time of release. ([#&#8203;5048])

[#&#8203;5048]: https://togithub.com/tokio-rs/tokio/pull/5048

</details>

<details>
<summary>tokio-rs/tracing</summary>

### [`v0.1.37`](https://togithub.com/tokio-rs/tracing/releases/tag/tracing-0.1.37)

[Compare Source](https://togithub.com/tokio-rs/tracing/compare/tracing-0.1.36...tracing-0.1.37)

This release of `tracing` incorporates changes from `tracing-core`
[v0.1.30][core-0.1.30] and `tracing-attributes` [v0.1.23][attrs-0.1.23],
including the new `Subscriber::on_register_dispatch` method for performing late
initialization after a `Subscriber` is registered as a `Dispatch`, and bugfixes
for the `#[instrument]` attribute. Additionally, it fixes instances of the
`bare_trait_objects` lint, which is now a warning on `tracing`'s MSRV and will
become an error in the next edition.

##### Fixed

-   **attributes**: Incorrect handling of inner attributes in `#[instrument]`ed
    functions ([#&#8203;2307])
-   **attributes**: Incorrect location of compiler diagnostic spans generated for
    type errors in `#[instrument]`ed `async fn`s ([#&#8203;2270])
-   **attributes**: Updated `syn` dependency to fix compilation with `-Z
    minimal-versions` ([#&#8203;2246])
-   `bare_trait_objects` warning in `valueset!` macro expansion ([#&#8203;2308])

##### Added

-   **core**: `Subscriber::on_register_dispatch` method ([#&#8203;2269])
-   **core**: `WeakDispatch` type and `Dispatch::downgrade()` function ([#&#8203;2293])

##### Changed

-   `tracing-core`: updated to [0.1.30][core-0.1.30]
-   `tracing-attributes`: updated to [0.1.23][attrs-0.1.23]

##### Documented

-   Added [`tracing-web`][tracing-web] and [`reqwest-tracing`][reqwest-tracing] to related crates ([#&#8203;2283],
    [#&#8203;2331])

Thanks to new contributors [@&#8203;compiler-errors](https://togithub.com/compiler-errors), [@&#8203;e-nomem](https://togithub.com/e-nomem), [@&#8203;WorldSEnder](https://togithub.com/WorldSEnder), [@&#8203;Xiami2012](https://togithub.com/Xiami2012),
and [@&#8203;tl-rodrigo-gryzinski](https://togithub.com/tl-rodrigo-gryzinski), as well as [@&#8203;jswrenn](https://togithub.com/jswrenn) and [@&#8203;CAD97](https://togithub.com/CAD97), for contributing to
this release!

[core-0.1.30]: https://togithub.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30

[attrs-0.1.23]: https://togithub.com/tokio-rs/tracing/releases/tag/tracing-attributes-0.1.23

[`tracing-web`]: https://crates.io/crates/tracing-web/

[`reqwest-tracing`]: https://crates.io/crates/reqwest-tracing/

[#&#8203;2246]: https://togithub.com/tokio-rs/tracing/pull/2246

[#&#8203;2269]: https://togithub.com/tokio-rs/tracing/pull/2269

[#&#8203;2283]: https://togithub.com/tokio-rs/tracing/pull/2283

[#&#8203;2270]: https://togithub.com/tokio-rs/tracing/pull/2270

[#&#8203;2293]: https://togithub.com/tokio-rs/tracing/pull/2293

[#&#8203;2307]: https://togithub.com/tokio-rs/tracing/pull/2307

[#&#8203;2308]: https://togithub.com/tokio-rs/tracing/pull/2308

[#&#8203;2331]: https://togithub.com/tokio-rs/tracing/pull/2331

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5:00 and before 6:00 every weekday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/stackabletech/operator-rs).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMTcuMCIsInVwZGF0ZWRJblZlciI6IjM0LjE0LjAifQ==-->
@compiler-errors
Copy link
Member

compiler-errors commented Sep 14, 2023

For the record, a stabilization PR has been opened over at: #115822.

#91611 (comment): @zachs18: Yeah, I think the async book should be adjusted to mention something along the lines of "future isn't, in general, gonna to be run to completion unless it is awaited" -- the point, afaict, is more to make sure folks know .await needs to be called on the future unlike other langs which spawn tasks and kick them off immediately as a part of their async desugaring or something.

@bors bors closed this as completed in 481d45a Oct 14, 2023
zanieb added a commit to astral-sh/uv that referenced this issue Nov 8, 2023
randombtree added a commit to randombtree/rpcudp-rs that referenced this issue Dec 9, 2023
- This currently requires using either beta or nightly channel.
- Due to rust-lang/rust#91611
charliermarsh pushed a commit to astral-sh/ruff that referenced this issue Jun 10, 2024
## Summary

Salsa requires rust-lang/rust#91611 which
stabalized with
[1.75](https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html)

1.75 doesn't change the supported platforms. So I think this upgrade is
fine in a minor.

## Test Plan

`cargo build`
tsionyx added a commit to tsionyx/prop-logic that referenced this issue Jan 21, 2025
tsionyx added a commit to tsionyx/prop-logic that referenced this issue Feb 1, 2025
chrjabs added a commit to chrjabs/rustsat that referenced this issue Apr 2, 2025
this is required because of return_position_impl_trait_in_trait being
used in `pigeons`
rust-lang/rust#91611
chrjabs added a commit to chrjabs/rustsat that referenced this issue Apr 2, 2025
this is required because of return_position_impl_trait_in_trait being
used in `pigeons`
rust-lang/rust#91611
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC F-async_fn_in_trait Static async fn in traits F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` S-tracking-impl-incomplete Status: The implementation is incomplete. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.