diff options
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0195.md')
-rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0195.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0195.md b/compiler/rustc_error_codes/src/error_codes/E0195.md new file mode 100644 index 000000000..b8c313d41 --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0195.md @@ -0,0 +1,35 @@ +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! + } +} +``` |