enhance: add address analysis in semMove and extend twasmoved tests

This commit is contained in:
ringabout
2026-05-11 19:22:51 +08:00
parent e113bee1be
commit d5c6a80305
2 changed files with 32 additions and 0 deletions

View File

@@ -606,6 +606,7 @@ proc semMove(c: PContext; n: PNode): PNode =
ensureMutable callee
callee.magic = mNone
setOwner(callee, c.module)
analyseIfAddressTakenInCall(c, result, false)
proc magicsAfterOverloadResolution(c: PContext, n: PNode,
flags: TExprFlags; expectedType: PType = nil): PNode =

View File

@@ -12,3 +12,34 @@ proc foo =
doAssert m.id == 999
foo()
block:
type Foo = object
a,b,c: int
var dest: Foo
# proc `=wasMoved`(x: var Foo) =
# debugEcho "wasMoved called"
proc main() =
var x = Foo(a:11, b:12, c:13)
dest = move(x)
main()
block:
type Foo = object
a,b,c: int
var dest: Foo
proc `=wasMoved`(x: var Foo) =
discard "wasMoved called"
proc main() =
var x = Foo(a:11, b:12, c:13)
dest = move(x)
main()