mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
47 lines
837 B
Nim
47 lines
837 B
Nim
discard """
|
|
exitcode: 0
|
|
output: "ok"
|
|
"""
|
|
|
|
import json, asyncdispatch
|
|
block: #6100
|
|
let done = newFuture[int]()
|
|
done.complete(1)
|
|
|
|
proc asyncSum: Future[int] {.async.} =
|
|
for _ in 1..10_000_000:
|
|
result += await done
|
|
|
|
let res = waitFor asyncSum()
|
|
doAssert(res == 10000000)
|
|
|
|
block: #7985
|
|
proc getData(): Future[JsonNode] {.async.} =
|
|
result = %*{"value": 1}
|
|
|
|
type
|
|
MyData = object
|
|
value: BiggestInt
|
|
|
|
proc main() {.async.} =
|
|
let data = to(await(getData()), MyData)
|
|
doAssert($data == "(value: 1)")
|
|
|
|
waitFor(main())
|
|
|
|
block: #8399
|
|
proc bar(): Future[string] {.async.} = discard
|
|
|
|
proc foo(line: string) {.async.} =
|
|
var res =
|
|
case line[0]
|
|
of '+', '-': @[]
|
|
of '$': (let x = await bar(); @[""])
|
|
else: @[]
|
|
|
|
doAssert(res == @[""])
|
|
|
|
waitFor foo("$asd")
|
|
|
|
echo "ok"
|