1 trait Trait { func1() -> Struct1<Self>2 fn func1() -> Struct1<Self>; //~ ERROR E0277 func2<'a>() -> Struct2<'a, Self>3 fn func2<'a>() -> Struct2<'a, Self>; //~ ERROR E0277 func3() -> Struct3<Self>4 fn func3() -> Struct3<Self>; //~ ERROR E0277 func4() -> Struct4<Self>5 fn func4() -> Struct4<Self>; //~ ERROR E0277 6 } 7 8 struct Struct1<T>{ 9 _t: std::marker::PhantomData<*const T>, 10 } 11 struct Struct2<'a, T>{ 12 _t: &'a T, 13 } 14 struct Struct3<T>{ 15 _t: T, 16 } 17 18 struct X<T>(T); 19 20 struct Struct4<T>{ 21 _t: X<T>, 22 } 23 24 struct Struct5<T: ?Sized>{ 25 _t: X<T>, //~ ERROR E0277 26 } 27 main()28fn main() {} 29