rust/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs

32 lines
673 B
Rust
Raw Normal View History

// Test that existential types are allowed to contain late-bound regions.
// build-pass (FIXME(62277): could be check-pass?)
// edition:2018
2019-07-29 18:11:58 -05:00
#![feature(async_await)]
#![feature(type_alias_impl_trait)]
use std::future::Future;
2019-07-29 18:11:58 -05:00
pub type Func = impl Sized;
// Late bound region should be allowed to escape the function, since it's bound
// in the type.
fn null_function_ptr() -> Func {
None::<for<'a> fn(&'a ())>
}
async fn async_nop(_: &u8) {}
2019-07-29 18:11:58 -05:00
pub type ServeFut = impl Future<Output=()>;
// Late bound regions occur in the generator witness type here.
fn serve() -> ServeFut {
async move {
let x = 5;
async_nop(&x).await
}
}
fn main() {}