// Check that we validate associated type bounds for trait objects trait X<'a> { type Y: Into<&'static str> + From<&'a str>; } fn f<'a, T: X<'a> + ?Sized>(s: &'a str) -> &'static str { T::Y::from(s).into() } pub fn main() { let z; { let s = String::from("abcdef"); z = f::>(&s); //~^ ERROR `s` does not live long enough } println!("{}", z) }