added hash for uints (#5435)

This commit is contained in:
Fabian Keller
2017-02-26 00:17:21 +01:00
committed by Andreas Rumpf
parent f250c30b9d
commit 5774145f5d
2 changed files with 23 additions and 0 deletions

View File

@@ -112,6 +112,14 @@ proc hash*(x: int64): Hash {.inline.} =
## efficient hashing of int64 integers
result = toU32(x)
proc hash*(x: uint): Hash {.inline.} =
## efficient hashing of unsigned integers
result = cast[int](x)
proc hash*(x: uint64): Hash {.inline.} =
## efficient hashing of uint64 integers
result = toU32(cast[int](x))
proc hash*(x: char): Hash {.inline.} =
## efficient hashing of characters
result = ord(x)

View File

@@ -72,4 +72,19 @@ block:
var t = initTable[int, int]()
t[0] = 0
# Check hashability of all integer types (issue #5429)
block:
let intTables = (
newTable[int, string](),
newTable[int8, string](),
newTable[int16, string](),
newTable[int32, string](),
newTable[int64, string](),
newTable[uint, string](),
newTable[uint8, string](),
newTable[uint16, string](),
newTable[uint32, string](),
newTable[uint64, string](),
)
echo "true"