mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
* fixes #19401; fixes #19402; rework Forward declaration and finalizer for ORC * add more tests * give it a name * make more tests * fixes tests * hidden addr for cpp * move code to a function
33 lines
489 B
Nim
33 lines
489 B
Nim
discard """
|
|
output: '''
|
|
delete foo
|
|
delete foo
|
|
delete foo
|
|
'''
|
|
matrix: "--mm:arc"
|
|
"""
|
|
|
|
type Foo = ref object
|
|
data: int
|
|
proc delete(self: Foo)
|
|
proc newFoo: Foo =
|
|
let x = 12
|
|
discard x
|
|
new(result, delete)
|
|
result.data = x
|
|
proc delete(self: Foo) =
|
|
doAssert self.data == 12
|
|
echo("delete foo")
|
|
|
|
if isMainModule:
|
|
proc test() =
|
|
let x1 = newFoo()
|
|
let x2 = newFoo()
|
|
discard x1
|
|
discard x2
|
|
var x3: Foo
|
|
new(x3, delete)
|
|
x3.data = 12
|
|
discard x3
|
|
test()
|