Resolve a macro bug

This commit is contained in:
Alexander Ivanov 2017-05-18 10:01:02 +03:00
commit 084a1988c8

View file

@ -101,20 +101,22 @@ proc tcall2(n, tmpContext: NimNode): NimNode =
result = n result = n
macro buildHtml*(tag, children: untyped): VNode = macro buildHtml*(tag, children: untyped): VNode =
expectKind children, nnkDo let kids = newProc(procType=nnkDo, body=children)
expectKind kids, nnkDo
var call: NimNode var call: NimNode
if tag.kind in nnkCallKinds: if tag.kind in nnkCallKinds:
call = tag call = tag
else: else:
call = newCall(tag) call = newCall(tag)
call.add body(children) call.add body(kids)
result = tcall2(call, nil) result = tcall2(call, nil)
when defined(debugKaraxDsl): when defined(debugKaraxDsl):
echo repr result echo repr result
macro buildHtml*(children: untyped): VNode = macro buildHtml*(children: untyped): VNode =
expectKind children, nnkDo let kids = newProc(procType=nnkDo, body=children)
result = tcall2(body(children), nil) expectKind kids, nnkDo
result = tcall2(body(kids), nil)
when defined(debugKaraxDsl): when defined(debugKaraxDsl):
echo repr result echo repr result