Nonoverloadable 内置命令

出于实现简单性的原因,以下内置过程不能被重载(它们需要专门的语义检查):

  1. declared, defined, definedInScope, compiles, sizeof,
  2. is, shallowCopy, getAst, astToStr, spawn, procCall

因此,它们的行为更像关键字而不是普通的标识符;然而,与关键字不同的是,重定义可能会 shadow system模块中的定义。 从列表中,以下过程不应以点表示法 x.f 来编写,因为 x 在传递给 f 之前无法进行类型检查:

  1. declared, defined, definedInScope, compiles, getAst, astToStr