mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 22:10:33 +00:00
Fix void async in templates (#17562)
* Fix https://github.com/nim-lang/Nim/issues/16159 * Add test for async in template * Shorten the expression * Even shorter Co-authored-by: Clyybber <darkmine956@gmail.com>
This commit is contained in:
@@ -184,8 +184,9 @@ proc asyncSingleProc(prc: NimNode): NimNode =
|
||||
verifyReturnType(repr(returnType), returnType)
|
||||
|
||||
let subtypeIsVoid = returnType.kind == nnkEmpty or
|
||||
(baseType.kind == nnkIdent and returnType[1].eqIdent("void"))
|
||||
|
||||
(baseType.kind in {nnkIdent, nnkSym} and
|
||||
baseType.eqIdent("void"))
|
||||
|
||||
let futureVarIdents = getFutureVarIdents(prc.params)
|
||||
|
||||
var outerProcBody = newNimNode(nnkStmtList, prc.body)
|
||||
|
||||
12
tests/async/tasyncintemplate.nim
Normal file
12
tests/async/tasyncintemplate.nim
Normal file
@@ -0,0 +1,12 @@
|
||||
discard """
|
||||
output: 42
|
||||
"""
|
||||
|
||||
import asyncdispatch
|
||||
|
||||
template foo() =
|
||||
proc temp(): Future[int] {.async.} = return 42
|
||||
proc tempVoid(): Future[void] {.async.} = echo await temp()
|
||||
|
||||
foo()
|
||||
waitFor tempVoid()
|
||||
Reference in New Issue
Block a user