summary refs log tree commit diff stats
path: root/tests/ccgbugs/twrongrefcounting.nim
blob: 8ebaf4058932e2307e5d80c26dac885c7935dfb2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
discard """
  output: '''ok'''
  cmd: "nim c -r --gc:refc -d:useGcAssert -d:useSysAssert -d:fulldebug -d:smokeCycles $file"
"""

# bug #9825
func empty(T: typedesc): T = discard
const emptyChunk = @(empty(array[10, byte]))

var lst: seq[seq[byte]]
lst.add emptyChunk

doAssert($lst == "@[@[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]")


# bug #6234
type
    Foo = ref object
        s: seq[Bar]
    Bar = ref object
        f: Foo

proc test() =
    var f = Foo.new()
    for i in 0 .. 5:
        f.s = @[]
        for j in 0 .. 5:
            var b = Bar.new()
            b.f = f
            f.s.add(b)

test()
echo "ok"