blob: 50aecf46d6d13a03cf9dcc5a9a751ff6993f257c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
discard """
output: '''test created
test destroyed 0
1
2
3
4
Pony is dying!'''
cmd: '''nim c --newruntime $file'''
"""
# bug #4214
type
Data = object
data: string
rc: int
proc `=destroy`(d: var Data) =
dec d.rc
echo d.data, " destroyed ", d.rc
proc `=`(dst: var Data, src: Data) =
echo src.data, " copied"
dst.data = src.data & " (copy)"
dec dst.rc
inc dst.rc
proc initData(s: string): Data =
result = Data(data: s, rc: 1)
echo s, " created"
proc pointlessWrapper(s: string): Data =
result = initData(s)
proc main =
var x = pointlessWrapper"test"
when isMainModule:
main()
# bug #985
type
Pony = object
name: string
proc `=destroy`(o: var Pony) =
echo "Pony is dying!"
proc getPony: Pony =
result.name = "Sparkles"
iterator items(p: Pony): int =
for i in 1..4:
yield i
for x in getPony():
echo x
# XXX this needs to be enabled once top level statements
# produce destructor calls again.
#echo "Pony is dying!"
|