// edition:2018 pub trait Foo {} struct Local; impl Foo for Local {} pub fn out_foo() -> impl Foo { Local } pub fn in_foo(_: impl Foo) {} pub async fn async_simple(_: [u8; N]) {} pub async fn async_out_foo() -> impl Foo { Local } pub async fn async_in_foo(_: impl Foo) {} pub trait Bar { type Assoc: Foo; }