diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/arc/tmovebug.nim | 30 | ||||
-rw-r--r-- | tests/arc/topt_no_cursor.nim | 2 |
2 files changed, 3 insertions, 29 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() - diff --git a/tests/arc/topt_no_cursor.nim b/tests/arc/topt_no_cursor.nim index 6fa19b24a..3d37e6269 100644 --- a/tests/arc/topt_no_cursor.nim +++ b/tests/arc/topt_no_cursor.nim @@ -52,7 +52,7 @@ _ = ( blitTmp, ";") lvalue = _[0] lnext = _[1] -result.value = move lvalue +`=sink`(result.value, move lvalue) `=destroy`(lnext) `=destroy_1`(lvalue) -- end of expandArc ------------------------ |