Fix destructor injections for global variables (#11230)

* attach global destructors at end of mainModule
* Add testcase
* Minor cleanup
* Inject topLevelVar temporaries' destructors early
* Fix megatest
This commit is contained in:
Clyybber 2019-05-13 08:28:33 +02:00 • committed by Andreas Rumpf
commit 0c869eaa47
7 changed files with 45 additions and 8 deletions

View file

@ -0,0 +1,8 @@
type Obj* = object
v*: int
proc `=destroy`(this: var Obj) =
echo "igotdestroyed"
this.v = -1
var test* = Obj(v: 42)

View file

@ -6,6 +6,7 @@ discard """
10
destroyed!
'''
joinable: false
"""
type

View file

@ -0,0 +1,9 @@
discard """
cmd: '''nim c --newruntime $file'''
output: '''(v: 42)
igotdestroyed'''
"""
import objFile
echo test

View file

@ -3,6 +3,7 @@ discard """
output: '''5
vseq destroy
'''
joinable: false
"""
type
opt*[T] = object