discard destroys its argument in-place (#9478)

This commit is contained in:
LemonBoy 2019-02-23 14:03:32 +01:00 • committed by Andreas Rumpf
commit f39aa1b40b
2 changed files with 22 additions and 0 deletions

View file

@ -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()