summaryrefslogtreecommitdiff
path: root/src/syntax/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax/expr.rs')
-rw-r--r--src/syntax/expr.rs11
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.