summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dhall/src/binary.rs1
-rw-r--r--dhall_core/src/parser.rs2
2 files changed, 2 insertions, 1 deletions
diff --git a/dhall/src/binary.rs b/dhall/src/binary.rs
index c785daf..8a23e76 100644
--- a/dhall/src/binary.rs
+++ b/dhall/src/binary.rs
@@ -316,6 +316,7 @@ fn cbor_value_to_dhall(data: &cbor::Value) -> Result<ParsedExpr, DecodeError> {
let expr = cbor_value_to_dhall(expr)?;
return Ok(bindings
.into_iter()
+ .rev()
.fold(expr, |acc, (x, t, v)| rc(Let(x, t, v, acc))));
}
[U64(26), x, y] => {
diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs
index 2d47ad7..e520f05 100644
--- a/dhall_core/src/parser.rs
+++ b/dhall_core/src/parser.rs
@@ -604,7 +604,7 @@ make_parser! {
spanned(span, BoolIf(rc(cond), rc(left), rc(right)))
},
[let_binding(bindings).., in_(()), expression(final_expr)] => {
- bindings.fold(
+ bindings.rev().fold(
final_expr,
|acc, x| Let(x.0, x.1, x.2, rc(acc))
)