// Various examples of structs whose fields are not well-formed. #![allow(dead_code)] trait Trait<'a, T> { type Out; } trait Trait1<'a, 'b, T> { type Out; } impl<'a, T> Trait<'a, T> for usize { type Out = &'a T; //~ ERROR `T` may not live long enough } struct RefOk<'a, T:'a> { field: &'a T } impl<'a, T> Trait<'a, T> for u32 { type Out = RefOk<'a, T>; //~ ERROR `T` may not live long enough } impl<'a, 'b, T> Trait1<'a, 'b, T> for u32 { type Out = &'a &'b T; //~ ERROR reference has a longer lifetime than the data } fn main() { }