25 lines
474 B
Rust
25 lines
474 B
Rust
|
// build-pass
|
||
|
struct Inv<'a>(&'a mut &'a ());
|
||
|
enum Foo<T> {
|
||
|
Bar,
|
||
|
Var(T),
|
||
|
}
|
||
|
type Supertype = Foo<for<'a> fn(Inv<'a>, Inv<'a>)>;
|
||
|
|
||
|
fn foo(x: Foo<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>) {
|
||
|
match x {
|
||
|
Supertype::Bar => {}
|
||
|
Supertype::Var(x) => {}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn foo_nested(x: Foo<Foo<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>>) {
|
||
|
match x {
|
||
|
Foo::Bar => {}
|
||
|
Foo::Var(Supertype::Bar) => {}
|
||
|
Foo::Var(Supertype::Var(x)) => {}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|