Fix #1170.
This commit is contained in:
parent
05712fe805
commit
b1c865a656
2 changed files with 41 additions and 1 deletions
|
|
@ -869,7 +869,8 @@ proc processBody(node, retFutureSym: PNimrodNode,
|
||||||
else: discard
|
else: discard
|
||||||
of nnkDiscardStmt:
|
of nnkDiscardStmt:
|
||||||
# discard await x
|
# discard await x
|
||||||
if node[0][0].kind == nnkIdent and node[0][0].ident == !"await":
|
if node[0].kind != nnkEmpty and node[0][0].kind == nnkIdent and
|
||||||
|
node[0][0].ident == !"await":
|
||||||
var newDiscard = node
|
var newDiscard = node
|
||||||
createVar("futureDiscard_" & $toStrLit(node[0][1]), node[0][1],
|
createVar("futureDiscard_" & $toStrLit(node[0][1]), node[0][1],
|
||||||
newDiscard[0], newDiscard)
|
newDiscard[0], newDiscard)
|
||||||
|
|
|
||||||
39
tests/async/tasyncdiscard.nim
Normal file
39
tests/async/tasyncdiscard.nim
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
discard """
|
||||||
|
output: '''
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
1
|
||||||
|
2
|
||||||
|
1
|
||||||
|
6
|
||||||
|
'''
|
||||||
|
"""
|
||||||
|
import asyncio, asyncdispatch, asyncnet
|
||||||
|
|
||||||
|
proc main {.async.} =
|
||||||
|
proc f: PFuture[int] {.async.} =
|
||||||
|
discard
|
||||||
|
echo 1
|
||||||
|
discard
|
||||||
|
result = 2
|
||||||
|
discard
|
||||||
|
|
||||||
|
let x = await f()
|
||||||
|
echo x
|
||||||
|
echo 3
|
||||||
|
|
||||||
|
proc g: PFuture[int] {.async.} =
|
||||||
|
discard
|
||||||
|
echo 4
|
||||||
|
discard
|
||||||
|
result = 6
|
||||||
|
discard
|
||||||
|
echo await f()
|
||||||
|
discard await f()
|
||||||
|
|
||||||
|
discard await g()
|
||||||
|
echo 6
|
||||||
|
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue