introduce internal Int128 type, use it to fix case stmt checks (#11652)

* initial version of int128
* use int128 in case stmt
* fixes #11552
This commit is contained in:
Arne Döring 2019-07-05 22:45:32 +02:00 • committed by Andreas Rumpf
commit 7d5d9f7703
6 changed files with 550 additions and 11 deletions

View file

@ -760,7 +760,9 @@ proc floatRangeCheck*(x: BiggestFloat, t: PType): bool =
proc lengthOrd*(conf: ConfigRef; t: PType): BiggestInt =
case t.skipTypes(tyUserTypeClasses).kind
of tyInt64, tyInt32, tyInt: result = lastOrd(conf, t)
of tyInt64, tyInt32, tyInt:
# XXX: this is just wrong
result = lastOrd(conf, t)
of tyDistinct: result = lengthOrd(conf, t.sons[0])
else:
let last = lastOrd(conf, t)