rust-lang / impl-trait-utils

Utilities for working with impl traits in Rust.
Apache License 2.0
89 stars 9 forks source link

Support syn::Pat::Wild pattern in method signatures #21

Open girstenbrei opened 8 months ago

girstenbrei commented 8 months ago

This issue relevant after #20 merges, but is not a result of the PR.

Assuming #20, the following fails to compile:

enum Abort {
    Yes,
    No,
}

#[trait_variant::make(Example: Send)]
trait LocalExample {
    async fn should_abort(_: String) -> Abort {
        Abort::No
    }
}

The reason is the unsupported pattern _, tracing back to this error:

https://github.com/rust-lang/impl-trait-utils/blob/6a5e7abb09cfc689258a8cd630ceeb8597e4e3e9/trait-variant/src/variant.rs#L199

Giving the variable a name is possible, of course, but leads to the slight inconvenience of requiring allow(clippy::no_effect_underscore_binding) and allow(clippy::used_underscore_binding).