summary refs log blame commit diff stats
path: root/tests/vm/tcompiletimetable.nim
blob: f1d3ecd4e091f4ec79a2c26afef4e4a913679861 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                
               



                   

   







                         




















                                                       
discard """
  msg: '''2
3
4:2
  '''
"""

# bug #404

import macros, tables

var ZOOT{.compileTime.} = initTable[int, int](2)
var iii {.compiletime.} = 1

macro zoo:stmt=
  zoot[iii] = iii*2
  inc iii
  echo iii

zoo
zoo


macro tupleUnpack: stmt =
  var (y,z) = (4, 2)
  echo y, ":", z

tupleUnpack

# bug #903

import strtabs

var x {.compileTime.}: PStringTable

macro addStuff(stuff, body: expr): stmt {.immediate.} =
  result = newNimNode(nnkStmtList)

  if x.isNil:
    x = newStringTable(modeStyleInsensitive)
  x[$stuff] = ""

macro dump(): stmt =
  result = newNimNode(nnkStmtList)
  for y in x.keys: echo "Got ", y

addStuff("Hey"): echo "Hey"
addStuff("Hi"): echo "Hi"
dump()