From 618316beb9fb1fe8065d952fc1dd31e1848ac69d Mon Sep 17 00:00:00 2001 From: Miran Date: Tue, 17 Sep 2019 21:29:25 +0200 Subject: [PATCH] fix #12200, cannot 'inc' CountTable by a negative value (#12208) * fix #12200, cannot 'inc' CountTable by a negative value * use Positive --- lib/pure/collections/tables.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index 967a6726f5..74eb7ec748 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -2181,7 +2181,7 @@ template ctget(t, key, default: untyped): untyped = var index = rawGet(t, key) result = if index >= 0: t.data[index].val else: default -proc inc*[A](t: var CountTable[A], key: A, val = 1) +proc inc*[A](t: var CountTable[A], key: A, val: Positive = 1) # ---------------------------------------------------------------------- @@ -2246,8 +2246,11 @@ proc `[]=`*[A](t: var CountTable[A], key: A, val: int) = else: insertImpl() -proc inc*[A](t: var CountTable[A], key: A, val = 1) = +proc inc*[A](t: var CountTable[A], key: A, val: Positive = 1) = ## Increments ``t[key]`` by ``val`` (default: 1). + ## + ## ``val`` must be a positive number. If you need to decrement a value, + ## use a regular ``Table`` instead. runnableExamples: var a = toCountTable("aab") a.inc('a')