[semfold] fix #19199; properly fold uint to float conversion (#19890) [backport]

fix #19199; properly fold float conversion

(cherry picked from commit ab47707586)
This commit is contained in:
flywind
2022-06-13 15:01:40 +08:00
committed by narimiran
parent efe5a33988
commit 2064fda582
2 changed files with 7 additions and 1 deletions

View File

@@ -412,7 +412,7 @@ proc foldConv(n, a: PNode; idgen: IdGenerator; g: ModuleGraph; check = false): P
rangeCheck(n, getInt(result), g)
of tyFloat..tyFloat64:
case srcTyp.kind
of tyInt..tyInt64, tyEnum, tyBool, tyChar:
of tyInt..tyInt64, tyUInt..tyUInt64, tyEnum, tyBool, tyChar:
result = newFloatNodeT(toFloat64(getOrdValue(a)), n, g)
else:
result = a

6
tests/vm/t19199.nim Normal file
View File

@@ -0,0 +1,6 @@
# bug #19199
proc mikasa(x: float) = doAssert x == 42
static:
mikasa 42.uint.float
mikasa 42.uint.float