Fix 14127 js from int to int casting (#15918)

* fix #14127 from int to int casting

* add test for #14127

* use template for test, also test uint2int

* move to tests/types/t14127_cast_number.nim targets:c cpp js
This commit is contained in:
Bung 2020-11-12 01:41:49 +08:00 • committed by GitHub
commit a81434a890
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 2 deletions

View file

@ -0,0 +1,30 @@
discard """
targets: "c cpp js"
"""
block: # bug #14127
template int2uint(T) =
var a = -1
let b = cast[T](a)
doAssert b < 0
let c = b + 1
doAssert c is T
doAssert c == 0
int2uint(int8)
int2uint(int16)
int2uint(int32)
int2uint(int64)
block: # maybe related
template uint2int(T) =
var a = 3
let b = cast[T](a)
doAssert b > 0
let c = b - 1
doAssert c is T
doAssert c == 2
uint2int(uint8)
uint2int(uint16)
uint2int(uint32)
uint2int(uint64)