closes #26064 and #26063; adds test cases (#26072)

closes #26064
closes #26063
This commit is contained in:
ringabout
2026-08-04 14:20:13 +08:00
committed by GitHub
parent 5a0e4ff6b1
commit 7a1e162b0c

44
tests/ccgbugs/t26063.nim Normal file
View File

@@ -0,0 +1,44 @@
discard """
matrix: "--mm:refc; --mm:orc"
output: '''
ok
ok
'''
"""
block:
type Node = object
children: seq[Node]
proc buildMoved(n: var Node): Node =
Node(children: move(n.children[0].children))
proc actMoved(n: var Node) =
n.children[0] = Node(children: @[buildMoved(n)])
doAssert n.children[0].children.len == 1
proc main =
var a = Node(children: @[Node(children: @[Node()])])
actMoved(a)
doAssert a.children[0].children.len == 1
main()
echo "ok"
block:
type Node = object
children: seq[Node]
proc buildCopied(n: var Node): Node =
let kids = n.children[0].children
Node(children: kids)
proc actCopied(n: var Node) =
n.children[0] = Node(children: @[buildCopied(n)])
proc main =
var b = Node(children: @[Node(children: @[Node()])])
actCopied(b)
doAssert b.children[0].children.len == 1
main()
echo "ok"