From 587f0bd0863b381f5d0045fefedac92e3c504bde Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Sun, 13 Apr 2014 00:20:25 +0200 Subject: [PATCH] fixes '==' for TTTable --- lib/pure/collections/tables.nim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index 40ae57b5a..112f41c66 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -191,7 +191,13 @@ proc `$`*[A, B](t: TTable[A, B]): string = dollarImpl() proc `==`*[A, B](s, t: TTable[A, B]): bool = - s.counter == t.counter and s.data == t.data + if s.counter == t.counter: + # different insertion orders mean different 'data' seqs, so we have + # to use the slow route here: + for key, val in a: + if not hasKey(t, key): return false + if mget(t, key) != val: return false + return true proc indexBy*[A, B, C](collection: A, index: proc(x: B): C): TTable[C, B] = ## Index the collection with the proc provided.