Nim/tests/arc/topt_refcursors.nim
Clyybber 38d82795da
Fix #16437 (#17277)
* Fix #16437

* Fix

* Small cleanup
2021-03-06 22:35:02 +01:00

45 lines
800 B
Nim

discard """
output: ''''''
cmd: '''nim c --gc:arc --expandArc:traverse --hint:Performance:off $file'''
nimout: '''--expandArc: traverse
var
it_cursor
jt_cursor
it_cursor = root
block :tmp:
while (
not (it_cursor == nil)):
echo [it_cursor.s]
it_cursor = it_cursor.ri
jt_cursor = root
block :tmp_1:
while (
not (jt_cursor == nil)):
var ri_1_cursor
ri_1_cursor = jt_cursor.ri
echo [jt_cursor.s]
jt_cursor = ri_1_cursor
-- end of expandArc ------------------------'''
"""
type
Node = ref object
le, ri: Node
s: string
proc traverse(root: Node) =
var it = root
while it != nil:
echo it.s
it = it.ri
var jt = root
while jt != nil:
let ri = jt.ri
echo jt.s
jt = ri
traverse(nil)
# XXX: This optimization is not sound