scoped memory management (#14790)
* fixes the regressions * closes #13936 * scope based memory management implemented * enabled tcontrolflow.nim test case * final cleanups
This commit is contained in:
parent
695154970d
commit
1854d29781
17 changed files with 611 additions and 477 deletions
|
|
@ -1,27 +1,27 @@
|
|||
discard """
|
||||
output: '''----
|
||||
output: '''----1
|
||||
myobj constructed
|
||||
myobj destroyed
|
||||
----
|
||||
----2
|
||||
mygeneric1 constructed
|
||||
mygeneric1 destroyed
|
||||
----
|
||||
----3
|
||||
mygeneric2 constructed
|
||||
mygeneric2 destroyed
|
||||
myobj destroyed
|
||||
----
|
||||
----4
|
||||
mygeneric3 constructed
|
||||
mygeneric1 destroyed
|
||||
----
|
||||
----5
|
||||
mydistinctObj constructed
|
||||
myobj destroyed
|
||||
mygeneric2 destroyed
|
||||
------------------
|
||||
----
|
||||
----
|
||||
myobj destroyed
|
||||
------------------8
|
||||
mygeneric1 destroyed
|
||||
---
|
||||
----6
|
||||
myobj destroyed
|
||||
----7
|
||||
---9
|
||||
myobj destroyed
|
||||
myobj destroyed
|
||||
'''
|
||||
|
|
@ -114,19 +114,19 @@ proc mydistinctObj =
|
|||
|
||||
echo "mydistinctObj constructed"
|
||||
|
||||
echo "----"
|
||||
echo "----1"
|
||||
myobj()
|
||||
|
||||
echo "----"
|
||||
echo "----2"
|
||||
mygeneric1()
|
||||
|
||||
echo "----"
|
||||
echo "----3"
|
||||
mygeneric2[int](10)
|
||||
|
||||
echo "----"
|
||||
echo "----4"
|
||||
mygeneric3()
|
||||
|
||||
echo "----"
|
||||
echo "----5"
|
||||
mydistinctObj()
|
||||
|
||||
proc caseobj =
|
||||
|
|
@ -134,16 +134,16 @@ proc caseobj =
|
|||
var o1 = TCaseObj(kind: A, x: TMyGeneric1[int](x: 10))
|
||||
|
||||
block:
|
||||
echo "----"
|
||||
echo "----6"
|
||||
var o2 = TCaseObj(kind: B, y: open())
|
||||
|
||||
block:
|
||||
echo "----"
|
||||
echo "----7"
|
||||
var o3 = TCaseObj(kind: D, innerKind: B, r: "test",
|
||||
p: TMyGeneric3[int, float, string](x: 10, y: 1.0, z: "test"))
|
||||
|
||||
|
||||
echo "------------------"
|
||||
echo "------------------8"
|
||||
caseobj()
|
||||
|
||||
proc caseobj_test_sink: TCaseObj =
|
||||
|
|
@ -153,7 +153,7 @@ proc caseobj_test_sink: TCaseObj =
|
|||
result = TCaseObj(kind: B, y: open())
|
||||
|
||||
|
||||
echo "---"
|
||||
echo "---9"
|
||||
discard caseobj_test_sink()
|
||||
|
||||
# issue #14315
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue