| // Tests that you can use a fn lifetime parameter as part of | |
| // the value for a type parameter in a bound. | |
| trait GetRef<'a> { | |
| fn get(&self) -> &'a isize; | |
| } | |
| struct Box<'a> { | |
| t: &'a isize | |
| } | |
| impl<'a> GetRef<'a> for Box<'a> { | |
| fn get(&self) -> &'a isize { | |
| self.t | |
| } | |
| } | |
| impl<'a> Box<'a> { | |
| fn or<'b,G:GetRef<'b>>(&self, g2: G) -> &'a isize { | |
| g2.get() | |
| //~^ ERROR lifetime may not live long enough | |
| } | |
| } | |
| fn main() { | |
| } |