Choose merged closure var based on whether it's recursive or not

This commit is contained in:
Ayaz Hafiz 2022-08-09 16:08:24 -07:00
parent 3f1e11f920
commit 86c6d339c3
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58

View file

@ -2518,10 +2518,12 @@ fn unify_flat_type<M: MetaCollector>(
outcome.union(arg_outcome);
if outcome.mismatches.is_empty() {
let merged_closure_var = choose_merged_var(env.subs, *l_closure, *r_closure);
outcome.union(merge(
env,
ctx,
Structure(Func(*r_args, *r_closure, *r_ret)),
Structure(Func(*r_args, merged_closure_var, *r_ret)),
));
}