diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-02-22 21:23:20 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-02-22 21:23:20 +0100 |
commit | 63c6bc9c69496094b50756aa55b9c6fdffb44f03 (patch) | |
tree | 8a01c598dc150fc9ab587dc42286afed98cf85b7 | |
parent | 6f069dad8417c54c084290a1c63a4e8f4633c19e (diff) | |
parent | 93aa73284eb22f6ed2f48920685e640829de1f3e (diff) | |
download | Nim-63c6bc9c69496094b50756aa55b9c6fdffb44f03.tar.gz |
Merge pull request #2198 from oderwat/fix-table-mpairs
Fix unknown symbol in tables mpairs iterator.
-rw-r--r-- | lib/pure/collections/tables.nim | 2 | ||||
-rw-r--r-- | tests/collections/ttables.nim | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index c75386cf1..959688d6a 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -104,7 +104,7 @@ iterator mpairs*[A, B](t: var Table[A, B]): tuple[key: A, val: var B] = ## iterates over any (key, value) pair in the table `t`. The values ## can be modified. for h in 0..high(t.data): - if isFilled(t.data[h].slot): yield (t.data[h].key, t.data[h].val) + if isFilled(t.data[h].hcode): yield (t.data[h].key, t.data[h].val) iterator keys*[A, B](t: Table[A, B]): A = ## iterates over any key in the table `t`. diff --git a/tests/collections/ttables.nim b/tests/collections/ttables.nim index 7af14a75b..3a923610e 100644 --- a/tests/collections/ttables.nim +++ b/tests/collections/ttables.nim @@ -109,6 +109,22 @@ block countTableTest1: else: break inc i +block mpairsTableTest1: + var t = initTable[string, int]() + t["a"] = 1 + t["b"] = 2 + t["c"] = 3 + t["d"] = 4 + for k, v in t.mpairs: + if k == "a" or k == "c": + v = 9 + + for k, v in t.pairs: + if k == "a" or k == "c": + assert v == 9 + else: + assert v != 1 and v != 3 + block SyntaxTest: var x = toTable[int, string]({:}) |