summary refs log tree commit diff stats
path: root/tests/compile/tmacro2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/compile/tmacro2.nim')
-rw-r--r--tests/compile/tmacro2.nim59
1 files changed, 0 insertions, 59 deletions
diff --git a/tests/compile/tmacro2.nim b/tests/compile/tmacro2.nim
deleted file mode 100644
index 39324e497..000000000
--- a/tests/compile/tmacro2.nim
+++ /dev/null
@@ -1,59 +0,0 @@
-import macros,json
-
-var decls{.compileTime.}: seq[PNimrodNode] = @[]
-var impls{.compileTime.}: seq[PNimrodNode] = @[]
-
-macro importImpl_forward(name, returns): stmt {.immediate.} =
-  result = newNimNode(nnkEmpty)
-  var func_name = newNimNode(nnkAccQuoted)
-  func_name.add newIdentNode("import")
-  func_name.add name
-
-  var res = newNimNode(nnkProcDef)
-  res.add newNimNode(nnkPostfix)
-  res[0].add newIdentNode("*")
-  res[0].add func_name
-  res.add newNimNode(nnkEmpty)
-  res.add newNimNode(nnkEmpty)
-  res.add newNimNode(nnkFormalParams)
-  res[3].add returns
-  var p1 = newNimNode(nnkIdentDefs)
-  p1.add newIdentNode("dat")
-  p1.add newIdentNOde("PJsonNode")
-  p1.add newNimNode(nnkEmpty)
-  res[3].add p1
-  var p2 = newNimNode(nnkIdentDefs)
-  p2.add newIdentNode("errors")
-  p2.add newNimNode(nnkVarTy)
-  p2.add newNimNode(nnkEmpty)
-  p2[1].add newNimNode(nnkBracketExpr)
-  p2[1][0].add newIdentNode("seq")
-  p2[1][0].add newIdentNode("string")
-  res[3].add p2
-
-  res.add newNimNode(nnkEmpty)
-  res.add newNimNode(nnkEmpty)
-  res.add newNimNode(nnkEmpty)
-
-  decls.add res
-  echo(repr(res))
-
-macro importImpl(name, returns: expr, body: stmt): stmt {.immediate.} = 
-  #var res = getAST(importImpl_forward(name, returns))
-  discard getAST(importImpl_forward(name, returns))
-  var res = copyNimTree(decls[decls.high])
-  res[6] = body
-  echo repr(res)
-  impls.add res
-
-macro okayy:stmt =
-  result = newNimNode(nnkStmtList)
-  for node in decls: result.add node
-  for node in impls: result.add node
-
-importimpl(Item, int):
-  echo 42
-importImpl(Foo, int16):
-  echo 77
-
-okayy
\ No newline at end of file