Extend E0106, E0261
Added an example that points out hardly obvious mistake one could make when writing impl for a new type.
This commit is contained in:
parent
2442823ef5
commit
c738e6042d
1 changed files with 22 additions and 0 deletions
|
|
@ -362,6 +362,10 @@ struct Foo1 { x: &bool }
|
|||
// ^ expected lifetime parameter
|
||||
struct Foo2<'a> { x: &'a bool } // correct
|
||||
|
||||
impl Foo2 { ... }
|
||||
// ^ expected lifetime parameter
|
||||
impl<'a> Foo2<'a> { ... } // correct
|
||||
|
||||
struct Bar1 { x: Foo2 }
|
||||
// ^^^^ expected lifetime parameter
|
||||
struct Bar2<'a> { x: Foo2<'a> } // correct
|
||||
|
|
@ -772,6 +776,24 @@ struct Foo<'a> {
|
|||
x: &'a str,
|
||||
}
|
||||
```
|
||||
|
||||
Implementations need their own lifetime declarations:
|
||||
|
||||
```
|
||||
// error, undeclared lifetime
|
||||
impl Foo<'a> {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Which are declared like this:
|
||||
|
||||
```
|
||||
// correct
|
||||
impl<'a> Foo<'a> {
|
||||
...
|
||||
}
|
||||
```
|
||||
"##,
|
||||
|
||||
E0262: r##"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue