mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 06:14:46 +00:00
remove from_mutmap
This commit is contained in:
parent
7d51a6bca3
commit
26da66d73f
2 changed files with 16 additions and 14 deletions
|
@ -1498,6 +1498,16 @@ impl UnionTags {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn tag_without_arguments(subs: &mut Subs, tag_name: TagName) -> Self {
|
||||||
|
subs.tag_names.push(tag_name);
|
||||||
|
|
||||||
|
Self {
|
||||||
|
length: 1,
|
||||||
|
tag_names_start: (subs.tag_names.len() - 1) as u32,
|
||||||
|
variables_start: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn insert_slices_into_subs<I>(subs: &mut Subs, input: I) -> Self
|
pub fn insert_slices_into_subs<I>(subs: &mut Subs, input: I) -> Self
|
||||||
where
|
where
|
||||||
I: IntoIterator<Item = (TagName, VariableSubsSlice)>,
|
I: IntoIterator<Item = (TagName, VariableSubsSlice)>,
|
||||||
|
|
|
@ -1285,15 +1285,8 @@ fn unify_function_or_tag_union_and_func(
|
||||||
) -> Outcome {
|
) -> Outcome {
|
||||||
let tag_name = subs[*tag_name_index].clone();
|
let tag_name = subs[*tag_name_index].clone();
|
||||||
|
|
||||||
let mut new_tags = MutMap::with_capacity_and_hasher(1, default_hasher());
|
let union_tags = UnionTags::insert_slices_into_subs(subs, [(tag_name, function_arguments)]);
|
||||||
|
let content = Content::Structure(FlatType::TagUnion(union_tags, tag_ext));
|
||||||
new_tags.insert(
|
|
||||||
tag_name,
|
|
||||||
subs.get_subs_slice(*function_arguments.as_subs_slice())
|
|
||||||
.to_owned(),
|
|
||||||
);
|
|
||||||
|
|
||||||
let content = Content::Structure(from_mutmap(subs, new_tags, tag_ext));
|
|
||||||
|
|
||||||
let new_tag_union_var = fresh(subs, pool, ctx, content);
|
let new_tag_union_var = fresh(subs, pool, ctx, content);
|
||||||
|
|
||||||
|
@ -1304,12 +1297,11 @@ fn unify_function_or_tag_union_and_func(
|
||||||
};
|
};
|
||||||
|
|
||||||
{
|
{
|
||||||
|
let tag_name = TagName::Closure(tag_symbol);
|
||||||
|
let union_tags = UnionTags::tag_without_arguments(subs, tag_name);
|
||||||
|
|
||||||
let lambda_set_ext = subs.fresh_unnamed_flex_var();
|
let lambda_set_ext = subs.fresh_unnamed_flex_var();
|
||||||
|
let lambda_set_content = Structure(FlatType::TagUnion(union_tags, lambda_set_ext));
|
||||||
let mut closure_tags = MutMap::with_capacity_and_hasher(1, default_hasher());
|
|
||||||
closure_tags.insert(TagName::Closure(tag_symbol), vec![]);
|
|
||||||
|
|
||||||
let lambda_set_content = Structure(from_mutmap(subs, closure_tags, lambda_set_ext));
|
|
||||||
|
|
||||||
let tag_lambda_set = register(
|
let tag_lambda_set = register(
|
||||||
subs,
|
subs,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue