diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2022-06-13 15:01:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-13 09:01:40 +0200 |
commit | ab477075860364db2690a0411c0b2c330532042f (patch) | |
tree | d3b018dc13c7a95a7d5eb0fa60959aeaae8392c2 | |
parent | 2f4900615ab0c42c9608910dd30a14be52455f91 (diff) | |
download | Nim-ab477075860364db2690a0411c0b2c330532042f.tar.gz |
[semfold] fix #19199; properly fold uint to float conversion (#19890) [backport]
fix #19199; properly fold float conversion
-rw-r--r-- | compiler/semfold.nim | 2 | ||||
-rw-r--r-- | tests/vm/t19199.nim | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/compiler/semfold.nim b/compiler/semfold.nim index d2bbc63be..72c8abaa9 100644 --- a/compiler/semfold.nim +++ b/compiler/semfold.nim @@ -409,7 +409,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 diff --git a/tests/vm/t19199.nim b/tests/vm/t19199.nim new file mode 100644 index 000000000..6ae48cb54 --- /dev/null +++ b/tests/vm/t19199.nim @@ -0,0 +1,6 @@ +# bug #19199 +proc mikasa(x: float) = doAssert x == 42 + +static: + mikasa 42.uint.float +mikasa 42.uint.float |