summaryrefslogtreecommitdiff
path: root/dhall_core/src/parser.rs
diff options
context:
space:
mode:
authorNadrieril2019-03-15 23:41:04 +0100
committerNadrieril2019-03-15 23:41:04 +0100
commit22aa5de3fb5836daf066add3e128173bbd396003 (patch)
tree3220a06b6cf62ee2f73dbfba650f6e752989a32c /dhall_core/src/parser.rs
parent4e09c0205469de021fd95490be0a3d19bba8bfc2 (diff)
Store a vec in App
Closes #26
Diffstat (limited to '')
-rw-r--r--dhall_core/src/parser.rs7
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))
+ }
}
);