Clarify the short explanation of E0207
- Use the terms from the reference <https://doc.rust-lang.org/reference/items/implementations.html> - Add code snippets to explain the terms
This commit is contained in:
parent
bdfdbcd44d
commit
35f1c2fd13
@ -1943,9 +1943,11 @@ E0207: r##"
|
||||
Any type parameter or lifetime parameter of an `impl` must meet at least one of
|
||||
the following criteria:
|
||||
|
||||
- it appears in the self type of the impl
|
||||
- for a trait impl, it appears in the trait reference
|
||||
- it is bound as an associated type
|
||||
- it appears in the _implementing type_ of the impl, e.g. `impl<T> Foo<T>`
|
||||
- for a trait impl, it appears in the _implemented trait_, e.g.
|
||||
`impl<T> SomeTrait<T> for Foo`
|
||||
- it is bound as an associated type, e.g. `impl<T, U> SomeTrait for T
|
||||
where T: AnotherTrait<AssocType=U>`
|
||||
|
||||
### Error example 1
|
||||
|
||||
@ -1964,9 +1966,9 @@ impl<T: Default> Foo {
|
||||
}
|
||||
```
|
||||
|
||||
The problem is that the parameter `T` does not appear in the self type (`Foo`)
|
||||
of the impl. In this case, we can fix the error by moving the type parameter
|
||||
from the `impl` to the method `get`:
|
||||
The problem is that the parameter `T` does not appear in the implementing type
|
||||
(`Foo`) of the impl. In this case, we can fix the error by moving the type
|
||||
parameter from the `impl` to the method `get`:
|
||||
|
||||
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user