1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
trait X<'a> where for<'b> <Self as X<'b>>::U: Clone, { type U: ?Sized; fn f(&self, x: &Self::U) { <Self::U>::clone(x); } } impl X<'_> for i32 { type U = str; //~^ ERROR the trait bound `str: Clone` } fn main() { 1i32.f("abc"); }