diff options
author | Andrii Riabushenko <cdome@bk.ru> | 2018-11-29 23:33:48 +0000 |
---|---|---|
committer | Andrii Riabushenko <cdome@bk.ru> | 2018-11-29 23:33:48 +0000 |
commit | 4b31d7bb83e2cfdeaab2500f83d0b6728310b549 (patch) | |
tree | cebbcad5b02906456542a170908d8e746eab3ebd /tests/destructor | |
parent | 8ff18c0fb9b4aeb04209f7c7869b28fceb934f5c (diff) | |
download | Nim-4b31d7bb83e2cfdeaab2500f83d0b6728310b549.tar.gz |
move moves
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tmove_objconstr.nim | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/tests/destructor/tmove_objconstr.nim b/tests/destructor/tmove_objconstr.nim index 26cc682b5..2ec167234 100644 --- a/tests/destructor/tmove_objconstr.nim +++ b/tests/destructor/tmove_objconstr.nim @@ -109,7 +109,14 @@ proc myfunc(x, y: int): (MySeqNonCopyable, MySeqNonCopyable) = proc myfunc2(x, y: int): tuple[a: MySeqNonCopyable, b:int, c:MySeqNonCopyable] = var cc = newMySeq(y, 5.0) - (a: newMySeq(x, 1.0), b:0, c: cc) + (a: case x: + of 1: + let (z1, z2) = myfunc(x,y) + z2 + elif x > 5: raise newException(ValueError, "new error") + else: newMySeq(x, 1.0), + b:0, + c: if y > 0: move(cc) else: newMySeq(1, 3.0)) let (seq1, seq2) = myfunc(2, 3) doAssert seq1.len == 2 @@ -122,4 +129,26 @@ doAssert seq3.len == 2 doAssert seq3[0] == 1.0 var seq4, seq5: MySeqNonCopyable -(seq4, i, seq5) = myfunc2(2, 3) \ No newline at end of file +(seq4, i, seq5) = myfunc2(2, 3) + +seq4 = block: + var tmp = newMySeq(4, 1.0) + tmp[0] = 3.0 + tmp + +doAssert seq4[0] == 3.0 + +import macros + +seq4 = + if i > 0: newMySeq(2, 5.0) + elif i < -100: raise newException(ValueError, "Parse Error") + else: newMySeq(2, 3.0) + +seq4 = + case (char) i: + of 'A', {'W'..'Z'}: newMySeq(2, 5.0) + of 'B': quit(-1) + else: + let (x1, x2, x3) = myfunc2(2, 3) + x3 \ No newline at end of file |