enforce void for nkWhileStmt [backport: 2.0] (#21170)
enforce void for nkWhileStmt
This commit is contained in:
parent
86a6c90c9e
commit
9323cb7b2a
2 changed files with 11 additions and 1 deletions
|
|
@ -105,7 +105,6 @@ proc semWhile(c: PContext, n: PNode; flags: TExprFlags): PNode =
|
||||||
result.typ = n[1].typ
|
result.typ = n[1].typ
|
||||||
elif implicitlyDiscardable(n[1]):
|
elif implicitlyDiscardable(n[1]):
|
||||||
result[1].typ = c.enforceVoidContext
|
result[1].typ = c.enforceVoidContext
|
||||||
result.typ = c.enforceVoidContext
|
|
||||||
|
|
||||||
proc semProc(c: PContext, n: PNode): PNode
|
proc semProc(c: PContext, n: PNode): PNode
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,3 +99,14 @@ block: # bug #13583
|
||||||
let t = test
|
let t = test
|
||||||
doAssert t() == 12
|
doAssert t() == 12
|
||||||
|
|
||||||
|
block:
|
||||||
|
proc bar(): string {.discardable.} =
|
||||||
|
"15"
|
||||||
|
|
||||||
|
proc foo(): int =
|
||||||
|
while true:
|
||||||
|
raise newException(ValueError, "check")
|
||||||
|
12
|
||||||
|
|
||||||
|
doAssertRaises(ValueError):
|
||||||
|
doAssert foo() == 12
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue