Fixes regression introduced by #5739. Improves newNimNode proc.
This commit is contained in:
parent
d1daccac2f
commit
b2e649c093
2 changed files with 8 additions and 2 deletions
|
|
@ -225,7 +225,13 @@ proc `ident=`*(n: NimNode, val: NimIdent) {.magic: "NSetIdent", noSideEffect.}
|
||||||
proc `strVal=`*(n: NimNode, val: string) {.magic: "NSetStrVal", noSideEffect.}
|
proc `strVal=`*(n: NimNode, val: string) {.magic: "NSetStrVal", noSideEffect.}
|
||||||
|
|
||||||
proc newNimNode*(kind: NimNodeKind,
|
proc newNimNode*(kind: NimNodeKind,
|
||||||
n: NimNode=nil): NimNode {.magic: "NNewNimNode", noSideEffect.}
|
lineInfoFrom: NimNode=nil): NimNode
|
||||||
|
{.magic: "NNewNimNode", noSideEffect.}
|
||||||
|
## Creates a new AST node of the specified kind.
|
||||||
|
##
|
||||||
|
## The ``lineInfoFrom`` parameter is used for line information when the
|
||||||
|
## produced code crashes. You should ensure that it is set to a node that
|
||||||
|
## you are transforming.
|
||||||
|
|
||||||
proc copyNimNode*(n: NimNode): NimNode {.magic: "NCopyNimNode", noSideEffect.}
|
proc copyNimNode*(n: NimNode): NimNode {.magic: "NCopyNimNode", noSideEffect.}
|
||||||
proc copyNimTree*(n: NimNode): NimNode {.magic: "NCopyNimTree", noSideEffect.}
|
proc copyNimTree*(n: NimNode): NimNode {.magic: "NCopyNimTree", noSideEffect.}
|
||||||
|
|
|
||||||
|
|
@ -377,7 +377,7 @@ proc asyncSingleProc(prc: NimNode): NimNode {.compileTime.} =
|
||||||
|
|
||||||
var closureIterator = newProc(iteratorNameSym, [newIdentNode("FutureBase")],
|
var closureIterator = newProc(iteratorNameSym, [newIdentNode("FutureBase")],
|
||||||
procBody, nnkIteratorDef)
|
procBody, nnkIteratorDef)
|
||||||
closureIterator.pragma = copyNimTree(prc.pragma)
|
closureIterator.pragma = newNimNode(nnkPragma, lineInfoFrom=prc.body)
|
||||||
closureIterator.addPragma(newIdentNode("closure"))
|
closureIterator.addPragma(newIdentNode("closure"))
|
||||||
closureIterator.addPragma(newIdentNode("gcsafe"))
|
closureIterator.addPragma(newIdentNode("gcsafe"))
|
||||||
outerProcBody.add(closureIterator)
|
outerProcBody.add(closureIterator)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue