Add testcase for #14601 (#15677)

(cherry picked from commit 7435d912ad)
This commit is contained in:
Clyybber
2020-10-22 13:23:39 +02:00
committed by narimiran
parent 19a11bc8a6
commit 4e89dffc15

View File

@@ -127,4 +127,48 @@ proc test2() =
echo "---------------"
echo "app begin"
test2()
echo "app end"
echo "app end"
# bug #14601
when true: # D20200607T202043
type Foo2 = object
x: int
x2: array[10, int]
type Vec = object
vals: seq[Foo2]
proc `=destroy`*(a: var Foo2) {.inline.} =
discard
proc initFoo2(x: int): Foo2 = Foo2(x: x)
proc add2(v: var Vec, a: Foo2) = # ditto with `a: sink Foo2`
v.vals.add a
proc add3(v: var Vec, a: Foo2) = # ditto with `a: sink Foo2`
v.vals = @[a]
proc add4(v: var Vec, a: sink Foo2) = # ditto with `a: sink Foo2`
v.vals.add a
proc add5(v: var Vec, a: sink Foo2) = # ditto with `a: sink Foo2`
v.vals = @[a]
proc main2()=
var a: Vec
var b = Foo2(x: 10)
a.add2 b # ok
a.vals.add Foo2(x: 10) # ok
a.add2 initFoo2(x = 10) # ok
a.add2 Foo2(x: 10) # bug
a.add3 initFoo2(x = 10) # ok
a.add3 Foo2(x: 10) # bug
a.add4 initFoo2(x = 10) # ok
a.add4 Foo2(x: 10) # bug
a.add5 initFoo2(x = 10) # ok
a.add5 Foo2(x: 10) # bug
main2()