mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
(cherry picked from commit 7435d912ad)
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user