27 lines
439 B
Rust
27 lines
439 B
Rust
|
|
// compile-pass
|
||
|
|
// edition:2018
|
||
|
|
|
||
|
|
#![feature(async_await, await_macro)]
|
||
|
|
|
||
|
|
trait MyClosure {
|
||
|
|
type Args;
|
||
|
|
}
|
||
|
|
|
||
|
|
impl<R> MyClosure for dyn FnMut() -> R
|
||
|
|
where R: 'static {
|
||
|
|
type Args = ();
|
||
|
|
}
|
||
|
|
|
||
|
|
struct MyStream<C: ?Sized + MyClosure> {
|
||
|
|
x: C::Args,
|
||
|
|
}
|
||
|
|
|
||
|
|
async fn get_future<C: ?Sized + MyClosure>(_stream: MyStream<C>) {}
|
||
|
|
|
||
|
|
async fn f() {
|
||
|
|
let messages: MyStream<FnMut()> = unimplemented!();
|
||
|
|
await!(get_future(messages));
|
||
|
|
}
|
||
|
|
|
||
|
|
fn main() {}
|