summary refs log tree commit diff stats
path: root/lib/std/private/digitsutils.nim
diff options
context:
space:
mode:
authorBung <crc32@qq.com>2022-12-01 20:34:00 +0800
committerGitHub <noreply@github.com>2022-12-01 13:34:00 +0100
commit658b28dc5707601b39d9aad4b6bf79a9afff1e92 (patch)
treeb8e10d4d1f2666c45c3b1dec23e7c03d5ba23be9 /lib/std/private/digitsutils.nim
parenta70d3abd37819e7562f80f0c808788c3f5c62c55 (diff)
downloadNim-658b28dc5707601b39d9aad4b6bf79a9afff1e92.tar.gz
tyInt tyUint fit target int bit width (#20829)
Diffstat (limited to 'lib/std/private/digitsutils.nim')
-rw-r--r--lib/std/private/digitsutils.nim6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/std/private/digitsutils.nim b/lib/std/private/digitsutils.nim
index 588bcaec0..b3dc5d14f 100644
--- a/lib/std/private/digitsutils.nim
+++ b/lib/std/private/digitsutils.nim
@@ -34,7 +34,7 @@ proc utoa2Digits*(buf: var openArray[char]; pos: int; digits: uint32) {.inline.}
   #copyMem(buf, unsafeAddr(digits100[2 * digits]), 2 * sizeof((char)))
 
 proc trailingZeros2Digits*(digits: uint32): int32 {.inline.} =
-  return trailingZeros100[digits]
+  return trailingZeros100[digits.int8]
 
 when defined(js):
   proc numToString(a: SomeInteger): cstring {.importjs: "((#) + \"\")".}
@@ -63,14 +63,14 @@ func addIntImpl(result: var string, x: uint64) {.inline.} =
   while num >= nbatch:
     let originNum = num
     num = num div nbatch
-    let index = (originNum - num * nbatch) shl 1
+    let index = int16((originNum - num * nbatch) shl 1)
     tmp[next] = digits100[index + 1]
     tmp[next - 1] = digits100[index]
     dec(next, 2)
 
   # process last 1-2 digits
   if num < 10:
-    tmp[next] = chr(ord('0') + num)
+    tmp[next] = chr(ord('0') + num.uint8)
   else:
     let index = num * 2
     tmp[next] = digits100[index + 1]