// 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() {} |