diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-03-05 10:03:24 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-03-05 10:03:24 +0100 |
commit | aed8766e84364360e0ed1e1e667ee735afd99e81 (patch) | |
tree | cbda4a94f9ca03ee3003acf2cc7b7e221f2785c9 /lib | |
parent | 142a2d355123155fb6ef600f269687703e554224 (diff) | |
download | Nim-aed8766e84364360e0ed1e1e667ee735afd99e81.tar.gz |
stdlib: use system.default if it exists
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/collections/sets.nim | 15 | ||||
-rw-r--r-- | lib/pure/collections/tableimpl.nim | 7 |
2 files changed, 10 insertions, 12 deletions
diff --git a/lib/pure/collections/sets.nim b/lib/pure/collections/sets.nim index 8583b7204..749925d6b 100644 --- a/lib/pure/collections/sets.nim +++ b/lib/pure/collections/sets.nim @@ -74,10 +74,11 @@ type const growthFactor = 2 -template default[T](t: typedesc[T]): T = - ## Used by clear methods to get a default value. - var v: T - v +when not defined(nimHasDefault): + template default[T](t: typedesc[T]): T = + ## Used by clear methods to get a default value. + var v: T + v # hcode for real keys cannot be zero. hcode==0 signifies an empty slot. These # two procs retain clarity of that encoding without the space cost of an enum. @@ -162,10 +163,6 @@ template doWhile(a, b) = b if not a: break -template default[T](t: typedesc[T]): T = - var v: T - v - proc exclImpl[A](s: var HashSet[A], key: A) : bool {. inline .} = assert s.isValid, "The set needs to be initialized." var hc: Hash @@ -492,7 +489,7 @@ proc clear*[A](s: var HashSet[A]) = s.counter = 0 for i in 0..<s.data.len: s.data[i].hcode = 0 - s.data[i].key = default(type(s.data[i].key)) + s.data[i].key = default(type(s.data[i].key)) proc len*[A](s: HashSet[A]): int = ## Returns the number of elements in `s`. diff --git a/lib/pure/collections/tableimpl.nim b/lib/pure/collections/tableimpl.nim index 2cdc62996..3e34b1488 100644 --- a/lib/pure/collections/tableimpl.nim +++ b/lib/pure/collections/tableimpl.nim @@ -116,9 +116,10 @@ template hasKeyOrPutImpl(enlarge) {.dirty.} = maybeRehashPutImpl(enlarge) else: result = true -template default[T](t: typedesc[T]): T = - var v: T - v +when not defined(nimHasDefault): + template default[T](t: typedesc[T]): T = + var v: T + v template delImplIdx(t, i) = let msk = maxHash(t) |