mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-15 10:22:23 -07:00
Change hashing rules for float-like types to make 0 == -0
This commit is contained in:
@@ -2774,6 +2774,21 @@ gb_internal void add_map_key_type_dependencies(CheckerContext *ctx, Type *key) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (key->kind == Type_Basic) {
|
||||
if (key->Basic.flags & BasicFlag_Quaternion) {
|
||||
add_package_dependency(ctx, "runtime", "default_hasher_f64");
|
||||
add_package_dependency(ctx, "runtime", "default_hasher_quaternion256");
|
||||
return;
|
||||
} else if (key->Basic.flags & BasicFlag_Complex) {
|
||||
add_package_dependency(ctx, "runtime", "default_hasher_f64");
|
||||
add_package_dependency(ctx, "runtime", "default_hasher_complex128");
|
||||
return;
|
||||
} else if (key->Basic.flags & BasicFlag_Float) {
|
||||
add_package_dependency(ctx, "runtime", "default_hasher_f64");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (key->kind == Type_Struct) {
|
||||
add_package_dependency(ctx, "runtime", "default_hasher");
|
||||
for_array(i, key->Struct.fields) {
|
||||
|
||||
Reference in New Issue
Block a user