diff options
| author | purple-ice <jaidy379@gmail.com> | 2019-01-04 13:00:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-04 13:00:26 +0200 |
| commit | adadefd8741d84ebfb5884fbd12f3202cd6fdb4f (patch) | |
| tree | 0553528c9078d56ff4ce34dc8df80b16aea4d47e /src | |
| parent | c738e6042d2925bbfb045982fabe1f902f8b7c72 (diff) | |
| download | rust-adadefd8741d84ebfb5884fbd12f3202cd6fdb4f.tar.gz rust-adadefd8741d84ebfb5884fbd12f3202cd6fdb4f.zip | |
Fix changes for E0106, E0261
Replaced impl block dock with suggested one and made sure that blocks compile.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/diagnostics.rs | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index 50beacf3e8c..dd5144b1568 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -362,9 +362,9 @@ struct Foo1 { x: &bool } // ^ expected lifetime parameter struct Foo2<'a> { x: &'a bool } // correct -impl Foo2 { ... } +impl Foo2 {} // ^ expected lifetime parameter -impl<'a> Foo2<'a> { ... } // correct +impl<'a> Foo2<'a> {} // correct struct Bar1 { x: Foo2 } // ^^^^ expected lifetime parameter @@ -777,21 +777,32 @@ struct Foo<'a> { } ``` -Implementations need their own lifetime declarations: +Impl blocks declare lifetime parameters separately. You need to add lifetime +parameters to an impl block if you're implementing a type that has a lifetime +parameter of its own. +For example: -``` -// error, undeclared lifetime +```compile_fail,E0261 +// error, use of undeclared lifetime name `'a` impl Foo<'a> { - ... + fn foo<'a>(x: &'a str) {} +} + +struct Foo<'a> { + x: &'a str, } ``` -Which are declared like this: +This is fixed by declaring impl block like this: ``` // correct impl<'a> Foo<'a> { - ... + fn foo(x: &'a str) {} +} + +struct Foo<'a> { + x: &'a str, } ``` "##, |
