diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2022-09-28 02:07:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-27 20:07:26 +0200 |
commit | 80e739f2bf5a3e40df7000566a9cbb9cfab29ac4 (patch) | |
tree | fb7cb6f3e4e275e31b0e253579a15c7df899176c /tests | |
parent | 3d2f0e2c7ce73299e57f2ebd5ee52822c3543554 (diff) | |
download | Nim-80e739f2bf5a3e40df7000566a9cbb9cfab29ac4.tar.gz |
fixes #19401; fixes #19402; rework Forward declaration and finalizer for ORC (#20295)
* 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
Diffstat (limited to 'tests')
-rw-r--r-- | tests/arc/t19401.nim | 32 | ||||
-rw-r--r-- | tests/arc/t19402.nim | 32 |
2 files changed, 64 insertions, 0 deletions
diff --git a/tests/arc/t19401.nim b/tests/arc/t19401.nim new file mode 100644 index 000000000..56702a4a2 --- /dev/null +++ b/tests/arc/t19401.nim @@ -0,0 +1,32 @@ +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() diff --git a/tests/arc/t19402.nim b/tests/arc/t19402.nim new file mode 100644 index 000000000..5ee6fc798 --- /dev/null +++ b/tests/arc/t19402.nim @@ -0,0 +1,32 @@ +discard """ + output: ''' +delete foo +delete foo +delete foo +''' + matrix: "--mm:arc" +""" + +type Foo = ref object of RootObj + 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() \ No newline at end of file |