mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
use store_roc_value when inserting into dict
This commit is contained in:
parent
85bf881b3b
commit
49f624a27a
1 changed files with 9 additions and 5 deletions
|
@ -20,6 +20,7 @@ use roc_mono::layout::{Builtin, Layout, LayoutIds};
|
||||||
use roc_target::TargetInfo;
|
use roc_target::TargetInfo;
|
||||||
|
|
||||||
use super::bitcode::call_list_bitcode_fn;
|
use super::bitcode::call_list_bitcode_fn;
|
||||||
|
use super::build::store_roc_value;
|
||||||
|
|
||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
struct Alignment(u8);
|
struct Alignment(u8);
|
||||||
|
@ -105,11 +106,14 @@ pub fn dict_insert<'a, 'ctx, 'env>(
|
||||||
|
|
||||||
let u8_ptr = env.context.i8_type().ptr_type(AddressSpace::Generic);
|
let u8_ptr = env.context.i8_type().ptr_type(AddressSpace::Generic);
|
||||||
|
|
||||||
let key_ptr = builder.build_alloca(key.get_type(), "key_ptr");
|
let key_type = basic_type_from_layout(env, key_layout);
|
||||||
let value_ptr = builder.build_alloca(value.get_type(), "value_ptr");
|
let value_type = basic_type_from_layout(env, value_layout);
|
||||||
|
|
||||||
env.builder.build_store(key_ptr, key);
|
let key_ptr = builder.build_alloca(key_type, "key_ptr");
|
||||||
env.builder.build_store(value_ptr, value);
|
let value_ptr = builder.build_alloca(value_type, "value_ptr");
|
||||||
|
|
||||||
|
store_roc_value(env, *key_layout, key_ptr, key);
|
||||||
|
store_roc_value(env, *value_layout, value_ptr, value);
|
||||||
|
|
||||||
let key_width = env
|
let key_width = env
|
||||||
.ptr_int()
|
.ptr_int()
|
||||||
|
@ -788,7 +792,7 @@ fn build_hash_wrapper<'a, 'ctx, 'env>(
|
||||||
|
|
||||||
let value_cast = env
|
let value_cast = env
|
||||||
.builder
|
.builder
|
||||||
.build_bitcast(value_ptr, value_type, "load_opaque")
|
.build_bitcast(value_ptr, value_type, "cast_to_known_type")
|
||||||
.into_pointer_value();
|
.into_pointer_value();
|
||||||
|
|
||||||
let val_arg = load_roc_value(env, *layout, value_cast, "load_opaque");
|
let val_arg = load_roc_value(env, *layout, value_cast, "load_opaque");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue