summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/core/typeinfo.nim12
-rw-r--r--lib/pure/marshal.nim2
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/core/typeinfo.nim b/lib/core/typeinfo.nim
index 6f8081b5f..4ce65ae91 100644
--- a/lib/core/typeinfo.nim
+++ b/lib/core/typeinfo.nim
@@ -379,7 +379,7 @@ proc getBiggestInt*(x: TAny): biggestInt =
   of tyInt8: result = biggestInt(cast[ptr int8](x.value)[])
   of tyInt16: result = biggestInt(cast[ptr int16](x.value)[])
   of tyInt32: result = biggestInt(cast[ptr int32](x.value)[])
-  of tyInt64: result = biggestInt(cast[ptr int64](x.value)[])
+  of tyInt64, tyUInt64: result = biggestInt(cast[ptr int64](x.value)[])
   of tyBool: result = biggestInt(cast[ptr bool](x.value)[])
   of tyChar: result = biggestInt(cast[ptr char](x.value)[])
   of tyEnum, tySet:
@@ -389,6 +389,10 @@ proc getBiggestInt*(x: TAny): biggestInt =
     of 4: result = biggestInt(cast[ptr int32](x.value)[])
     of 8: result = biggestInt(cast[ptr int64](x.value)[])
     else: assert false
+  of tyUInt: result = biggestInt(cast[ptr uint](x.value)[])
+  of tyUInt8: result = biggestInt(cast[ptr uint8](x.value)[])
+  of tyUInt16: result = biggestInt(cast[ptr uint16](x.value)[])
+  of tyUInt32: result = biggestInt(cast[ptr uint32](x.value)[])
   else: assert false
 
 proc setBiggestInt*(x: TAny, y: biggestInt) =
@@ -400,7 +404,7 @@ proc setBiggestInt*(x: TAny, y: biggestInt) =
   of tyInt8: cast[ptr int8](x.value)[] = int8(y)
   of tyInt16: cast[ptr int16](x.value)[] = int16(y)
   of tyInt32: cast[ptr int32](x.value)[] = int32(y)
-  of tyInt64: cast[ptr int64](x.value)[] = int64(y)
+  of tyInt64, tyUInt64: cast[ptr int64](x.value)[] = int64(y)
   of tyBool: cast[ptr bool](x.value)[] = y != 0
   of tyChar: cast[ptr char](x.value)[] = chr(y.int)
   of tyEnum, tySet:
@@ -410,6 +414,10 @@ proc setBiggestInt*(x: TAny, y: biggestInt) =
     of 4: cast[ptr int32](x.value)[] = int32(y)
     of 8: cast[ptr int64](x.value)[] = y
     else: assert false
+  of tyUInt: cast[ptr uint](x.value)[] = uint(y)
+  of tyUInt8: cast[ptr uint8](x.value)[] = uint8(y)
+  of tyUInt16: cast[ptr uint16](x.value)[] = uint16(y)
+  of tyUInt32: cast[ptr uint32](x.value)[] = uint32(y)
   else: assert false
 
 proc getChar*(x: TAny): char =
diff --git a/lib/pure/marshal.nim b/lib/pure/marshal.nim
index f52b554cc..789f6ad76 100644
--- a/lib/pure/marshal.nim
+++ b/lib/pure/marshal.nim
@@ -252,7 +252,7 @@ when isMainModule:
     ["test", "1", "2", "3", "4"], ["test", "1", "2", "3", "4"], 

     ["test", "1", "2", "3", "4"]]

   testit(x)

-  var test2: tuple[name: string, s: int] = ("tuple test", 56)

+  var test2: tuple[name: string, s: uint] = ("tuple test", 56u)

   testit(test2)

   

   type