diff options
Diffstat (limited to 'tests/arc/tmovebug.nim')
-rw-r--r-- | tests/arc/tmovebug.nim | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/tests/arc/tmovebug.nim b/tests/arc/tmovebug.nim index 888027186..7c8fbc235 100644 --- a/tests/arc/tmovebug.nim +++ b/tests/arc/tmovebug.nim @@ -93,6 +93,7 @@ destroy destroy destroy sink +sink destroy copy (f: 1) @@ -686,7 +687,7 @@ caseNotAConstant() proc potentialSelfAssign(i: var int) = var a: array[2, OO] - a[i] = OO(f: 1) # turned into a memcopy + a[i] = OO(f: 1) a[1] = OO(f: 2) a[i+1] = a[i] # This must not =sink, but =copy inc i @@ -743,30 +744,3 @@ proc partToWholeUnownedRef = partToWholeUnownedRef() - -#-------------------------------------------------------------------- -# test that nodes that get copied during the transformation -# (like dot exprs) don't loose their firstWrite/lastRead property - -type - OOO = object - initialized: bool - - C = object - o: OOO - -proc `=destroy`(o: var OOO) = - doAssert o.initialized, "OOO was destroyed before initialization!" - -proc initO(): OOO = - OOO(initialized: true) - -proc initC(): C = - C(o: initO()) - -proc pair(): tuple[a: C, b: C] = - result.a = initC() # <- when firstWrite tries to find this node to start its analysis it fails, because injectdestructors uses copyTree/shallowCopy - result.b = initC() - -discard pair() - |