fixes #20031; uint64 is an ordinal type since 1.0 (#20094)

* fixes #20031; uint64 is an ordinal type since 1.0

* Update compiler/semstmts.nim

(cherry picked from commit 5bbc5edf43)
This commit is contained in:
ringabout
2022-07-27 17:15:51 +08:00
committed by narimiran
parent 0277cd5252
commit 17e61c75a2
2 changed files with 12 additions and 1 deletions

View File

@@ -978,7 +978,7 @@ proc semCase(c: PContext, n: PNode; flags: TExprFlags): PNode =
var typ = commonTypeBegin
var hasElse = false
let caseTyp = skipTypes(n[0].typ, abstractVar-{tyTypeDesc})
const shouldChckCovered = {tyInt..tyInt64, tyChar, tyEnum, tyUInt..tyUInt32, tyBool}
const shouldChckCovered = {tyInt..tyInt64, tyChar, tyEnum, tyUInt..tyUInt64, tyBool}
case caseTyp.kind
of shouldChckCovered:
chckCovered = true

View File

@@ -287,3 +287,14 @@ doAssert(foo2("Y", "a2") == 0)
doAssert(foo2("Y", "2a") == 2)
doAssert(foo2("N", "a3") == 3)
doAssert(foo2("z", "2") == 0)
# bug #20031
proc main(a: uint64) =
case a
else:
discard
static:
main(10)
main(10)