mirror of
https://github.com/status-im/nim-chronos.git
synced 2025-01-18 23:31:13 +00:00
Produce an error when the result variable is used in void async procs (#117)
This commit is contained in:
parent
73de13ca7a
commit
0d4d0002b0
@ -203,6 +203,12 @@ proc asyncSingleProc(prc: NimNode): NimNode {.compileTime.} =
|
||||
futureVarIdents)
|
||||
# don't do anything with forward bodies (empty)
|
||||
if procBody.kind != nnkEmpty:
|
||||
if subtypeIsVoid:
|
||||
let resultTemplate = quote do:
|
||||
template result: auto {.used.} =
|
||||
{.fatal: "You should not reference the `result` variable inside a void async proc".}
|
||||
procBody = newStmtList(resultTemplate, procBody)
|
||||
|
||||
# fix #13899, `defer` should not escape its original scope
|
||||
procBody = newStmtList(newTree(nnkBlockStmt, newEmptyNode(), procBody))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user