rust/tests/ui/regions/regions-escape-method.fixed
Esteban Küber a2298a6f19 Do not ICE when suggesting dereferencing closure arg
Account for `for` lifetimes when constructing closure to see if dereferencing the return value would be valid.

Fix #125634, fix #124563.
2024-06-24 03:39:54 +00:00

18 lines
410 B
Rust

// 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.
//@ run-rustfix
struct S;
impl S {
fn f<B, F>(&self, _: F) where F: FnOnce(&i32) -> B {
}
}
fn main() {
let s = S;
s.f(|p| *p) //~ ERROR lifetime may not live long enough
}