kw type
Зарезервированное слово
Список слов: §1.4
Синтаксис
IMember = "embed" Type | "type" Ident [ "=" Type ] | Receiver "fn" Sig [ "=>" Expr | Block ] ;TypeAlias = "type" Ident [ Generics ] "=" ( [ "distinct" ] Type [ "where" Expr ] ) ;Грамматика: Прил. A
Определяется в
- 3.6 Псевдонимы, новые и уточнённые типы — distinct T создаёт новый номинальный тип с представлением T.
- 15.1 comptime — comptime fn выполняется только при компиляции; comptime { …
- 6.5 Ошибки — Исключений нет. Ошибка — значение типа, помеченного @error, возвращаемое через объединение.
- 15.2 Рефлексия — reflect(T) -> TypeInfo (только comptime)
- 1.3 Идентификаторы — Идентификатор: XID_Start | "_", затем XID_Continue* (Unicode UAX #31).
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 4.6 Интерфейсы — Интерфейсы структурные
Примеры
type Bytes2 = [u8; 2] // псевдоним, тот же тип
type UserId = distinct u64 // новый тип, без неявных приведений
type Port = u16 where 1..=65535 // уточнённый тип
type Name = str where len(1..=64)
type Email = str where matches(re".+@.+\..+")— 3.6 Псевдонимы, новые и уточнённые типы
type NetError = Timeout | Unavailable | Cancelled | AccessDenied | ProtocolErrorСвязанные диагностики
refinement-violated, comptime-error, not-comptime, fail-type, question-context, unhandled-error, bad-label, explicit-interface, interface-not-satisfied