2023-04-16 04:56:37 -05:00
|
|
|
//@ check-pass
|
|
|
|
#![feature(type_alias_impl_trait)]
|
|
|
|
|
|
|
|
fn opaque<'a: 'a>() -> impl Sized {}
|
|
|
|
fn assert_static<T: 'static>(_: T) {}
|
|
|
|
|
|
|
|
fn test_closure() {
|
|
|
|
let closure = |_| {
|
|
|
|
assert_static(opaque());
|
|
|
|
};
|
|
|
|
closure(&opaque());
|
|
|
|
}
|
|
|
|
|
2023-08-08 03:35:38 -05:00
|
|
|
type Opaque2 = impl Sized;
|
|
|
|
type Opaque<'a> = Opaque2;
|
2023-04-16 04:56:37 -05:00
|
|
|
fn define<'a>() -> Opaque<'a> {}
|
|
|
|
|
|
|
|
fn test_tait(_: &Opaque<'_>) {
|
|
|
|
None::<&'static Opaque<'_>>;
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|