diff options
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tinvalid_rebind.nim | 15 | ||||
-rw-r--r-- | tests/destructor/topttree.nim | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/tests/destructor/tinvalid_rebind.nim b/tests/destructor/tinvalid_rebind.nim new file mode 100644 index 000000000..0f15c8f9e --- /dev/null +++ b/tests/destructor/tinvalid_rebind.nim @@ -0,0 +1,15 @@ +discard """ +joinable: false +cmd: "nim check $file" +errormsg: "cannot bind another '=destroy' to: Foo; previous declaration was constructed here implicitly: tinvalid_rebind.nim(12, 7)" +line: 14 +""" + +type + Foo[T] = object + +proc main = + var f: Foo[int] + +proc `=destroy`[T](f: var Foo[T]) = + discard diff --git a/tests/destructor/topttree.nim b/tests/destructor/topttree.nim index 90ac6fa27..fa5495689 100644 --- a/tests/destructor/topttree.nim +++ b/tests/destructor/topttree.nim @@ -22,6 +22,7 @@ var proc `=destroy`*[T](x: var opt[T]) = if x.data != nil: + mixin `=destroy` when not supportsCopyMem(T): `=destroy`(x.data[]) dealloc(x.data) |