|
fn main() {
|
|
test::<FooS>(&mut 42); //~ ERROR implementation of `Foo` is not general enough
|
|
}
|
|
|
|
trait Foo<'a> {}
|
|
|
|
struct FooS<'a> {
|
|
data: &'a mut u32,
|
|
}
|
|
|
|
impl<'a, 'b: 'a> Foo<'b> for FooS<'a> {}
|
|
|
|
fn test<'a, F>(data: &'a mut u32) where F: for<'b> Foo<'b> {}
|