// 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 rev_variant_struct_region { struct Foo<'a> { x: fn(&'a i32), } trait Trait<'a, 'b> { type Out; } impl<'a, 'b> Trait<'a, 'b> for usize { type Out = &'a Foo<'b>; //~ ERROR reference has a longer lifetime } } fn main() { }