fixes a collect() bug reported on the forum (#15156) [backport:1.2]

This commit is contained in:
Andreas Rumpf
2020-08-04 12:45:15 +02:00
committed by GitHub
parent 2d494f42f3
commit 64aec6eb85
3 changed files with 12 additions and 2 deletions

View File

@@ -159,7 +159,7 @@ proc semIf(c: PContext, n: PNode; flags: TExprFlags): PNode =
if it.len == 2:
openScope(c)
it[0] = forceBool(c, semExprWithType(c, it[0]))
it[1] = semExprBranch(c, it[1])
it[1] = semExprBranch(c, it[1], flags)
typ = commonType(typ, it[1])
closeScope(c)
elif it.len == 1:

View File

@@ -11,7 +11,7 @@
## Nim's write tracking and also for the cursor inference.
## The algorithm is a reinvention / variation of Steensgaard's
## algorithm.
## The used algorithm is "union find" with path compression.
## The used data structure is "union find" with path compression.
import ast, types, lineinfos, options, msgs, renderer
from trees import getMagic

View File

@@ -394,3 +394,13 @@ when isMainModule:
of "bird": "word"
else: d
assert z == @["word", "word"]
proc tforum =
let ans = collect(newSeq):
for y in 0..10:
if y mod 5 == 2:
for x in 0..y:
x
tforum()