//@ edition:2018 #![feature(impl_trait_in_assoc_type)] pub trait Bar { type E: Send; fn foo() -> Self::E; } impl Bar for S { type E = impl std::marker::Send; fn foo() -> Self::E { async {} //~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias //~| ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias } } fn main() {}