summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-07-09 09:40:53 +0200
committerAraq <rumpf_a@web.de>2019-07-09 11:38:00 +0200
commit2c2f2de6147698ee5939765b342edf0890286c4c (patch)
tree3d143c09acd7d42509c9ac756ab70bae9e0b5c18 /lib
parentf64179e7fe5703ec2045b869c9f381c01fb5dbd9 (diff)
downloadNim-2c2f2de6147698ee5939765b342edf0890286c4c.tar.gz
asyncmacro produces 'owned' types
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/asyncmacro.nim4
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))