// Regression test for #129021. trait ToArg { type Arg; } impl ToArg for U { type Arg = T; } fn extend_inner<'a, 'b>(x: &'a str) -> <&'b &'a () as ToArg<&'b str>>::Arg { x } fn extend<'a, 'b>(x: &'a str) -> &'b str { (extend_inner as fn(_) -> _)(x) //~^ ERROR lifetime may not live long enough } fn main() { let y = extend(&String::from("Hello World")); println!("{}", y); }