12345678910111213141516171819202122 |
- 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:
- (proc () =
- 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()
|