diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-11-01 09:44:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-01 09:44:12 +0100 |
commit | 88ac25c3d93543c57ca7a4a4c32701a1e736fc00 (patch) | |
tree | 4b8724093e8d53c3124ba940cb78e363efd18489 /lib | |
parent | 19befb5c9135ee2aec715c24aadd4db506c053d3 (diff) | |
parent | af4c75a893fe0ea5d274d2324bb35198777b4738 (diff) | |
download | Nim-88ac25c3d93543c57ca7a4a4c32701a1e736fc00.tar.gz |
Merge pull request #4977 from flyx/fix-4974
Fixes #4974
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/collections/tables.nim | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index 2bdf77125..bee0a41b2 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -438,7 +438,7 @@ proc `$`*[A, B](t: TableRef[A, B]): string = dollarImpl() proc `==`*[A, B](s, t: TableRef[A, B]): bool = - ## The `==` operator for hash tables. Returns ``true`` iff either both tables + ## The `==` operator for hash tables. Returns ``true`` iff either both tables ## are ``nil`` or none is ``nil`` and the content of both tables contains the ## same key-value pairs. Insert order does not matter. if isNil(s): result = isNil(t) @@ -616,8 +616,8 @@ proc `$`*[A, B](t: OrderedTable[A, B]): string = dollarImpl() proc `==`*[A, B](s, t: OrderedTable[A, B]): bool = - ## The `==` operator for ordered hash tables. Both the content and the order - ## must be equal for this to return ``true``. + ## The `==` operator for ordered hash tables. Returns true iff both the + ## content and the order are equal. if s.counter == t.counter: forAllOrderedPairs: if s.data[h] != t.data[h]: return false @@ -768,9 +768,12 @@ proc `$`*[A, B](t: OrderedTableRef[A, B]): string = dollarImpl() proc `==`*[A, B](s, t: OrderedTableRef[A, B]): bool = - ## The `==` operator for ordered hash tables. Both the content and the order - ## must be equal for this to return ``true``. - result = s[] == t[] + ## The `==` operator for ordered hash tables. Returns true iff either both + ## tables are ``nil`` or none is ``nil`` and the content and the order of + ## both are equal. + if isNil(s): result = isNil(t) + elif isNil(t): result = false + else: result = s[] == t[] proc sort*[A, B](t: OrderedTableRef[A, B], cmp: proc (x,y: (A, B)): int) = @@ -1070,9 +1073,12 @@ proc `$`*[A](t: CountTableRef[A]): string = dollarImpl() proc `==`*[A](s, t: CountTableRef[A]): bool = - ## The `==` operator for count tables. Returns ``true`` iff both tables - ## contain the same keys with the same count. Insert order does not matter. - result = s[] == t[] + ## The `==` operator for count tables. Returns ``true`` iff either both tables + ## are ``nil`` or none is ``nil`` and both contain the same keys with the same + ## count. Insert order does not matter. + if isNil(s): result = isNil(t) + elif isNil(t): result = false + else: result = s[] == t[] proc inc*[A](t: CountTableRef[A], key: A, val = 1) = ## increments `t[key]` by `val`. |