line编译指示

line pragma可用于影响带注释语句的行信息,如堆栈回溯中所示:

  1. template myassert*(cond: untyped, msg = "") =
  2. if not cond:
  3. # 更改'raise'语句的运行时行信息:
  4. {.line: instantiationInfo().}:
  5. raise newException(EAssertionFailed, msg)

如果 line 编译指示与参数一起使用,则参数需要是 tuple[filename: string, line: int] 。 如果在没有参数的情况下使用它,则使用 system.InstantiationInfo()