summary refs log blame commit diff stats
path: root/tests/ccgbugs/twrong_tupleconv.nim
blob: 7b1e58083df99a1d7e1a553af37880c1e465cf4c (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                                             
                                                                                










                                   
# bug #1833
iterator myitems*[T](a: var seq[T]): var T {.inline.} =
  ## iterates over each item of `a` so that you can modify the yielded value.
  var i = 0
  let L = len(a)
  while i < L:
    yield a[i]
    inc(i)
    assert(len(a) == L, "the length of the seq changed while iterating over it")

# Works fine
var xs = @[1,2,3]
for x in myitems(xs):
  inc x

# Tuples don't work
var ys = @[(1,"a"),(2,"b"),(3,"c")]
for y in myitems(ys):
  inc y[0]