ARC related bugfixes and refactorings (#12781)
This commit is contained in:
parent
9b0e874687
commit
3fbb3bfd3f
11 changed files with 381 additions and 367 deletions
29
tests/destructor/texceptions.nim
Normal file
29
tests/destructor/texceptions.nim
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
discard """
|
||||
cmd: '''nim c --gc:arc $file'''
|
||||
output: '''0'''
|
||||
"""
|
||||
|
||||
proc other =
|
||||
raise newException(ValueError, "stuff happening")
|
||||
|
||||
proc indirectViaProcCall =
|
||||
var correct = 0
|
||||
for i in 1 .. 20:
|
||||
try:
|
||||
other()
|
||||
except:
|
||||
let x = getCurrentException()
|
||||
correct += ord(x of ValueError)
|
||||
doAssert correct == 20
|
||||
|
||||
proc direct =
|
||||
for i in 1 .. 20:
|
||||
try:
|
||||
raise newException(ValueError, "stuff happening")
|
||||
except ValueError:
|
||||
discard
|
||||
|
||||
let mem = getOccupiedMem()
|
||||
indirectViaProcCall()
|
||||
direct()
|
||||
echo getOccupiedMem() - mem
|
||||
Loading…
Add table
Add a link
Reference in a new issue