1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// check-pass use std::borrow::Cow; enum _Recursive<'a> where Self: ToOwned<Owned=Box<Self>> { Variant(MyCow<'a, _Recursive<'a>>), } pub struct Wrapper<T>(T); pub struct MyCow<'a, T: ToOwned<Owned=Box<T>> + 'a>(Wrapper<Cow<'a, T>>); fn main() {}