Add deriving of immediates for the Hash ability

This commit is contained in:
Ayaz Hafiz 2022-10-04 11:09:08 -05:00
parent 7bd6523175
commit 427528e659
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
7 changed files with 134 additions and 0 deletions

View file

@ -0,0 +1,25 @@
#![cfg(test)]
// Even with #[allow(non_snake_case)] on individual idents, rust-analyzer issues diagnostics.
// See https://github.com/rust-lang/rust-analyzer/issues/6541.
// For the `v!` macro we use uppercase variables when constructing tag unions.
#![allow(non_snake_case)]
use crate::{util::check_immediate, v};
use roc_module::symbol::Symbol;
use roc_types::subs::Variable;
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);
}