Closed
Description
I have found that with a trait of the form
trait Foo {
type A = ();
fn get_a(&self) -> Option<Self::A> { None }
type B = ();
fn get_b(&self) -> Option<Self::B> { None }
}
impl Foo for () {
type A = ();
}
I get the following error message on nightly (as of the time of this post), but not on beta.
<anon>:9:5: 9:17 error: the following trait items need to be reimplemented as `A` was overridden: `get_a`, `B`, `get_b` [E0399]
<anon>:9 type A = ();
I can possibly understand get_a
needing to be reimplemented, but B
and get_b
as well?
I don't get the error message when types do not have defaults, like so:
trait Foo {
type A;
fn get_a(&self) -> Option<Self::A> { None }
type B = ();
fn get_b(&self) -> Option<Self::B> { None }
}
impl Foo for () {
type A = ();
}
Note that it no longer errors out saying that the methods need to be reimplemented.
Metadata
Metadata
Assignees
Labels
No labels