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()28 fn main() {}
29