1 trait Y<'a, T: ?Sized>
2 where
3     T: Y<'a, Self>,
4     for<'b> <Self as Y<'b, T>>::V: Clone,
5     for<'b> <T as Y<'b, Self>>::V: Clone,
6 {
7     type V: ?Sized;
g(&self, x: &Self::V)8     fn g(&self, x: &Self::V) {
9         <Self::V>::clone(x);
10     }
11 }
12 
13 impl<'a> Y<'a, u8> for u8 {
14     type V = str;
15     //~^ ERROR the trait bound `str: Clone` is not satisfied
16 }
17 
main()18 fn main() {
19     1u8.g("abc");
20 }
21