diff options
Diffstat (limited to 'src/syntax/expr.rs')
| -rw-r--r-- | src/syntax/expr.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/syntax/expr.rs b/src/syntax/expr.rs index cf9aff4a..9292d5b6 100644 --- a/src/syntax/expr.rs +++ b/src/syntax/expr.rs @@ -437,11 +437,20 @@ pub struct ClosureExpr { /// This only exists if you use the function syntax sugar: `let f(x) = y`. pub name: Option<Ident>, /// The parameter bindings. - pub params: Rc<Vec<Ident>>, + pub params: Vec<ClosureParam>, /// The body of the closure. pub body: Rc<Expr>, } +/// An parameter to a closure: `x` or `draw: false`. +#[derive(Debug, Clone, PartialEq)] +pub enum ClosureParam { + /// A positional parameter. + Pos(Ident), + /// A named parameter with a default value. + Named(Named), +} + /// A with expression: `f with (x, y: 1)`. /// /// Applies arguments to a function. |
