Files
Nim/tests/arc/tcomputedgotocopy.nim
flywind e1cc3b83fb deprecate newruntime (#17245)
* deprecate newruntime
* tests
* Update compiler/commands.nim
2021-03-04 19:33:16 +01:00

42 lines
642 B
Nim

discard """
cmd: '''nim c --gc:arc $file'''
output: '''2
2'''
"""
type
ObjWithDestructor = object
a: int
proc `=destroy`(self: var ObjWithDestructor) =
echo "destroyed"
proc `=copy`(self: var ObjWithDestructor, other: ObjWithDestructor) =
echo "copied"
proc test(a: range[0..1], arg: ObjWithDestructor) =
var iteration = 0
while true:
{.computedGoto.}
let
b = int(a) * 2
c = a
d = arg
e = arg
discard c
discard d
discard e
inc iteration
case a
of 0:
assert false
of 1:
echo b
if iteration == 2:
break
test(1, ObjWithDestructor())