Improve E0046
This commit is contained in:
@@ -401,10 +401,35 @@ extern "C" {
|
|||||||
"##,
|
"##,
|
||||||
|
|
||||||
E0046: r##"
|
E0046: r##"
|
||||||
|
Items are missing in a trait implementation. Erroneous code example:
|
||||||
|
|
||||||
|
```
|
||||||
|
trait Foo {
|
||||||
|
fn foo();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Bar;
|
||||||
|
|
||||||
|
impl Foo for Bar {}
|
||||||
|
// error: not all trait items implemented, missing: `foo`
|
||||||
|
```
|
||||||
|
|
||||||
When trying to make some type implement a trait `Foo`, you must, at minimum,
|
When trying to make some type implement a trait `Foo`, you must, at minimum,
|
||||||
provide implementations for all of `Foo`'s required methods (meaning the
|
provide implementations for all of `Foo`'s required methods (meaning the
|
||||||
methods that do not have default implementations), as well as any required
|
methods that do not have default implementations), as well as any required
|
||||||
trait items like associated types or constants.
|
trait items like associated types or constants. Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
trait Foo {
|
||||||
|
fn foo();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Bar;
|
||||||
|
|
||||||
|
impl Foo for Bar {
|
||||||
|
fn foo() {} // ok!
|
||||||
|
}
|
||||||
|
```
|
||||||
"##,
|
"##,
|
||||||
|
|
||||||
E0049: r##"
|
E0049: r##"
|
||||||
|
|||||||
Reference in New Issue
Block a user