blob: 575dfafe15efc4dc9e17b07011560a114d027133 [file] [log] [blame]
// Test that the compiler checks that arbitrary region bounds declared
// in the trait must be satisfied on the impl. Issue #20890.
trait Foo<'a> {
type Value: 'a;
fn dummy(&'a self) {}
}
impl<'a> Foo<'a> for &'a i16 {
// OK.
type Value = &'a i32;
}
impl<'a> Foo<'static> for &'a i32 {
type Value = &'a i32;
//~^ ERROR the type `&'a i32` does not fulfill the required lifetime
}
impl<'a, 'b> Foo<'b> for &'a i64 {
type Value = &'a i32;
//~^ ERROR the type `&'a i32` does not fulfill the required lifetime
}
fn main() {}