summary refs log blame commit diff stats
path: root/tests/ccgbugs/tobjconstr_bad_aliasing.nim
blob: ea51ecacb6706596e032c1f17c613e86ea2a35d2 (plain) (tree)

























                                                                                               
discard """
  output: '''(10, (20, ))'''
"""

import strutils, sequtils

# bug #668

type
  TThing = ref object
    data: int
    children: seq[TThing]

proc `$`(t: TThing): string =
  result = "($1, $2)" % @[$t.data, join(map(t.children, proc(th: TThing): string = $th), ", ")]

proc somethingelse(): seq[TThing] =
  result = @[TThing(data: 20, children: @[])]

proc dosomething(): seq[TThing] =
  result = somethingelse()

  result = @[TThing(data: 10, children: result)]

when isMainModule:
  echo($dosomething()[0])