2 fn get<'p, T : Test<'p>>(&self) -> T;
3 //~^ NOTE lifetimes in impl do not match this method in trait
7 fn new(buf: &'p mut [u8]) -> Self;
14 impl<'a> Test<'a> for Foo<'a> {
15 fn new(buf: &'a mut [u8]) -> Foo<'a> {
20 impl<'a> NoLifetime for Foo<'a> {
21 fn get<'p, T: Test<'a> + From<Foo<'a>>>(&self) -> T {
23 //~| NOTE lifetimes do not match method in trait
25 //~^ ERROR non-primitive cast: `Foo<'a>` as `T`
26 //~| NOTE an `as` expression can only be used to convert between primitive types