mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 16:21:11 +00:00
Support derivation of Hash for Str and List
This commit is contained in:
parent
294244ae25
commit
5b833e57b5
9 changed files with 143 additions and 28 deletions
|
@ -4,7 +4,7 @@
|
|||
// For the `v!` macro we use uppercase variables when constructing tag unions.
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
use crate::{util::check_immediate, v};
|
||||
use crate::{util::check_single_lset_immediate, v};
|
||||
use roc_module::symbol::Symbol;
|
||||
use roc_types::subs::Variable;
|
||||
|
||||
|
@ -12,14 +12,17 @@ use roc_derive_key::DeriveBuiltin::Hash;
|
|||
|
||||
#[test]
|
||||
fn immediates() {
|
||||
check_immediate(Hash, v!(U8), Symbol::HASH_ADD_U8);
|
||||
check_immediate(Hash, v!(U16), Symbol::HASH_ADD_U16);
|
||||
check_immediate(Hash, v!(U32), Symbol::HASH_ADD_U32);
|
||||
check_immediate(Hash, v!(U64), Symbol::HASH_ADD_U64);
|
||||
check_immediate(Hash, v!(U128), Symbol::HASH_ADD_U128);
|
||||
check_immediate(Hash, v!(I8), Symbol::HASH_ADD_I8);
|
||||
check_immediate(Hash, v!(I16), Symbol::HASH_ADD_I16);
|
||||
check_immediate(Hash, v!(I32), Symbol::HASH_ADD_I32);
|
||||
check_immediate(Hash, v!(I64), Symbol::HASH_ADD_I64);
|
||||
check_immediate(Hash, v!(I128), Symbol::HASH_ADD_I128);
|
||||
check_single_lset_immediate(Hash, v!(U8), Symbol::HASH_ADD_U8);
|
||||
check_single_lset_immediate(Hash, v!(U16), Symbol::HASH_ADD_U16);
|
||||
check_single_lset_immediate(Hash, v!(U32), Symbol::HASH_ADD_U32);
|
||||
check_single_lset_immediate(Hash, v!(U64), Symbol::HASH_ADD_U64);
|
||||
check_single_lset_immediate(Hash, v!(U128), Symbol::HASH_ADD_U128);
|
||||
check_single_lset_immediate(Hash, v!(I8), Symbol::HASH_ADD_I8);
|
||||
check_single_lset_immediate(Hash, v!(I16), Symbol::HASH_ADD_I16);
|
||||
check_single_lset_immediate(Hash, v!(I32), Symbol::HASH_ADD_I32);
|
||||
check_single_lset_immediate(Hash, v!(I64), Symbol::HASH_ADD_I64);
|
||||
check_single_lset_immediate(Hash, v!(I128), Symbol::HASH_ADD_I128);
|
||||
check_single_lset_immediate(Hash, v!(STR), Symbol::HASH_HASH_STR_BYTES);
|
||||
check_single_lset_immediate(Hash, v!(Symbol::LIST_LIST v!(U8)), Symbol::HASH_HASH_LIST);
|
||||
check_single_lset_immediate(Hash, v!(Symbol::LIST_LIST v!(STR)), Symbol::HASH_HASH_LIST);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue