diff options
author | Nadrieril | 2019-03-15 23:41:04 +0100 |
---|---|---|
committer | Nadrieril | 2019-03-15 23:41:04 +0100 |
commit | 22aa5de3fb5836daf066add3e128173bbd396003 (patch) | |
tree | 3220a06b6cf62ee2f73dbfba650f6e752989a32c /dhall_core/src/parser.rs | |
parent | 4e09c0205469de021fd95490be0a3d19bba8bfc2 (diff) |
Store a vec in App
Closes #26
Diffstat (limited to '')
-rw-r--r-- | dhall_core/src/parser.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index ddf3f8f..02242bf 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -746,7 +746,12 @@ rule!(annotated_expression<BoxExpr>; rule!(application_expression<BoxExpr>; children!(first: expression, rest*: expression) => { - rest.fold(first, |acc, e| bx(Expr::App(acc, e))) + let rest: Vec<_> = rest.map(|x| *x).collect(); + if rest.is_empty() { + first + } else { + bx(Expr::App(first, rest)) + } } ); |