kw override
Зарезервированное слово
Список слов: §1.4
Синтаксис
ImplMember = { Attr } [ Vis ] ( Receiver ( "fn" | "op" ) Sig ( Block | "=>" Expr )
| "override" "fn" Sig ( Block | "=>" Expr ) | "open" "fn" Sig ( Block | "=>" Expr )
| "init" Sig ( Block | "=>" Expr ) | "dep" Ident ":" Type | Rpc | Const ) ;Грамматика: Прил. A
Определяется в
- 4.7 Встраивание и переопределение — Наследования реализации нет.
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
Примеры
data Animal { name: str }
impl Animal {
open fn speak() -> str => "..."
fn hello() -> str => "I am {name}: {speak()}"
}
data Dog { embed Animal; breed: str }
impl Dog { override fn speak() -> str => "Woof, {super.speak()}" }
Dog{ name: "Rex", breed: "lab" }.hello() // "I am Rex: Woof, ..."— 4.7 Встраивание и переопределение
Связанные диагностики
ambiguous-embed, missing-override, override-without-open