123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- discard """
- output: '''
- 42
- 43
- 43
- 1
- 2
- 3
- 4
- '''
- """
- # xxx move to tests/async/tasyncintemplate.nim
- import asyncdispatch
- block: # bug #16159
- template foo() =
- proc temp(): Future[int] {.async.} = return 42
- proc tempVoid(): Future[void] {.async.} = echo await temp()
- foo()
- waitFor tempVoid()
- block: # aliasing `void`
- template foo() =
- type Foo = void
- proc temp(): Future[int] {.async.} = return 43
- proc tempVoid(): Future[Foo] {.async.} = echo await temp()
- proc tempVoid2() {.async.} = echo await temp()
- foo()
- waitFor tempVoid()
- waitFor tempVoid2()
- block: # sanity check
- template foo() =
- proc bad(): int {.async.} = discard
- doAssert not compiles(bad())
- block: # bug #16786
- block:
- proc main(a: int|string)=
- proc bar(b: int|string) = echo b
- bar(a)
- main(1)
- block:
- proc main(a: int) : Future[void] {.async.} =
- proc bar(b: int): Future[void] {.async.} = echo b
- await bar(a)
- waitFor main(2)
- block:
- proc main(a: int) : Future[void] {.async.} =
- proc bar(b: int | string): Future[void] {.async.} = echo b
- await bar(a)
- waitFor main(3)
- block:
- # bug
- proc main(a: int|string) =
- proc bar(b: int): Future[void] {.async.} = echo b
- waitFor bar(a)
- main(4)
|