|
//@ build-pass
|
|
|
|
enum Foo<T> {
|
|
Var(T),
|
|
} // `T` is covariant.
|
|
|
|
fn foo<'b>(x: Foo<for<'a> fn(&'a ())>) {
|
|
let Foo::Var(x): Foo<fn(&'b ())> = x;
|
|
}
|
|
|
|
fn foo_nested<'b>(x: Foo<Foo<for<'a> fn(&'a ())>>) {
|
|
let Foo::Var(Foo::Var(x)): Foo<Foo<fn(&'b ())>> = x;
|
|
}
|
|
|
|
fn main() {}
|