summary refs log tree commit diff stats
path: root/tests/run/tclosure3.nim
blob: b2748035bd2296b03027a9aa6587cd656eba0c1c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
discard """
  file: "tclosure3.nim"
  output: "success"
"""

proc main =
  const n = 30
  for iterations in 0..50_000:
    var s: seq[proc(): int {.closure.}] = @[]
    for i in 0 .. n-1:
      let ii = i
      s.add(proc(): int = return ii*ii)
    for i in 0 .. n-1:
      let val = s[i]()
      if val != i*i: echo "bug  ", val
    
    if getOccupiedMem() > 3000_000: quit("still a leak!")
  echo "success"

main()