parent
46ce797231
commit
69755542f4
2 changed files with 58 additions and 3 deletions
51
tests/macros/tnewproc.nim
Normal file
51
tests/macros/tnewproc.nim
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import macros
|
||||
|
||||
macro test(a: untyped): untyped =
|
||||
# proc hello*(x: int = 3, y: float32): int {.inline.} = discard
|
||||
let
|
||||
nameNode = nnkPostfix.newTree(
|
||||
newIdentNode("*"),
|
||||
newIdentNode("hello")
|
||||
)
|
||||
params = @[
|
||||
newIdentNode("int"),
|
||||
nnkIdentDefs.newTree(
|
||||
newIdentNode("x"),
|
||||
newIdentNode("int"),
|
||||
newLit(3)
|
||||
),
|
||||
nnkIdentDefs.newTree(
|
||||
newIdentNode("y"),
|
||||
newIdentNode("float32"),
|
||||
newEmptyNode()
|
||||
)
|
||||
]
|
||||
paramsNode = nnkFormalParams.newTree(params)
|
||||
pragmasNode = nnkPragma.newTree(
|
||||
newIdentNode("inline")
|
||||
)
|
||||
bodyNode = nnkStmtList.newTree(
|
||||
nnkDiscardStmt.newTree(
|
||||
newEmptyNode()
|
||||
)
|
||||
)
|
||||
|
||||
var
|
||||
expected = nnkProcDef.newTree(
|
||||
nameNode,
|
||||
newEmptyNode(),
|
||||
newEmptyNode(),
|
||||
paramsNode,
|
||||
pragmasNode,
|
||||
newEmptyNode(),
|
||||
bodyNode
|
||||
)
|
||||
|
||||
doAssert expected == newProc(name=nameNode, params=params,
|
||||
body = bodyNode, pragmas=pragmasNode)
|
||||
expected.pragma = newEmptyNode()
|
||||
doAssert expected == newProc(name=nameNode, params=params,
|
||||
body = bodyNode)
|
||||
|
||||
test:
|
||||
42
|
||||
Loading…
Add table
Add a link
Reference in a new issue