summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2019-03-05 10:03:24 +0100
committerAndreas Rumpf <rumpf_a@web.de>2019-03-05 10:03:24 +0100
commitaed8766e84364360e0ed1e1e667ee735afd99e81 (patch)
treecbda4a94f9ca03ee3003acf2cc7b7e221f2785c9 /lib
parent142a2d355123155fb6ef600f269687703e554224 (diff)
downloadNim-aed8766e84364360e0ed1e1e667ee735afd99e81.tar.gz
stdlib: use system.default if it exists
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/collections/sets.nim15
-rw-r--r--lib/pure/collections/tableimpl.nim7
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)