12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- discard """
- output:'''0
- 1
- 2
- 3'''
- """
- import macros
- # {.reorder: on .}
- {.experimental: "codeReordering".}
- echo foo(-1)
- echo callWithFoo(0)
- echo(CA+CD)
- echo useTypes(TA(x:TB(x:1)), 2)
- second(0)
- template callWithFoo(arg: untyped): untyped =
- foo(arg)
- proc first(i: int): void
- proc second(i: int): void =
- make(first)
- first(i)
- proc useTypes(a: TA, d: TD): int =
- result = a.x.x+d
- type
- TDoubleCyclic = ref object
- x: TCyclicA
- y: TCyclicB
- type
- TCyclicA = ref object
- x: TDoubleCyclic
- type
- TCyclicB = ref object
- x: TDoubleCyclic
- const
- CA = 1
- CB = CC
- type
- TA = object
- x: TB
- TC = type(CC)
- TD = type(CA)
- const
- CC = 1
- CD = CB
- type
- TB = object
- x: TC
- proc foo(x: int): int =
- result = bar(x)
- proc bar(x: int): int =
- result = x+1
- macro make(arg: untyped): untyped =
- ss &= arg.repr
- ss &= " "
- discard
- proc first(i: int): void =
- make(second)
- var ss {.compileTime.}: string = ""
|