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..