builtin_defs_map passed in explicitly in many places that want to monomorphize, so that we can use a new test_builtin_defs in tests. Hash test works

This commit is contained in:
Chadtech 2021-01-18 22:38:51 -05:00
parent dd2dcc63d1
commit a46a7ef06a
15 changed files with 113 additions and 19 deletions

View file

@ -1804,6 +1804,30 @@ fn list_map(symbol: Symbol, var_store: &mut VarStore) -> Def {
)
}
/// Dict.hashTestOnly : k, v -> Nat
pub fn dict_hash_test_only(symbol: Symbol, var_store: &mut VarStore) -> Def {
let key_var = var_store.fresh();
let value_var = var_store.fresh();
let nat_var = var_store.fresh();
let body = RunLowLevel {
op: LowLevel::Hash,
args: vec![
(key_var, Var(Symbol::ARG_1)),
(value_var, Var(Symbol::ARG_2)),
],
ret_var: nat_var,
};
defn(
symbol,
vec![(key_var, Symbol::ARG_1), (value_var, Symbol::ARG_2)],
var_store,
body,
nat_var,
)
}
/// Dict.size : Dict * * -> Nat
fn dict_size(symbol: Symbol, var_store: &mut VarStore) -> Def {
let size_var = var_store.fresh();