mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
always unify full alias body, even when alias names match
This commit is contained in:
parent
fd77a18908
commit
81af929f8f
2 changed files with 14 additions and 8 deletions
|
@ -1121,7 +1121,7 @@ fn adjust_rank_content(
|
|||
rank
|
||||
}
|
||||
|
||||
Func(arg_vars, _closure_var, ret_var) => {
|
||||
Func(arg_vars, closure_var, ret_var) => {
|
||||
let mut rank = adjust_rank(subs, young_mark, visit_mark, group_rank, ret_var);
|
||||
|
||||
// TODO investigate further.
|
||||
|
@ -1129,13 +1129,15 @@ fn adjust_rank_content(
|
|||
// My theory is that because the closure_var contains variables already
|
||||
// contained in the signature only, it does not need to be part of the rank
|
||||
// calculuation
|
||||
// rank = rank.max(adjust_rank(
|
||||
// subs,
|
||||
// young_mark,
|
||||
// visit_mark,
|
||||
// group_rank,
|
||||
// closure_var,
|
||||
// ));
|
||||
if false {
|
||||
rank = rank.max(adjust_rank(
|
||||
subs,
|
||||
young_mark,
|
||||
visit_mark,
|
||||
group_rank,
|
||||
closure_var,
|
||||
));
|
||||
}
|
||||
|
||||
for var in arg_vars {
|
||||
rank = rank.max(adjust_rank(subs, young_mark, visit_mark, group_rank, var));
|
||||
|
|
|
@ -179,6 +179,10 @@ fn unify_alias(
|
|||
|
||||
problems.extend(merge(subs, &ctx, other_content.clone()));
|
||||
|
||||
if problems.is_empty() {
|
||||
problems.extend(unify_pool(subs, pool, real_var, *other_real_var))
|
||||
}
|
||||
|
||||
problems
|
||||
} else {
|
||||
mismatch!()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue