| //@ 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() {} |