
Previously, the cycle was broken by inserting an unsafe.Pointer type in some places. This is of course incorrect, and makes debugging harder. However, LLVM provides a way to make temporary nodes that are later replaced, exactly for this purpose. This commit uses those temporary metadata nodes to allow such recursive types.
12 строки
151 Б
Text
12 строки
151 Б
Text
test0
|
|
test1 1
|
|
test2 1 2
|
|
test3 1 2 3
|
|
test4 1 2 3 4
|
|
test4b 1 2 3 4
|
|
test4bp 1 2 3 4
|
|
test5 1 2 3
|
|
test6 foo 3 5
|
|
test7 (0:nil) 8
|
|
test8 2 3 12 13 6
|
|
test9 nil
|