mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
added test case for #9594
This commit is contained in:
31
tests/destructor/tuse_result_prevents_sinks.nim
Normal file
31
tests/destructor/tuse_result_prevents_sinks.nim
Normal file
@@ -0,0 +1,31 @@
|
||||
discard """
|
||||
output: ""
|
||||
"""
|
||||
|
||||
# bug #9594
|
||||
|
||||
type
|
||||
Foo = object
|
||||
i: int
|
||||
|
||||
proc `=`(self: var Foo; other: Foo) =
|
||||
self.i = other.i + 1
|
||||
|
||||
proc `=sink`(self: var Foo; other: Foo) =
|
||||
self.i = other.i
|
||||
|
||||
proc `=destroy`(self: var Foo) = discard
|
||||
|
||||
proc test(): Foo =
|
||||
result = Foo()
|
||||
let temp = result
|
||||
doAssert temp.i > 0
|
||||
return result
|
||||
|
||||
proc testB(): Foo =
|
||||
result = Foo()
|
||||
let temp = result
|
||||
doAssert temp.i > 0
|
||||
|
||||
discard test()
|
||||
discard testB()
|
||||
Reference in New Issue
Block a user