summary refs log tree commit diff stats
path: root/tests/destructor
diff options
context:
space:
mode:
authorLemonBoy <LemonBoy@users.noreply.github.com>2019-02-23 14:03:32 +0100
committerAndreas Rumpf <rumpf_a@web.de>2019-02-23 14:03:32 +0100
commitf39aa1b40bd617e5ac13f67b38548e91d49bf107 (patch)
treebdabf3b37c0ced4514f1fe78d56c0ed9a2f81efa /tests/destructor
parent988412905837271ad8d8502e5337381f8e9624ce (diff)
downloadNim-f39aa1b40bd617e5ac13f67b38548e91d49bf107.tar.gz
discard destroys its argument in-place (#9478)
Diffstat (limited to 'tests/destructor')
-rw-r--r--tests/destructor/tdiscard.nim18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/destructor/tdiscard.nim b/tests/destructor/tdiscard.nim
new file mode 100644
index 000000000..2e4a4b285
--- /dev/null
+++ b/tests/destructor/tdiscard.nim
@@ -0,0 +1,18 @@
+type
+  O = object
+
+var dCalls = 0
+
+proc `=destroy`(x: var O) = inc dCalls
+proc `=sink`(x: var O, y: O) = doAssert false
+
+proc newO(): O = discard
+
+proc main() =
+  doAssert dCalls == 0
+  discard newO()
+  doAssert dCalls == 1
+  discard newO()
+  doAssert dCalls == 2
+
+main()