//@ check-pass | |
fn lt_in_fn_fn<'a: 'a>() -> fn(fn(&'a ())) { | |
|_| () | |
} | |
fn foo<'a, 'b, 'lower>(v: bool) | |
where | |
'a: 'lower, | |
'b: 'lower, | |
{ | |
// if we infer `x` to be higher ranked in the future, | |
// this would cause a type error. | |
let x = match v { | |
true => lt_in_fn_fn::<'a>(), | |
false => lt_in_fn_fn::<'b>(), | |
}; | |
let _: fn(fn(&'lower())) = x; | |
} | |
fn main() {} |