2014-11-13 20:20:01 -06:00
|
|
|
// Test a method call where the parameter `B` would (illegally) be
|
|
|
|
// inferred to a region bound in the method argument. If this program
|
|
|
|
// were accepted, then the closure passed to `s.f` could escape its
|
|
|
|
// argument.
|
|
|
|
|
|
|
|
struct S;
|
|
|
|
|
|
|
|
impl S {
|
2015-01-03 09:45:00 -06:00
|
|
|
fn f<B, F>(&self, _: F) where F: FnOnce(&i32) -> B {
|
2014-11-13 20:20:01 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let s = S;
|
2020-05-20 12:58:41 -05:00
|
|
|
s.f(|p| p) //~ ERROR lifetime may not live long enough
|
2014-11-13 20:20:01 -06:00
|
|
|
}
|