From aed8766e84364360e0ed1e1e667ee735afd99e81 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Tue, 5 Mar 2019 10:03:24 +0100 Subject: [PATCH] stdlib: use system.default if it exists --- lib/pure/collections/sets.nim | 15 ++++++--------- 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 8583b72045..749925d6b3 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..