summary refs log tree commit diff stats
path: root/tests/template/tissue993.nim
blob: 552890bb48b2e528e1b240f22bdefe7f53f3cbcb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type PNode* = ref object of RootObj

template litNode(name, ty)  =
  type name* = ref object of PNode
    val*: ty
litNode PIntNode, int

import json

template withKey*(j: JsonNode; key: string; varname,
                  body: untyped): typed =
  if j.hasKey(key):
    let varname{.inject.}= j[key]
    block:
      body

var j = parsejson("{\"zzz\":1}")
withkey(j, "foo", x):
  echo(x)