mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-04 19:04:46 +00:00
@@ -146,8 +146,8 @@ proc instantiateBody(c: PContext, n, params: PNode, result, orig: PSym) =
|
||||
freshGenSyms(c, b, result, orig, symMap)
|
||||
b = semProcBody(c, b)
|
||||
result.ast[bodyPos] = hloBody(c, b)
|
||||
trackProc(c, result, result.ast[bodyPos])
|
||||
excl(result.flags, sfForward)
|
||||
trackProc(c, result, result.ast[bodyPos])
|
||||
dec c.inGenericInst
|
||||
|
||||
proc fixupInstantiatedSymbols(c: PContext, s: PSym) =
|
||||
|
||||
@@ -28,6 +28,8 @@ aaaaa
|
||||
hello
|
||||
ok
|
||||
true
|
||||
copying
|
||||
123
|
||||
closed
|
||||
destroying variable: 20
|
||||
destroying variable: 10
|
||||
@@ -433,3 +435,31 @@ proc t17712 =
|
||||
echo el != nil
|
||||
|
||||
t17712()
|
||||
|
||||
# bug #18030
|
||||
|
||||
type
|
||||
Foo = object
|
||||
n: int
|
||||
|
||||
proc `=copy`(dst: var Foo, src: Foo) =
|
||||
echo "copying"
|
||||
dst.n = src.n
|
||||
|
||||
proc `=sink`(dst: var Foo, src: Foo) =
|
||||
echo "sinking"
|
||||
dst.n = src.n
|
||||
|
||||
var a: Foo
|
||||
|
||||
proc putValue[T](n: T)
|
||||
|
||||
proc useForward =
|
||||
putValue(123)
|
||||
|
||||
proc putValue[T](n: T) =
|
||||
var b = Foo(n:n)
|
||||
a = b
|
||||
echo b.n
|
||||
|
||||
useForward()
|
||||
|
||||
Reference in New Issue
Block a user