Topazdocs
Политика языка

Запрещённые и отложенные формы

Каноническая грамматика, семантика, ограничения и отложенные границы: Запрещённые и отложенные формы.

Реестр запретов — часть контракта: знакомый синтаксис JavaScript, Python, Rust и ранних черновиков Topaz не должен молча становиться вторым диалектом.

Политика

Канонический код использует let mut, Array<T>, (T) -> U, ...args: T, list rest ..rest, лямбды, registry-tagged двойные шаблоны, постфиксный Result ?, зафиксированные import/inline export и явный concurrent. Форма вне SPEC или запрещённая профилем не принимается лишь потому, что существует в целевом языке.

Определённое поведение

Shared checker должен отклонять forbidden shape до выбора backend. Если функция есть в SPEC, но исключена профилем, как composition в public docs, активную поверхность задаёт профиль. Если backend не имеет evidence для принятой формы, он явно отказывает или оставляет её вне claim, а не переосмысливает source.

Ограничения и явный отказ

Запрещённые семейства включают альтернативные binding/operator spellings, string indexing/slicing, legacy collection/function/variadic types, неверный pattern rest, JavaScript spread, Rust ownership/receiver/interop tokens, anonymous function expressions, backticks и ${...}, user template tags, assert/try/panic, re-export, неверные explicit generics/bounds, расширенные nominal/protocol, loop/comprehension/resource формы, bitwise, async/await и catchable faults.

Отложенная граница

Отложенная возможность не считается частично поддерживаемой. API графем, HTML- и пользовательские шаблоны, обобщения высших рангов, широкий протокольный вызов, повторный экспорт пакетов, общий синтаксис итерации и расширения, асинхронность, отмена и перехват ошибок выполнения останутся недоступны, пока будущая версия языка не примет и не опишет их.

Пример

TOPAZ
let mut count = 0
let values: Array<int> = []
let transform: (int) -> int = value => value + 1

match values {
    case [head, ..tail] => { count = transform(head) }
    case [] => { count = 0 }
}

Связанные правила