kw invariant
Контекстное слово — тело data (§4.2)
Список слов: §1.4
Синтаксис
Member = Field | "embed" Type | "invariant" Expr ;Грамматика: Прил. A
Определяется в
- 4.2 data — Поле: видимость?
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 4.3 Конструирование и конструкторы — Литерал. T{ f1: e1, f2, ..base }
- 6.7 Контракты — requires проверяется при входе, ensures — при выходе (result — возвращаемое значение, old(e) — значение e на входе), invariant (§4.2) — посл
- 9.4 Декодирование и проверка — Отсутствует обязательное поле → DecodeError.Missing.
Примеры
pub(api) data User {
pub(api) id: UserId
pub(api) name: Name
pub(api) email: Email? @since(2)
role: Role = Role.User
createdAt: Time = now()
invariant name != "admin" || role == Role.Admin
}— 4.2 data
Связанные диагностики
unknown-field, bad-init, missing-field, must-close, positional-literal, sealed-literal, contract