// Test that a nominal type (like `Foo<'a>`) outlives `'b` if its // arguments (like `'a`) outlive `'b`. // // Rule OutlivesNominalType from RFC 1214. #![allow(dead_code)] mod variant_struct_type { struct Foo { x: fn(T) } trait Trait<'a, 'b> { type Out; } impl<'a, 'b> Trait<'a, 'b> for usize { type Out = &'a Foo<&'b i32>; //~ ERROR reference has a longer lifetime } } fn main() { }