Fixed yield in nkCheckedFieldExpr (#12429) [backport]
This commit is contained in:
parent
48975bb3e7
commit
1aed455e7c
2 changed files with 13 additions and 2 deletions
|
|
@ -683,7 +683,8 @@ proc lowerStmtListExprs(ctx: var Ctx, n: PNode, needsSplit: var bool): PNode =
|
||||||
n[0] = ex
|
n[0] = ex
|
||||||
result.add(n)
|
result.add(n)
|
||||||
|
|
||||||
of nkCast, nkHiddenStdConv, nkHiddenSubConv, nkConv, nkObjDownConv:
|
of nkCast, nkHiddenStdConv, nkHiddenSubConv, nkConv, nkObjDownConv,
|
||||||
|
nkDerefExpr, nkHiddenDeref:
|
||||||
var ns = false
|
var ns = false
|
||||||
for i in 0 ..< n.len:
|
for i in 0 ..< n.len:
|
||||||
n[i] = ctx.lowerStmtListExprs(n[i], ns)
|
n[i] = ctx.lowerStmtListExprs(n[i], ns)
|
||||||
|
|
@ -757,7 +758,7 @@ proc lowerStmtListExprs(ctx: var Ctx, n: PNode, needsSplit: var bool): PNode =
|
||||||
n[0] = newSymNode(ctx.g.getSysSym(n[0].info, "true"))
|
n[0] = newSymNode(ctx.g.getSysSym(n[0].info, "true"))
|
||||||
n[1] = newBody
|
n[1] = newBody
|
||||||
|
|
||||||
of nkDotExpr:
|
of nkDotExpr, nkCheckedFieldExpr:
|
||||||
var ns = false
|
var ns = false
|
||||||
n[0] = ctx.lowerStmtListExprs(n[0], ns)
|
n[0] = ctx.lowerStmtListExprs(n[0], ns)
|
||||||
if ns:
|
if ns:
|
||||||
|
|
|
||||||
|
|
@ -43,4 +43,14 @@ block: #8399
|
||||||
|
|
||||||
waitFor foo("$asd")
|
waitFor foo("$asd")
|
||||||
|
|
||||||
|
block: # nkCheckedFieldExpr
|
||||||
|
proc bar(): Future[JsonNode] {.async.} =
|
||||||
|
return newJInt(5)
|
||||||
|
|
||||||
|
proc foo() {.async.} =
|
||||||
|
let n = 10 + (await bar()).num
|
||||||
|
doAssert(n == 15)
|
||||||
|
|
||||||
|
waitFor foo()
|
||||||
|
|
||||||
echo "ok"
|
echo "ok"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue