move moves
This commit is contained in:
parent
8ff18c0fb9
commit
4b31d7bb83
2 changed files with 161 additions and 63 deletions
|
|
@ -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)
|
||||
(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
|
||||
Loading…
Add table
Add a link
Reference in a new issue