summary refs log tree commit diff stats
path: root/tests/destructor
diff options
context:
space:
mode:
authorAndrii Riabushenko <cdome@bk.ru>2018-11-29 23:33:48 +0000
committerAndrii Riabushenko <cdome@bk.ru>2018-11-29 23:33:48 +0000
commit4b31d7bb83e2cfdeaab2500f83d0b6728310b549 (patch)
treecebbcad5b02906456542a170908d8e746eab3ebd /tests/destructor
parent8ff18c0fb9b4aeb04209f7c7869b28fceb934f5c (diff)
downloadNim-4b31d7bb83e2cfdeaab2500f83d0b6728310b549.tar.gz
move moves
Diffstat (limited to 'tests/destructor')
-rw-r--r--tests/destructor/tmove_objconstr.nim33
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