mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 22:09:09 +00:00
WIP unwrapping suffixed expression
This commit is contained in:
parent
467cdf8226
commit
2200916c2b
1 changed files with 11 additions and 5 deletions
|
@ -756,10 +756,15 @@ pub fn desugar_expr<'a>(
|
||||||
let loc_ret = desugar_expr(arena, loc_ret, src, line_info, module_path);
|
let loc_ret = desugar_expr(arena, loc_ret, src, line_info, module_path);
|
||||||
|
|
||||||
// Desugar any suffixed nodes, such as `foo = bar!`
|
// Desugar any suffixed nodes, such as `foo = bar!`
|
||||||
desugar_defs_node_suffixed(
|
// desugar_defs_node_suffixed(
|
||||||
arena,
|
// arena,
|
||||||
arena.alloc(Loc::at(loc_expr.region, Defs(arena.alloc(defs), loc_ret))),
|
// arena.alloc(Loc::at(loc_expr.region, Defs(arena.alloc(defs), loc_ret))),
|
||||||
)
|
// )
|
||||||
|
|
||||||
|
match unwrap_suffixed_expression(arena, arena.alloc(Loc::at(loc_expr.region, Defs(arena.alloc(defs), loc_ret)))) {
|
||||||
|
Unwrapped::Unwrapped(loc_expr) => loc_expr,
|
||||||
|
Unwrapped::UnwrappedSubExpr { .. } => internal_error!("a sub expression wasn't unwrapped correctly"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Apply(loc_fn, loc_args, called_via) => {
|
Apply(loc_fn, loc_args, called_via) => {
|
||||||
let mut desugared_args = Vec::with_capacity_in(loc_args.len(), arena);
|
let mut desugared_args = Vec::with_capacity_in(loc_args.len(), arena);
|
||||||
|
@ -1101,7 +1106,8 @@ pub fn unwrap_suffixed_expression<'a>(
|
||||||
}
|
}
|
||||||
|
|
||||||
Expr::Apply(function, arguments, called_via) => {
|
Expr::Apply(function, arguments, called_via) => {
|
||||||
// // try to unwrap each argument
|
|
||||||
|
// try to unwrap each argument
|
||||||
|
|
||||||
// try to unwrapp the function
|
// try to unwrapp the function
|
||||||
if let Unwrapped::UnwrappedSubExpr { arg, pat, new } =
|
if let Unwrapped::UnwrappedSubExpr { arg, pat, new } =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue