trait X<'a> where for<'b> >::U: Clone, { type U: ?Sized; fn f(&self, x: &Self::U) { ::clone(x); } } impl X<'_> for u32 //~ overflow evaluating the requirement `for<'b> u32: X<'b>` where for<'b> >::U: Clone, { type U = str; } fn main() { 1u32.f("abc"); }