mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-26 13:29:12 +00:00
Attach ambient function vars to lambda sets
This commit is contained in:
parent
7365da6f69
commit
5d74a376af
14 changed files with 233 additions and 47 deletions
|
@ -143,6 +143,7 @@ fn constrain_untyped_closure(
|
|||
constraints,
|
||||
name,
|
||||
region,
|
||||
fn_var,
|
||||
captured_symbols,
|
||||
closure_var,
|
||||
&mut vars,
|
||||
|
@ -911,6 +912,7 @@ pub fn constrain_expr(
|
|||
let lambda_set = Type::ClosureTag {
|
||||
name: *closure_name,
|
||||
captures: vec![],
|
||||
ambient_function: *function_var,
|
||||
};
|
||||
|
||||
let closure_type = Type::Variable(*closure_var);
|
||||
|
@ -1390,6 +1392,7 @@ fn constrain_function_def(
|
|||
constraints,
|
||||
loc_symbol.value,
|
||||
region,
|
||||
expr_var,
|
||||
&function_def.captured_symbols,
|
||||
closure_var,
|
||||
&mut vars,
|
||||
|
@ -2040,6 +2043,7 @@ fn constrain_typed_def(
|
|||
constraints,
|
||||
*name,
|
||||
region,
|
||||
*fn_var,
|
||||
captured_symbols,
|
||||
closure_var,
|
||||
&mut vars,
|
||||
|
@ -2514,6 +2518,7 @@ fn constrain_closure_size(
|
|||
constraints: &mut Constraints,
|
||||
name: Symbol,
|
||||
region: Region,
|
||||
ambient_function: Variable,
|
||||
captured_symbols: &[(Symbol, Variable)],
|
||||
closure_var: Variable,
|
||||
variables: &mut Vec<Variable>,
|
||||
|
@ -2542,6 +2547,7 @@ fn constrain_closure_size(
|
|||
let closure_type = Type::ClosureTag {
|
||||
name,
|
||||
captures: captured_types,
|
||||
ambient_function,
|
||||
};
|
||||
|
||||
let finalizer = constraints.equal_types_var(
|
||||
|
@ -2811,6 +2817,7 @@ fn constraint_recursive_function(
|
|||
constraints,
|
||||
loc_symbol.value,
|
||||
region,
|
||||
expr_var,
|
||||
&function_def.captured_symbols,
|
||||
closure_var,
|
||||
&mut vars,
|
||||
|
@ -3220,6 +3227,7 @@ fn rec_defs_help(
|
|||
constraints,
|
||||
*name,
|
||||
region,
|
||||
*fn_var,
|
||||
captured_symbols,
|
||||
closure_var,
|
||||
&mut vars,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue