summary refs log tree commit diff stats
path: root/tests/closure/tclosure3.nim
blob: bb217387fb975f20f4c1dea0f1d9f56919829006 (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(): string {.closure.}] = @[]
    for i in 0 .. n-1:
      let ii = i
      s.add(proc(): string = 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()