// This test should compile, as the lifetimes // in matches don't really matter. // // We currently use contravariance when checking the // type of match arms. trait Foo<'a> { const C: &'a u32; } impl<'a, T> Foo<'a> for T { const C: &'a u32 = &22; } fn foo<'a>(x: &'static u32) { match x { <() as Foo<'a>>::C => { } //~^ ERROR lifetime may not live long enough &_ => { } } } fn main() {}