error missing-override
What it means#
If an outer type declares a method with the same name as an open fn of an embedded type, it MUST say override and repeat the signature exactly (§4.7). Silent shadowing would change dispatch without the reader noticing.
Example#
data Animal { name: str }
impl Animal {
open fn speak() -> str => "..."
}
data Dog { embed Animal; breed: str }
impl Dog {
fn speak() -> str => "Woof" // <- missing-override
}error
missing-override
How to fix#
data Animal { name: str }
impl Animal {
open fn speak() -> str => "..."
}
data Dog { embed Animal; breed: str }
impl Dog {
override fn speak() -> str => "Woof"
}Add override, or rename the method if overriding was not intended.