blob: 4e78d046988b524b485eca90f85a47316a49cdda (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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
|