OxL Справочник OxL
РусскийEnglish

kw comptime

Зарезервированное слово

Список слов: §1.4

Синтаксис

ebnf
Fn          = [ "comptime" [ "literal" ] | "unsafe" ] "fn" Ident [ Generics ] "(" [ Params ] ")"
              [ "->" Type ] [ Effects ] [ Where ] { Contract } ( Block | "=>" Expr ) ;
ebnf
Primary     = Literal | Path | "it" | "self" | "(" Expr { "," Expr } ")" | ListLit | MapLit
            | StructLit | Lambda | Block | If | Match | For | While | Loop | Scope | Select | Query
            | "spawn" ( Postfix | Block ) | "await" Unary | "atomic" [ "(" Args ")" ] Block
            | "return" [ Expr ] | "fail" Expr | "yield" Expr | "respond" Expr | "break" [ Label ] [ Expr ]
            | "continue" [ Label ] | "emit" Path "(" Expr ")" | "unsafe" Block | "blocking" Block
            | "comptime" Block | "." Ident [ "(" [ Args ] ")" ] ;

Грамматика: Прил. A

Определяется в

Примеры

oxl
attr Audit { level: Level = Level.Info }

comptime fn Audit.apply(d: Decl, a: Audit) -> Decl | CompileError {
  d.wrapBody(body => quote { log.at($a.level, "call {$d.name}"); $body })
}

— 15.4 Пользовательские атрибуты и генерация кода

oxl
comptime fn toCsvRow<T>(x: &T) -> String {
  var out = String.new()
  inline for f in reflect(T).fields where f.visible {
    out.push("{x.[f]},")
  }
  out
}

— 15.2 Рефлексия

Связанные диагностики

comptime-error, not-comptime, impl-foreign-type, unknown-method, prefix-literal

См. также