Files
Nim/tests/arc/tcomputedgotocopy.nim
Andreas Rumpf da4aa2e1fb renamed '=' to '=copy' [backport:1.2] (#15585)
* Assign hook name changed to `=copy`
* Adapt destructors.rst
* [nobackport] Duplicate tests for =copy hook
* Fix tests
* added a changelog entry

Co-authored-by: Clyybber <darkmine956@gmail.com>
2020-10-15 12:52:30 +02:00

42 lines
646 B
Nim

discard """
cmd: '''nim c --newruntime $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())