123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- discard """
- cmd: "nim check --hints:off --warnings:off $file"
- action: "reject"
- nimout: '''
- tasync_noasync.nim(21, 10) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(25, 12) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(28, 10) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(31, 10) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(35, 10) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(38, 10) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- tasync_noasync.nim(40, 8) Error: Can only 'await' inside a proc marked as 'async'. Use 'waitFor' when calling an 'async' proc in a non-async scope instead
- '''
- """
- import async
- proc a {.async.} =
- discard
- # Bad await usage
- proc nonAsyncProc =
- await a()
- proc nestedNonAsyncProc {.async.} =
- proc nested =
- await a()
- iterator customIterator: int =
- await a()
- macro awaitInMacro =
- await a()
- type DummyRef = ref object of RootObj
- method awaitInMethod(_: DummyRef) {.base.} =
- await a()
- proc improperMultisync {.multisync.} =
- await a()
- await a()
- # if we overload a fallback handler to get
- # await only available within {.async.}
- # we would need `{.dirty.}` templates for await
|