| trait Trait { | |
| fn func1() -> Struct1<Self>; //~ ERROR E0277 | |
| fn func2<'a>() -> Struct2<'a, Self>; //~ ERROR E0277 | |
| fn func3() -> Struct3<Self>; //~ ERROR E0277 | |
| fn func4() -> Struct4<Self>; //~ ERROR E0277 | |
| } | |
| struct Struct1<T>{ | |
| _t: std::marker::PhantomData<*const T>, | |
| } | |
| struct Struct2<'a, T>{ | |
| _t: &'a T, | |
| } | |
| struct Struct3<T>{ | |
| _t: T, | |
| } | |
| struct X<T>(T); | |
| struct Struct4<T>{ | |
| _t: X<T>, | |
| } | |
| struct Struct5<T: ?Sized>{ | |
| _t: X<T>, //~ ERROR E0277 | |
| } | |
| fn main() {} |