Fix hashing scalar types
This commit is contained in:
parent
0d6d8f6a91
commit
442fa5b46a
@ -40,7 +40,7 @@ private struct FNV
|
|||||||
{
|
{
|
||||||
static if (isScalarType!T)
|
static if (isScalarType!T)
|
||||||
{
|
{
|
||||||
(() @trusted => add(cast(const ubyte[]) (&key)[0 .. T.sizeof]))();
|
(() @trusted => add((cast(const ubyte*) &key)[0 .. T.sizeof]))();
|
||||||
}
|
}
|
||||||
else static if (isArray!T && isScalarType!(ElementType!T))
|
else static if (isArray!T && isScalarType!(ElementType!T))
|
||||||
{
|
{
|
||||||
@ -162,12 +162,14 @@ static if (size_t.sizeof == 4) @nogc nothrow pure @safe unittest
|
|||||||
{
|
{
|
||||||
assert(hash('a') == 0xe40c292cU);
|
assert(hash('a') == 0xe40c292cU);
|
||||||
assert(hash(HashRange()) == 0x6222e842U);
|
assert(hash(HashRange()) == 0x6222e842U);
|
||||||
|
assert(hash(ToHashRange()) == 1268118805U);
|
||||||
}
|
}
|
||||||
|
|
||||||
static if (size_t.sizeof == 8) @nogc nothrow pure @safe unittest
|
static if (size_t.sizeof == 8) @nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
assert(hash('a') == 0xaf63dc4c8601ec8cUL);
|
assert(hash('a') == 0xaf63dc4c8601ec8cUL);
|
||||||
assert(hash(HashRange()) == 0x08985907b541d342UL);
|
assert(hash(HashRange()) == 0x08985907b541d342UL);
|
||||||
|
assert(hash(ToHashRange()) == 12161962213042174405UL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user