blob: 0927148bf0657161886d76407e8fe90848f91f89 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
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
|