feat: support var-args lambda function

This commit is contained in:
Shunsuke Shibayama 2023-03-03 16:01:20 +09:00
parent cb00efca54
commit 3d310714f1
13 changed files with 123 additions and 47 deletions

View file

@ -1703,6 +1703,15 @@ impl Parser {
debug_exit_info!(self);
Ok(call_or_acc)
}
Some(t) if t.is(PreStar) => {
let _ = self.lpop();
let expr = self.try_reduce_expr(false, in_type_args, in_brace, false)?;
let tuple = self
.try_reduce_nonempty_tuple(ArgKind::Var(PosArg::new(expr)), false)
.map_err(|_| self.stack_dec(fn_name!()))?;
debug_exit_info!(self);
Ok(Expr::Tuple(tuple))
}
Some(t) if t.category_is(TC::UnaryOp) => {
let unaryop = self
.try_reduce_unary()