2019-11-04 00:00:00 +00:00
|
|
|
//@ check-pass
|
2018-09-25 21:51:35 +00:00
|
|
|
#![allow(dead_code)]
|
2015-10-07 22:11:25 +00:00
|
|
|
// Regression test for #24085. Errors were occurring in region
|
2015-04-17 14:01:45 +00:00
|
|
|
// inference due to the requirement that `'a:b'`, which was getting
|
2018-05-08 13:10:16 +00:00
|
|
|
// incorrectly codegened in connection with the closure below.
|
2015-04-17 14:01:45 +00:00
|
|
|
|
|
|
|
#[derive(Copy,Clone)]
|
|
|
|
struct Path<'a:'b, 'b> {
|
|
|
|
x: &'a i32,
|
|
|
|
tail: Option<&'b Path<'a, 'b>>
|
|
|
|
}
|
|
|
|
|
|
|
|
#[allow(dead_code, unconditional_recursion)]
|
|
|
|
fn foo<'a,'b,F>(p: Path<'a, 'b>, mut f: F)
|
|
|
|
where F: for<'c> FnMut(Path<'a, 'c>) {
|
|
|
|
foo(p, |x| f(x))
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { }
|