new move analyser2 (#20471)

* produce better code for closure environment creation
* new 'first write' analysis; 
* scope based move analyser
* code cleanup

Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
This commit is contained in:
Andreas Rumpf 2022-10-01 16:46:51 +02:00 • committed by GitHub
commit 8d47bf1822
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 472 additions and 684 deletions

View file

@ -18,7 +18,7 @@ proc createTree(x: int): Foo =
proc take2(a, b: sink Foo) =
echo a.x, " ", b.x
proc allowThis() =
when false:
var otherTree: Foo
try:
for i in 0..3:
@ -47,7 +47,7 @@ proc preventThis2() =
finally:
echo otherTree
allowThis()
#allowThis()
preventThis2()