diff options
author | Araq <rumpf_a@web.de> | 2019-07-09 09:40:53 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-07-09 11:38:00 +0200 |
commit | 2c2f2de6147698ee5939765b342edf0890286c4c (patch) | |
tree | 3d143c09acd7d42509c9ac756ab70bae9e0b5c18 /lib | |
parent | f64179e7fe5703ec2045b869c9f381c01fb5dbd9 (diff) | |
download | Nim-2c2f2de6147698ee5939765b342edf0890286c4c.tar.gz |
asyncmacro produces 'owned' types
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/asyncmacro.nim | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/pure/asyncmacro.nim b/lib/pure/asyncmacro.nim index 39b193118..f48a18afb 100644 --- a/lib/pure/asyncmacro.nim +++ b/lib/pure/asyncmacro.nim @@ -297,7 +297,7 @@ proc asyncSingleProc(prc: NimNode): NimNode {.compileTime.} = # -> complete(retFuture) procBody.add(newCall(newIdentNode("complete"), retFutureSym)) - var closureIterator = newProc(iteratorNameSym, [newIdentNode("FutureBase")], + var closureIterator = newProc(iteratorNameSym, [parseExpr("owned(FutureBase)")], procBody, nnkIteratorDef) closureIterator.pragma = newNimNode(nnkPragma, lineInfoFrom=prc.body) closureIterator.addPragma(newIdentNode("closure")) @@ -326,7 +326,7 @@ proc asyncSingleProc(prc: NimNode): NimNode {.compileTime.} = # Add discardable pragma. if returnType.kind == nnkEmpty: # Add Future[void] - result.params[0] = parseExpr("Future[void]") + result.params[0] = parseExpr("owned(Future[void])") if procBody.kind != nnkEmpty: result.body = outerProcBody #echo(treeRepr(result)) |