mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-31 02:12:11 +00:00
Merge pull request #1410 from Varriount/flyx-ptables_fix
Flyx ptables fix
This commit is contained in:
@@ -246,7 +246,8 @@ template equalsImpl() =
|
||||
# different insertion orders mean different 'data' seqs, so we have
|
||||
# to use the slow route here:
|
||||
for key, val in s:
|
||||
if not hasKey(t, key): return false
|
||||
# prefix notation leads to automatic dereference in case of PTable
|
||||
if not t.hasKey(key): return false
|
||||
if t[key] != val: return false
|
||||
return true
|
||||
|
||||
@@ -332,7 +333,9 @@ proc `$`*[A, B](t: PTable[A, B]): string =
|
||||
dollarImpl()
|
||||
|
||||
proc `==`*[A, B](s, t: PTable[A, B]): bool =
|
||||
equalsImpl()
|
||||
if isNil(s): result = isNil(t)
|
||||
elif isNil(t): result = false
|
||||
else: result = equalsImpl()
|
||||
|
||||
proc newTableFrom*[A, B, C](collection: A, index: proc(x: B): C): PTable[C, B] =
|
||||
## Index the collection with the proc provided.
|
||||
|
||||
@@ -104,6 +104,15 @@ block countTableTest1:
|
||||
block SyntaxTest:
|
||||
var x = newTable[int, string]({:})
|
||||
|
||||
block nilTest:
|
||||
var i, j: PTable[int, int] = nil
|
||||
assert i == j
|
||||
j = newTable[int, int]()
|
||||
assert i != j
|
||||
assert j != i
|
||||
i = newTable[int, int]()
|
||||
assert i == j
|
||||
|
||||
proc orderedTableSortTest() =
|
||||
var t = newOrderedTable[string, int](2)
|
||||
for key, val in items(data): t[key] = val
|
||||
|
||||
Reference in New Issue
Block a user