Skip to content

Commit

Permalink
fixes #18030 (#18415)
Browse files Browse the repository at this point in the history
  • Loading branch information
Araq authored Jul 1, 2021
1 parent 779b4e3 commit 3ceaf5c
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/seminst.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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) =
Expand Down
30 changes: 30 additions & 0 deletions tests/arc/tarcmisc.nim
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ aaaaa
hello
ok
true
copying
123
closed
destroying variable: 20
destroying variable: 10
Expand Down Expand Up @@ -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()

0 comments on commit 3ceaf5c

Please sign in to comment.