12345678910111213141516171819202122232425262728 |
- discard """
- exitcode: 0
- output: ""
- joinable: false
- """
- type
- Foo* = object
- boo: int
- var sink_counter = 0
- var assign_counter = 0
- proc `=sink`(dest: var Foo, src: Foo) =
- sink_counter.inc
- proc `=`(dest: var Foo, src: Foo) =
- assign_counter.inc
- proc test(): auto =
- var a,b : Foo
- return (a, b, Foo(boo: 5))
- var (a, b, _) = test()
- doAssert assign_counter == 0
- doAssert sink_counter == 12 # + 3 because of the conservative tuple unpacking transformation
|