diff options
-rw-r--r-- | dhall/src/binary.rs | 1 | ||||
-rw-r--r-- | dhall_core/src/parser.rs | 2 |
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)) ) |