mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-09 16:48:18 +00:00
enhance: add address analysis in semMove and extend twasmoved tests
This commit is contained in:
@@ -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 =
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user