This commit is contained in:
Andreas Rumpf
2020-06-09 20:39:26 +02:00
committed by GitHub
parent b3029ba213
commit 6085ad95ff
2 changed files with 21 additions and 2 deletions

View File

@@ -129,7 +129,7 @@
# break :stateLoop
import
ast, msgs, idents,
ast, astalgo, msgs, idents,
renderer, magicsys, lowerings, lambdalifting, modulegraphs, lineinfos
type
@@ -388,6 +388,10 @@ proc hasYieldsInExpressions(n: PNode): bool =
return true
else:
result = n.hasYields
of nkCast:
for i in 1..<n.len:
if n[i].hasYieldsInExpressions:
return true
else:
for c in n:
if c.hasYieldsInExpressions:
@@ -686,7 +690,7 @@ proc lowerStmtListExprs(ctx: var Ctx, n: PNode, needsSplit: var bool): PNode =
of nkCast, nkHiddenStdConv, nkHiddenSubConv, nkConv, nkObjDownConv,
nkDerefExpr, nkHiddenDeref:
var ns = false
for i in 0..<n.len:
for i in ord(n.kind == nkCast)..<n.len:
n[i] = ctx.lowerStmtListExprs(n[i], ns)
if ns:

View File

@@ -5,6 +5,7 @@ Specific except
Multiple idents in except
Multiple except branches
Multiple except branches 2
success
'''
targets: "c"
"""
@@ -101,3 +102,17 @@ assert y.waitFor() == 2
y = test4()
assert y.waitFor() == 2
# bug #14279
proc expandValue: Future[int] {.async.} =
return 0
proc a(b: int): Future[void] {.async.} =
return
proc b: Future[void] {.async.} =
await a(await expandValue())
echo "success"
waitFor(b())