mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 23:04:49 +00:00
fix record accessors
This commit is contained in:
parent
80423bac76
commit
a055fa3626
3 changed files with 30 additions and 17 deletions
|
@ -135,9 +135,12 @@ pub enum Expr {
|
|||
},
|
||||
/// field accessor as a function, e.g. (.foo) expr
|
||||
Accessor {
|
||||
/// accessors are desugared to closures; they need to have a name
|
||||
/// so the closure can have a correct lambda set
|
||||
name: Symbol,
|
||||
function_var: Variable,
|
||||
record_var: Variable,
|
||||
closure_var: Variable,
|
||||
closure_ext_var: Variable,
|
||||
ext_var: Variable,
|
||||
field_var: Variable,
|
||||
field: Lowercase,
|
||||
|
@ -613,10 +616,11 @@ pub fn canonicalize_expr<'a>(
|
|||
}
|
||||
ast::Expr::AccessorFunction(field) => (
|
||||
Accessor {
|
||||
name: env.gen_unique_symbol(),
|
||||
function_var: var_store.fresh(),
|
||||
record_var: var_store.fresh(),
|
||||
ext_var: var_store.fresh(),
|
||||
closure_var: var_store.fresh(),
|
||||
closure_ext_var: var_store.fresh(),
|
||||
field_var: var_store.fresh(),
|
||||
field: (*field).into(),
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue