| The lifetime parameters of the method do not match the trait declaration. | |
| Erroneous code example: | |
| ```compile_fail,E0195 | |
| trait Trait { | |
| fn bar<'a,'b:'a>(x: &'a str, y: &'b str); | |
| } | |
| struct Foo; | |
| impl Trait for Foo { | |
| fn bar<'a,'b>(x: &'a str, y: &'b str) { | |
| // error: lifetime parameters or bounds on method `bar` | |
| // do not match the trait declaration | |
| } | |
| } | |
| ``` | |
| The lifetime constraint `'b` for `bar()` implementation does not match the | |
| trait declaration. Ensure lifetime declarations match exactly in both trait | |
| declaration and implementation. Example: | |
| ``` | |
| trait Trait { | |
| fn t<'a,'b:'a>(x: &'a str, y: &'b str); | |
| } | |
| struct Foo; | |
| impl Trait for Foo { | |
| fn t<'a,'b:'a>(x: &'a str, y: &'b str) { // ok! | |
| } | |
| } | |
| ``` |